Old Hard Drive, New Motherboard and the Windows Stop 0x0000007B error
Posted by Akom • Saturday, September 27. 2008 • Category: Code and HacksMy old motherboard finally died, so I managed to free up another one and threw it in. This is one of my very few windows machines, dual boot Win2K/XP. Neither one worked with the new motherboard - 2K gave me a very nice bluescreen with the infamouse Stop 0x0000007B error, while XP simply quietly rebooted.
The old board was the wonderful (back in 2001) Gigabyte 7VRXP (1.1) sporting an Athlon XP-1800+.
The "new" board is a NVidia based A7N8X-VM, complete with an Athlon XP-2000+.
I managed to downgrade my server to an Intel Atom low power setup (see separate post), so this one was available, moreover - it has n AGP 8X slot and the old board - only 4x. Yes I know this is ancient hardware, but I have no interest in spending hundreds on all new hardware when all I want is something to run Nero and Realflight. (And occasionally, Blackberry JDE).
Anyway,
so neither OS is willing to boot. I found an old half-dead hard drive with Win2K on it - same deal. Lots and lots of Googling later, I tried a Windows repair, the recovery console, FIXBOOT and FIXMBR, with no effect.
After a lot more googling I found out that the issue is not anything obvious like master/slave or even LBA settings for the drive - it's simply the drivers. Yes, drivers. Apparently, windows cannot access the drive that it just booted from because it is attempting to use the drivers for the disk controller on the old board. Moreover, this is a known issue, with a Microsoft solution found here: http://support.microsoft.com/kb/314082/en-us ...
So basically this solution says:
- Put the drive back in your old machine
- Make some changes with regedit
- Copy a few extra standard drivers into system32/drivers directory
Now this sounds great and all... but my old motherboard is fried. It is not booting. That's why I replaced it in the first place.
Back to Google. I found the following links:
- http://www.influentialcomputers.com/windows2000-tips-stop-7b.asp Helpful for doing it the microsoft way, and has the drivers zipped up
- http://windowsxp.mvps.org/peboot.htm Walks you through using the Load Hive feature of regedit
Now I needed to combine these ideas. Here is how I did this:
- Got WinXP (Not Win2K, regedit doesn't Load Hives in W2K) running on a spare drive. I installed it clean onto my half-dead SMART-failing drive. If you have a working XP machine that can accept a second drive, just use that instead
- Put in your non-booting drive as a secondary into this machine. Or hook it up with a USB adapter, whatever. If I found my USB->PATA/SATA thing I would have used that.
- Boot XP, run regedit, load your second drive's system file as a hive. (File->Load Hive). Note that the menu item is greyed out until you select HKEY_LOCAL_MACHINE. Your second drives' system file is in %WINDIR%\system32\config\system. It will ask you for the name of the key - that is a temporary name you want the hive to be called. For example: MYHIVE
- Now, the reg file that you got from either Microsoft or the link above has the wrong paths. You are not loading this into your current OS's registry, but into this funky path: [HKEY_LOCAL_MACHINE\MYHIVE\ControlSet001\Control\CriticalDeviceDatabase]
- To do this, take the reg file you got from either link above, edit it and do a global replace of [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet with [HKEY_LOCAL_MACHINE\MYHIVE\ControlSet001 (After all, this OS isn't running, so the control set is not current!). Now save and import (run the file). Now replace all ControlSet001 with ControlSet002 (and 003 too on XP. W2K only had 002). Save and import each time
- Unload the Hive when done
- Copy the driver files into system32\drivers, as instructed, but don't overwrite existing ones, they are most likely newer
- Put the drive back in as primary and hopefully you are good to go now
- Notice the instructions are the same for fixing Win2K and XP (aside for having the third ControlSet). I fixed them both at the same time, and both started working.
This dug me out of a big problem. Brilliant! Thank you! D