Property ‘MaxInternalSize’ does not exist in class ‘Msvm_VirtualHardDiskSettingData’ – VHDX on Hyper-V

on

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 have 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.

If you need help locating the checkpoints, or you have too many, this article can help: https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/merge-checkpoints-with-many-differencing-disks (Thanks Corey for adding this up)

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!

36 thoughts on “Property ‘MaxInternalSize’ does not exist in class ‘Msvm_VirtualHardDiskSettingData’ – VHDX on Hyper-V

  1. Just wanted to let you know, you post 100% saved me from a ton of work needed to rebuild a production VM with a corrupted virtual hard disk (my fault). Thank you so much for taking the time to post this with such clean and concise detail.

    Cheers!

    1. How do you know which one is the latest AVHDX and what it’s linked to?
      I restored an entire folder so they all have the same date.

  2. You just saved my day! I was looking at two days work down the drain since I had mounted a drive with checkpoints…

  3. very detailed instructions, thank you very much, I read many articles, but none was as detailed as yours, I spent the whole day, I coped with your article in 15 minutes. I have a big chain snapshot
    Thanks a lot

  4. I have similar error when importing old virtual WinXP .VHD file. But there I do not have any parent VHD file. So what to do there?

  5. you’re my Hero. you save me, thanks a lot

    I had no hope after a crash from my server, after nights you give me the solution.

  6. Thanks for these instructions, it helped us advanced some, but now some of our VHDX files are telling us “Failed to set new parent for the virtual disk.
    At line:1 char1.”

    And so far we haven’t been able to locate any solution for when ignoreidmismatch FAILS to make a parent.

  7. Thank you! This saved me lots of time.

    I mounted the .vhdx without realizing what differencing disks (.avhdx) were. Funny because I was wondering why when I originally moved the virtual disk to another server the changes made on the original VM weren’t reflecting in my new VM. Needless to say I learned my lesson.

    If you follow the steps in the below Microsoft article it will create a .txt file with the correct order of the checkpoints that need to be merged. You will just need to swap the command at the front of each line to Set-VHD, add -ParentPath before the second path, and add -ignoreidmismatch to the end of the last line. You can then copy and paste each line 1 by 1 into an admin powershell prompt from the .txt once you made the changes.

    https://learn.microsoft.com/en-us/troubleshoot/windows-server/virtualization/merge-checkpoints-with-many-differencing-disks

    1. Hey Corey,
      Thanks for adding more info with your comment – I’ll add your notes to the post in case it can help anyone else.

      Thanks,

Leave a Reply

Your email address will not be published. Required fields are marked *