If you have implemented a lab (I hope so not in production J) with some Windows Server 2016 TP5, you certainly had a bugcheck 0xc000021A after updating and rebooting the system. This topic aims to help you to resolve this issue.
Symptom
This error has happened in physical servers (Hyper-V) and in VMs. For the physical servers I had to reinstall the system. However, in VM I was able to resolve the below issue with DISM. All my Windows Server TP5 VM was impacted. When you reboot after the updates, you have a bugcheck with the error 0xc000021a. Then you enter in a bugcheck loop and you can’t boot in the operating system.
Resolution
To resolve this issue, you have to apply the July cumulative update of Windows Server TP5. If you have not yet the bugcheck and you are in Windows Server 2016 TP5 (especially for physical server), I heavily recommend you to install the July cumulative update before the next reboot.
For Virtual Machines, you can apply the cumulative update even if you are in bugcheck loop by leveraging DISM. First of all, download the July cumulative update of Windows Server 2016 TP5 from Microsoft Update catalog.
Then you can shut down your VMs and run the below commands:
# Mount the system VHD mount-vhd -path <full path VHD with the Operating System> # Apply the cumulative update inside the VHDX dism /image:<Letter where is mounted the VHDX> /add-package /packagepath:"<Path to July Cumulative Update MSU>" # dismount the VHDX dismount-vhd -path <full VHD with the Operating System>
Once the update is installed in deployed, you can restart the VMs. Once you have restarted the VMs, Windows configure the system and you should logon again in your system.
I have written a small script to deploy the cumulative update in every operating system VHDX of each VMs. All the VMs must be stopped to deploy the cumulative update.
# Path of your VM storage $VMPath = "C:\ClusterStorage" # Filter to detect the VHDX of operating system $FilterVHDSystem = "*OperatingSystem2016*.vhdx" # Path the the cumulative update $PathToMSU = "c:\temp\AMD64-all-windows10.0-kb3172989-x64_c39efbb9cd624e40cb739b1b4f5287889cfdf930.msu" # Drive Letter where will be mounted the VHDX $DriveLetter = "D:\" $vDisks = Get-ChildItem -Path $VMPath -Filter $FilterVHDSystem -Recurse Foreach ($vDisk in $vDisks){ Write-Host "Correct $($vDisk.FullName)" Mount-VHD -Path $vDisk.FullName dism /image:$DriveLetter /add-package /packagepath:$PathToMSU disMount-VHD -Path $vDisk.FullName }