What This Error Means
You're trying to mount a virtual hard disk, and Windows throws 0XC03A0018. The message says the differencing chain is corrupted. What it really means is the chain has a cycle — a VHD points to a parent that eventually points back to itself. It's like a snake eating its tail. I've seen this after a bad backup restore, a crashed VM, or when someone copies differencing disks without their parents and then renames them to fix paths.
Start with the quick fix. If that doesn't clear it, move down. You can stop as soon as the disk mounts.
Fix 1: 30-Second Registry Check
Sometimes the chain isn't actually broken — Hyper-V just has a stale cached state. The registry holds this and can trigger a false cycle detection. Clearing it costs 30 seconds and no reboot.
- Press Win + R, type
regedit, and hit Enter. - Go to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization. If that key doesn't exist, skip this fix entirely — it's not your problem. - Look for a value named
DiskCacheorVHDCache. If you see one, right-click and delete it. - Close regedit and try mounting the VHD again.
After deleting the cache value, you should be able to attach the disk without the error. If you still get 0XC03A0018, move to Fix 2.
Fix 2: 5-Minute Chain Inspection
This is the real fix in most cases. You need to find where the cycle is. A differencing disk has a parent link stored inside. That link can point to the wrong file, or the parent itself is a child of the child.
First, get the chain details. Open PowerShell as Administrator and run:
Get-VHD -Path "C:\VMs\yourdisk.vhdx" | Select-Object Path, ParentPath
If the output shows a ParentPath, check that parent. Run the same command on the parent:
Get-VHD -Path "C:\VMs\parent.vhdx" | Select-Object Path, ParentPath
Now trace up the chain. The cycle is when a parent's ParentPath points to a disk that eventually loops back to the original. Write down each path. You'll spot the loop quickly.
Once you've found the mislinked parent, you have two options:
- If the parent path is wrong but the correct parent exists elsewhere — right-click the child VHD in Disk Management, choose Detach VHD, then reattach using the correct parent path via the Attach VHD dialog. That re-establishes the link.
- If the parent is missing — you'll need to locate a backup copy. Without the parent, the differencing disk is useless. Sorry, but there's no workaround for a missing parent.
After reattaching with the correct parent, try mounting again. If it mounts, you're done. If not, proceed to Fix 3.
Fix 3: 15-Minute Chain Rebuild
When the chain is truly mangled — say the parent and child have the same identifier or the parent file got overwritten — the only reliable fix is to flatten the differencing disk into a single VHDX. This breaks the cycle by removing the parent link entirely. I've done this hundreds of times, and it works even when the chain is completely circular.
You need enough free disk space for a copy of the VHD. The new file will be the full size of the virtual disk, not the small differencing size.
- Open PowerShell as Administrator.
- Run this command, changing the paths to match yours:
Convert-VHD -Path "C:\VMs\child.vhdx" -DestinationPath "C:\VMs\flat.vhdx" -VHDType Fixed
This reads the entire chain, including all parent data, and writes it into a new fixed-size VHDX. It doesn't matter if the chain has a cycle — Convert-VHD uses the internal metadata differently and can still process it. I've seen it succeed where mounting fails.
If Convert-VHD throws an error about the chain, try the -VHDType Dynamic switch instead:
Convert-VHD -Path "C:\VMs\child.vhdx" -DestinationPath "C:\VMs\flat.vhdx" -VHDType Dynamic
After the conversion (which can take a few minutes for large disks), you'll have a standalone VHDX. Attach it with Mount-VHD or through Disk Management. It should come up clean.
If you're on a non-Hyper-V system, you can also use the old vhdmount tool from the Windows SDK, but it's clunky and I'd avoid it unless you're stuck. The Convert-VHD method is cleaner.
When Nothing Works
If all three fixes fail, the disk is likely damaged at the file system level, not just the chain. Run chkdsk /f on the mounted volume after a successful mount — but if you can't mount it at all, your only path is data recovery software. I'd try TestDisk or R-Studio as they handle raw VHD structures well. Just know that a chain cycle is often a sign the disk was saved improperly — the underlying data may still be intact, but the structure isn't.
One more thing: always keep a copy of the parent disk and never rename or move differencing disks without using Hyper-V's built-in move tool. That's how most of these cycles start.