Hyper-V: virtualizing old servers using Disk2Vhd

The program disk2vhd makes the process of virtualizing old Windows Servers for Hyper-V very painless but there is one little gotcha — when you first power on the new virtualized server and attempt to install/update the  Integration Services you may be stuck in a reboot loop.  But that can easily be fixed.

The first thing it tries to do is to update the HAL.  The problem is that the running version of HAL is not the normal version; it is a version that is specified in the boot.ini that looks like this:

Disk2vhd Windows Server 2003, Standard /HAL=halacpi.dll

You should also see an entry that does not include the HAL specification.  This is the entry you want to use.

The easiest way to fix this problem is to first copy the C:boot.ini to a backup file and then remove the entry that specifies the HAL.  Also, make sure your default is set correctly in the boot.ini file.

NOTE: This works for Server 2003-2008R2 (I think).  I believe that Server 2012 and 2012R2 uses the new bootcd system and you shouldn’t edit that by hand.  You can use the bcdedit program to remove the entry:

1. Start an administrative command prompt
2. bcdedit /export c:bcd.bak
3. bcdedit /enum
4. bcdedit /delete {identifier from the entry you want to delete}

That’s all there is to it.  🙂