Upgrading Server 2003 to 2008, with Hyper-V Integration Services installed, results in this boot failure after a few hours :-/
In hindsight, you should remove integration services first.
Without the benefit of hindsight:
- Shut down the virtual machine.
- Using Computer Management -> Disk Management on the Hyper-V host, attach the .VHD file, so that you are mounting the virtual HD of the affected guest.
- Ensure your Windows Explorer is set to show hidden & system files.
- Open up regedit, then go to HKLM.
- File -> Load Hive
- Browse to the virtual HD -> Windows -> System32 -> Config
- Choose the ‘SYSTEM’ hive, and when prompted for a name, type ‘broken’, or the name of the machine or something, and press enter.
- The affected VM machine’s registry is now showing under HKLM->’broken’.
- Browse to ControlSet001 (do the same for 002, etc.), \Services\vmbus
- Delete the whole vmbus key (folder).
- When done, highlight ‘broken’ (where the registry is attached to), and go to File -> Unload Hive.
- Then go back to disk management and detach the VHD.
- Try to start the VM so that the final stage of the in-place upgrade can continue.
After the upgrade finishes, you will probably have no networking, no mouse, and other issues.
You should try (sans-mouse) to switch the HAL from ACPI to APIC (as per here)*. Upon reboot, the vmbus issue may return (did it re-install itself?), and so have to repeat the above procedure.
Once the system has booted up with an APIC HAL, you can try to re-install Integration Services properly.
Fingers crossed :-*
(*incidently, I am all done now – the system is working just fine. I had to re-install the integration services, but device manager still shows an ACPI HAL for me. This is x86 Server 2008 (upgraded from 2003). A very temporary measure).
Hint: if the special function keys (start menu, ctrl-esc, alt-tab, etc), are not passing through to the guest: Ctrl-Alt-End will get you to task manager, from there Alt-F -> Run, cmd to open up a command prompt, from the command prompt: taskkill /im taskmgr.exe so that you can get rid of the always-on-top taskmgr that’s in the way, then do your stuff. sysdm.cpl for system properties/device manager, etc.