When You See This Error
You try to attach a VHD file in Disk Management, Hyper-V, or PowerShell — and get hit with error 0xC03A0019. The message says the differencing chain is inaccessible. This usually pops up after you moved VHD files to a different folder, renamed them, or copied a VM's folder from one server to another. Had a client last month who copied a VM folder from an old Windows Server 2012 to a new 2022 box — forgot the parent VHD in the old location. Took me 10 minutes to fix.
Root Cause
A differencing VHD is like a child that stores only changes, and it needs its parent VHD to work. The parent holds the base operating system or data. When you move, rename, or delete the parent file, the child has no idea where to find it. Windows records the parent's absolute path (like C:\VMs\parent.vhdx) inside the child file. If that path doesn't exist anymore, you get this error.
It can also happen if the parent VHD was created on a network share that went offline, or if someone manually edited the file system without updating the related VHDs. The fix is always about pointing the child back to the right parent.
Step-by-Step Fix
Step 1: Check if the parent VHD still exists
- Open File Explorer and go to where the child VHD is stored.
- Look for the parent VHD file. Common names:
base.vhdx,parent.vhd, or the original VM's system disk. - If the parent is missing, find it on another drive, backup, or network location. If you have a backup, restore it to the exact original path.
If the parent is there but the path has changed, proceed to Step 2.
Step 2: Use PowerShell to reset the differencing chain
- Open PowerShell as Administrator.
- Run this command to see the child VHD's parent path:
Get-VHD -Path "C:\path\to\child.vhdx" | Select-Object ParentPath - If the path is wrong or broken, set it correctly:
Set-VHD -Path "C:\path\to\child.vhdx" -ParentPath "C:\correct\path\parent.vhdx" - Now try to mount the child VHD:
Mount-VHD -Path "C:\path\to\child.vhdx"
I've seen this work 9 times out of 10. The trick is making sure the parent path is exact — no trailing spaces, and use the full path including drive letter.
Step 3: If PowerShell fails, use diskpart
Sometimes the VHD is locked or corrupted, and PowerShell won't touch it. diskpart can force the attach.
- Open Command Prompt as Administrator.
- Type
diskpartand press Enter. - Then run:
select vdisk file="C:\path\to\child.vhdx" attach vdisk - If that gives an error, try forcing it:
select vdisk file="C:\path\to\child.vhdx" attach vdisk readonly
Read-only attach lets you access data without writing changes — good for recovery. If it mounts, copy your data out, then delete and recreate the differencing VHD properly.
Step 4: Recreate the differencing VHD (last resort)
If none of the above works, you'll need to create a new differencing VHD from the parent and then copy data from the old child. This is tedious but reliable.
- Open Hyper-V Manager or PowerShell.
- Create a new differencing VHD pointing to the parent:
New-VHD -Path "C:\new\child.vhdx" -ParentPath "C:\parent\parent.vhdx" -Differencing - Mount both the old child (if possible) and new child, then copy data across using File Explorer or Robocopy.
What to Check If It Still Fails
If the error persists:
- Check file permissions: The account running Hyper-V or PowerShell needs read access to both VHD files. Right-click the parent VHD, go to Properties > Security, and make sure your user or SYSTEM has read rights.
- Check disk space: If the drive hosting the VHD is full, Windows may refuse to attach it. Free up at least 10% of the drive space.
- Check for VHDX corruption: Run
chkdsk /fon the drive containing the VHD files. Had a client whose SSD had bad sectors — corrupted the parent VHD. Replaced the drive and restored from backup. - Check if the parent is being used by another VM: You can't attach a child if the parent is already attached elsewhere in read-write mode. Detach the parent first.
Most of the time, it's just a wrong path. Fixing that path with Set-VHD or diskpart gets you back in business. If the parent VHD is truly gone, you'll need a backup — that's a lesson for next time, so always keep backups of parent VHDs.