Archive for February, 2008

Adventures in a Windows XP hard drive transplant

Thursday, February 14th, 2008

Donor: Intel P4, Intel chipset, SATA disk

Recipient: AMD Opteron, NForce Pro chipset, SCSI disk

  • The first thing that was encountered is a STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE error. This is because the hard disk controller has changed and Windows does not have the new controller in its CriticalDeviceDatabase. See the Knowledgebase article. The best way to avoid this is to install the driver in question before dismantling the donor system, but when the donor system has died, such planning is not possible. There is a way to “fix” the transplanted disk by hooking it up as a temporary slave disk, that is outlined in this article. The basic strategy is to copy over the entire CriticalDeviceDatabase branch from a working installation, and also to be sure that any necessary driver services that it refers to are also added in, and obviously that the appropriate driver files themselves are copied in.
  • The second thing that was encountered was some driver for the donor system was loading, not finding its associated hardware, and barfing a different STOP error. The “ghosted” devices that traditionally are shown in Device Manager in Safe Mode are not shown in Windows XP. There is a way to cause them to be shown so that they can be removed to stop the offending driver from loading.
  • The last thing that was encountered was a piece of dumb luck caused by moving from an Intel to an AMD processor, specifically with Service Pack 2. It turns out that the SP2 Intel processor driver is too stupid to realize that it is being loaded on a non-Intel CPU, and barfs out a STOP 0x0000007E (0xC0000005, …). What’s worse is that Microsoft initially posted an incorrect fix in their KB article, and then instead of correcting the instructions, they removed the fix from the article entirely. Consequently, third party sites had to archive the fix. Basically, in CurrentControlSet as well as the archived ControlSets, change the “Start” value from 1 to 4 for all instances of the ‘Intelppm’ service.

2 frickin’ days! Thanks, Microsoft!

And people ask me why I make such a point of avoiding Microsoft products…