Today I took on the task of converting one of our last VMWare Server-based VMs to Hyper-V. This was an XP VM that is used for accounting, and with lots of software and configuration the idea of reinstalling Windows did not appeal.
No joy, ended up with the dreaded “A disk read error occurred. Press ctrl+alt+del to restart” error. with some research found sites that suggested using FIXBOOT, FIXMBR and CHKDSK in the XP Recovery Console, but I didn’t expect much success with this route and I didn’t get any.
As a side note, I could not remember the local Administrator password for the box, and ended up using Petter Nordahl-Hagen’s excellent offline password editor.
Finally, found a blog that explains how to resolve the problem using TestDisk by CGSecurity. Ran that, went through the various steps, and finally ended up with a VM that would at least boot to Safe Mode. After a few minutes of churn, Windows installed various drivers and I could boot to normal Windows and complete Hyper-V Integration Services install.
Or could I? Nope. Windows wanted to be reactivated before I could login — but I no longer had network drivers. As I was not willing to spend the time on the phone with a Microsoft operator when at home late at night, I booted back into Safe Mode, and ran the Integration Services install from there.
No! Another error: “Setup cannot upgrade the HAL in this virtual machine”. Yet another blog post (and comment thereunder) to the rescue. I ended up having to copy HALACPI.DLL from %windows%\servicepackfiles\i386 into %system%. Rinse, reboot. And now follow the primary steps in that same blog post – deleting the “Standard PC” entry, and now finally it’s installing.
Wait, no, it failed. “An Error has occurred: One of the update processes returned error code 1601.” Google again. Wow, a Technet discussion thread returns a possible solution. So booting into Recovery Console again to delete some VMWare drivers (VMWare Tools would not uninstall because it had a Windows Installer reference to a network drive on a machine that had been decomissioned… Yuck.)
No way, Jose. A bit more research and eventlog spelunking and I realised that Integration Services setup was trying to start Windows Installer — which doesn’t run in Safe Mode. Yay! Now what: can’t install network drivers in Safe Mode, can’t login in normal mode because I have no network drivers for boot. Ah! Turns out adding a legacy network adapter may give me a way forward here. Gosh, that actually worked. Reactivated Windows successfully. Now I am booted in normal Windows mode, should be able to install Integration Services, right?
Well, I could now use Remote Desktop to connect to the machine — great, now I had a mouse again – and am now installing Integration Services. We’ll see how it goes — but I’m not waiting around for it any longer tonight.
Was it worth all the pain? Probably not. At least I collected a few useful Hyper-V resources. Perhaps a rebuild would have been smarter but I really like to understand the hows and whys of these problems. And perhaps this may help someone else.