Just spent a whole night changing my desktop’s motherboards over. Normally it would have been a straightforward affair – the successful POST once everything was together was a pretty good sign that I did everything right.
However, my XP is installed onto my SATA hard disk, and this meant the motherboard would have a seperate controller for this. Seperate controllers that were made relatively recently means they don’t have native drivers in XP itself. First sign that you’ve mucked up?
STOP: 0x0000007B
Never a pretty sight, that BSOD. Turns out, Windows can’t access the drive with the OS. Now, normally, you should be able to use the Repair install from the XP install CD to force Windows to reinstall all the necessary drivers (this site mentions what you should do in generally).
Oh yes, I need that SATA driver. First step: download the driver. 2nd step: save to floppy disk. Easy. But. Wait. No other computer in this house has a floppy disk drive, apart from the desktop which doesn’t boot up to the internet! That was a killer, but thankfully, ERD Commander had networking capabilities, and could see my laptop. The world was beautiful again.
Ok, back into the Windows XP Installer again, SATA driver read, proceed to the install/repair…but wait, it says, “your drive is not a XP compatible partition“. No idea what that is, google suggests it could be boot setting issues. I try the recovery console, use bootcfg, etc etc, reboot, retry, repair, retry, recovery console etc etc.
Anyway, none of that worked; I was never able to invoke the repair functionality on the Install CD. Normally, any sane individual would just install a new copy of windows by now, but I’m not just any sane individual – I’m crazed.
I just need Windows to be able to recognise that SATA interface, without crashing.
ERD Commander is my saviour here (plus having a laptop is handy too), but any offline registry editing tool would work here, as long as you can boot it up, and discover your Windows installation on your SATA hard drive (attaching the hard drive to another working desktop would do too). What’s this?
Installing the SATA driver into Windows, manually.
Disclaimer: By no means do I encourage anyone who is not technically proficient to perform this operation. You could wreck your windows installation. Proceed at your own risk.
- Copy the driver files to the relevant folders in your system –
- .sys and .cat files to windows\system32\drivers\
- .inf files to windows\inf\
- Open up the .inf file – this will give you the directions on what to do. This is where the registry editing tool comes into play. Refer to the MSDN document on Inf files first. The following are just guidelines:
- Go to the HKLM\System\CurrentControlSet\Services key, and create a new key named after your driver (e.g. for viamraid.sys, your key will be viamraid
- create the various parameters you see in every other key here – Group, Start ( 0 for bootup ), Type ( 1 for kernal drivers), ErrorControl etc – follow the inf guideline where it mentions service installation (the clue will be given by the AddService directive – i.e. AddService = viamraid, 2, viamraid_Service_Inst, Miniport_EventLog_Inst means the viamraid_Service_Inst contains the service installation block.
- Set up the event log keys: HKLM\System\CurrentControlSet\Services\EventLog\, where would normally be your driver.
- Study and refer to the MSDN Inf File Sections and Directives section. This will be necessary for correct installation of the driver.
- Reboot.
Now, I spent an hour or two making sure the parameters were set up right (I really dislike rebooting so much), and lo and behold, no BSOD comes up. The computer boots up into the login screen. Of course, now, the motherboard still has to be recognised and various devices drivers reinstalled.
It did help that this newer motherboard (ASRock K7VT6 with Via KT600 chipset) is essentially a newer version of my old one (Asus A7V8X with Via KT400), so everything else was relatively smooth by now.
Moral of this tale? Install your device drivers first before you changeover your motherboard!