Sometimes we can mount a VHDX that had its checkpoints saved on another location. When trying to boot the VM we will have a “Property ‘MaxInternalSize’ does not exist in class ‘Msvm_VirtualHardDiskSettingData’.”
This is because the disk properties has changed and the VM is linking the checkpoint back to its parent, making the chain corrupted.
To remediate this, we will use the Set-VHD powershell snippet
- Set-VHD “D:\path\Disk_CHECK2.avhdx” -ParentPath “D:\path\Disk_CHECK1.avhdx”
- Set-VHD “D:\path\Disk_CHECK1.avhdx” -ParentPath “D:\path\Disk.vhdx”
Here we are stitching the newest checkpoint (Disk_CHECK2) to (Disk_CHECK1); then Disk_CHECK1 to the main Disk.VHDX.
Now, its very likely that you will receive a mismatch error:
“There exists ID mismatch between the differencing virtual hard disk and the parent disk. “
For this we will use the –ignoreidmismatch command:
- Set-VHD “D:\path\Disk_CHECK1.avhdx” -ParentPath “D:\path\Disk.vhdx” –ignoreidmismatch
And now you will have a booting VM again!
The original article is taken from https://blog.virtualcenter.com/2019/01/19/property-maxinternalsize-does-not-exist-in-class-msvm_virtualharddisksettingdata-vhdx-on-hyper-v/
Thanks! This helped me a lot!
thanks this article helped me to recover my K8s cluster worker nodes..