I came across this problem a few weeks ago.

A server had had a “Snap Shot” taken of it, then deleted. But the machine had never been powered down to allow the aVHD to merge with the VHD.  So when the host crashed, i was faced with a Virtual machine that was over 18 months old!

After tearing my hair out for a LONG time over this, i stumbled across this

http://eniackb.blogspot.com/2009/05/how-to-recover-hyper-v-virtual-machine.html

This would be how i get the server back to life.

Now i must say, the guide ISNT easy to work with, so what i dont was;

  go to the “missing VM foldervirtual Machines” and take note of the file {GUID}.xml (In this scenario is the 71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml).

Find your GUID, then copy all the below and replace 71DB1869-534A-4B0B-B2B8-B89170FC0EF0 with your GUID

Update the file locations too just to make sure everything works.

Option3:

Using Mklink, create the Symbolic link under “C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines”

Mklink “C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml” “F:VM01Virtual Machines71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml”

Now give access permissions to the service SID to this Symbolic link.

Icacls “C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml” /grant “NT VIRTUAL MACHINE71DB1869-534A-4B0B-B2B8-B89170FC0EF0“:(F) /L

Then you need to give access permissions to the Service SID to all files in VM01

Icacls F:VM01 /T /grant “NT VIRTUAL MACHINE71DB1869-534A-4B0B-B2B8-B89170FC0EF0“:(F)

This is the stage you would be in if you just mounted the VHD normally, now we need to attach the snapshots.

You need to find the GUID of your snapshots now too. In this case, there are two.

Since VM01 has also Snapshots, we need to create the correspondent symbolic link and give the necessary permissions to the files (This process must be done to each snapshot).

Mklink “C:ProgramDataMicrosoftWindowsHyper-VSnapshots324E6E76-77EC-4671-9E25-3D4B5D3133BA.xml” “F:VM01Snapshots71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml”

Mklink “C:ProgramDataMicrosoftWindowsHyper-VSnapshotsD6EC4773-75A6-49E7-84D2-3B619D1D450C.xml” “F:VM01Snapshots71DB1869-534A-4B0B-B2B8-B89170FC0EF0.xml”

Now, assign the permissions:

Icacls C:ProgramDataMicrosoftWindowsHyper-VSnapshots324E6E76-77EC-4671-9E25-3D4B5D3133BA.xml /grant “NT VIRTUAL MACHINE71DB1869-534A-4B0B-B2B8-B89170FC0EF0“:(F) /L

Icacls C:ProgramDataMicrosoftWindowsHyper-VSnapshotsD6EC4773-75A6-49E7-84D2-3B619D1D450C.xml /grant “NT VIRTUAL MACHINE71DB1869-534A-4B0B-B2B8-B89170FC0EF0“:(F) /L

So, to save your self HOURS.

Replace 71DB1869-534A-4B0B-B2B8-B89170FC0EF0  With your server GUID

and 324E6E76-77EC-4671-9E25-3D4B5D3133BA and D6EC4773-75A6-49E7-84D2-3B619D1D450C With your snapshot IDs

and F:VM01 with your path

After i managed to work all of this out, it was a MUCH simpler restore.

Now all i need to do is make sure no other servers have an aVHD file anywhere!

« »