After taking a Disk2VHD image of an XP SP3 machine, I noticed that I could not install the Integration Components after copying the VHD to my Hyper-V machine and running the Integration Components setup off vmguest.iso. It would attempt to upgrade the HAL, tell me I needed to reboot to upgrade the HAL, and then reboot and get to the same place. If I clicked “OK” again to upgrade the HAL, it would reboot – if I hit “cancel”, the installation would fail.
After some fiddling, I figured out that Disk2VHD added the /HAL=halacpi.dll string to boot.ini for the default boot option, whereas the Integration Components setup was trying to upgrade the HAL to an APIC hal (halaacpi.dll). I changed the boot option in boot.ini to remove the /KERNEL=ntkrpuni.exe string, changed the /HAL=halacpi.dll string to /HAL=halaacpi.dll, and copied halaacpi.dll from sp3.cab on my XP SP3 media to %windir%\system32. Once I rebooted, the IC’s installed successfully. I then went back and removed the /HAL switch from boot.ini entirely and rebooted, and all is well.
Took me 2 hours to figure out, so I figured I’d post this as usual to hopefully save someone else the time I wasted.