It is not a scenario you want to see as a system administrator, especially in a small business, where there is only one physical server. This afternoon, the one physical server in a client’s office “laid down to rest.” Lesson One
– Do not let you servers live past their warranty date. This server was two weeks away from being replaced, after running 24×7 for almost five years.
– Have a recovery plan and a secondary recovery plan. I scrambled to locate a spare server on a Saturday evening. Putting together bits and pieces, I was able to build up a reasonable temporary server. I then followed the usual recovery process and stared at the screen when it told me it would take 15 hours to restore the C: volume. There was still a D: and E: volume with much more data to recover.
So, I pulled the old server apart, and pulled out the two 4-bay drive cages, along with the RAID controller, and inserted it into temporary server #2. All the drives were intact, so I was able to copy the virtual machines directly off the old server hard drives. This only took 1 hour.
A really cool feature in Windows Server 2012 Hyper-V is the ability to perform an in place import. The process is quick and simple. Click on the Import Virtual Machine link on the right column of the Hyper-V Manager. This will begin the Import Virtual Machine Wizard.
After the wizard is complete, you can make changes as needed to the VM. NOTE: If you are recovering the VM to a host with a different processor platform, you need to enable the processor compatibility option in the VM Settings.
Finally, you click Start to boot up the recovered VM and straight away, you run into a major block.
The import wizard does not set the permissions on the imported files to allow the system to access the necessary files. To set these permissions, use the icacls command in the same manner as documented here – http://blog.powerbiz.net.au/fixes/hyper-v-virtual-machines-may-not-start-and-you-receive-an-error-%e2%80%98general-access-denied-error%e2%80%99/ . To save time, if you have already read that blog post, here is the command – icacls [VHD file] /grant “NT VIRTUAL MACHINE\[VM SID]”:F
There are at least 4 files that you need to reset permissions for.
- The hard drive(s) that are attached to this VM.
The XML file with the SID that you need to use in the icacls command line. This file found in the [SERVERNAME]\Virtual Machines folder.
- The two BIN and VSV files that are located in the [SERVERNAME]\Virtual Machines\[SID] folder.
Once these permissions are set, you will be able to start up the recovered VM.