Windows XP Repair Install BSOD After changing Virtual HDD Controller

bsoddisk-controllerrepair-installvirtualboxwindows xp

I vm'ed an old windows XP installation using VirtualBox and it runs/ran fine after the normal ritual of performing a repair install.

I noticed VirtualBox by default set my hard drive controller to IDE even though it's really a SATA disk under the hood. Of course this should reduce performance since it's not using AHCI instructions.

So I removed the IDE controller and set a new SATA controller and added the virtual disk to it. Naturally XP BSOD at boot since hardware changed…

But where I'm stumped is, it BSOD's during repair install as well? Gives the normal 0x7B stop code (meaning the Moon's orbit pattern shifted approximately 1.342 inches to the left).

Why is this happening? What can I try to get the repair install to run. I've been out of desktop support for years now and am rusty. I'd like to not have to revert back to using the virtual IDE controller.

Best Answer

I encountered this exact error when moving a physical Windows XP installation with a SATA controller to a virtual IDE controller (because I could not get my Windows XP iso to boot with the SATA controller and do a repair operation).

The catch is that Windows XP only registers specific controllers during install, which is why you can't switch from an IDE controller to a SATA controller (or vice-versa) without repairing the installation. However, instead of repairing the installation, you can also manually add support for the SATA controller to the Windows registry.

To fix this:

  1. Download the MergeIDE tools hosted by VirtualBox here
  2. Boot into your Windows XP install with an IDE controller
  3. Apply the MergeIDE.reg file to the system registry.
  4. Shut down the VM and switch it to a SATA controller.
  5. Start the VM back up.

This particular instance of the 0x7B stop code is documented by Microsoft here, and the fix is documented by VirtualBox here.

Related Question