I'm trying to salvage the Windows 7 Professional 32 bit installation of a defect Fujitsu Amilo notebook by converting it to a VM running under CentOS 6 with KVM. My steps:
- Connect the notebook's hard disk to the CentOS machine through a USB-SATA adapter and create an image from it with the command
sudo dd if=/dev/sdb of=/media/ImageStore/notebook.img bs=64M
Create a VM in Virtual Machine Manager, selecting "import existing disk image", specifying the image I just created, and adding a CDROM drive connected to a Windows 7 installation CD image.
Boot the VM from the CD image, select "Computer repair options" - "Command Line" and enter the command
regedt32to run Registry Editor.
C:\Windows\System32\config\SYSTEM(the HKLM hive from the disk image) into HKLM.
ControlSet001\services\intelidekeys of the loaded hive, change the
Startvalues from 3 to 0.
Unload the hive loaded in step 4.
Reboot the VM from the hard disk image.
Windows starts successfully, detects a lot of new hardware (as expected) and proceeds to install device drivers for it without giving me any possibility of intervention. At that point it is perfectly usable although it pops up a few error messages complaining about hardware that's no longer there, like the ATI graphics chip and the Wistron function keys.
Once it has finished installing drivers it pops up a message requesting a reboot for the changes to be effective. This reboot fails with a BSOD 0x000000A IRQL_NOT_LESS_OR_EQUAL. Windows Startup Repair runs and reports the problem signature
BadDriver but declares itself unable to repair the system.
The whole process is repeatable, ie. I can create a new image and the process will lead to the same result. It makes no difference if I boot in Safe Mode.
One of the automatically installed drivers is
AMD PCI Express (3GIO) Filter Driver. If I uninstall that driver via Device Manager before the reboot, the VM comes up successfully a second time. However, Windows immediately proceeds to install that driver again, asking for another reboot which then fails with
IRQL_NOT_LESS_OR_EQUAL as before.
How can I prevent the deadly driver being installed during the next attempt?