Windows Server 2016 TP5: Bugcheck 0xc000021A

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.


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.


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

About Romain Serre

Romain Serre works in Lyon as a Senior Consultant. He is focused on Microsoft Technology, especially on Hyper-V, System Center, Storage, networking and Cloud OS technology as Microsoft Azure or Azure Stack. He is a MVP and he is certified Microsoft Certified Solution Expert (MCSE Server Infrastructure & Private Cloud), on Hyper-V and on Microsoft Azure (Implementing a Microsoft Azure Solution).

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Check Also

Introduction to System Insights

It’s been a while that Microsoft releases new Windows Server 2019 builds regularly. The latest ...

Dell R730XD bluescreen with S130 adapter and S2D

This week I worked for a customer which had issue with his Storage Spaces Direct ...

Generate NanoServer VHDX image easily with PowerShell

The last month I have presented how to generate a NanoServer VHDX image from the ...