Windows – How to install an AMD RAID driver after Windows installation

driversraidwindowswindows 7

This is similar to this question, but for AMD (or general for all hardware, if such solution exists).

Windows 7 is installed with a SATA controller in AHCI mode. Afterwards, I added two more hard drives to be used as a RAID pair.

This led to the known catch-22:

  • If I enable RAID mode in BIOS, Windows won't boot due to a missing RAID driver.
  • If I boot still in AHCI mode, Windows won't let the RAID driver be installed, since there is no RAID controller present.

How can I force Windows to install a driver, when the corresponding hardware is not present?

In my case, the driver is a simple pack of INF, SYS and CAT files.

Best Answer

OK, as said , I solved the problem. As I did several tries, I can not be sure what steps are necessary and what not, so I'll list everything I did.

First, the situation:

  • a PC with an AMD SB820M chipset - 4 SATA/RAID ports (I'll refer to this controller as "RAID controller" from now on)
  • one hard drive connected to the RAID controller
  • additional IDE/SATA controller with 2 ports (for eSATA and optical drive, I guess) (from now on "IDE controller")
  • RAID controller set to AHCI mode, Windows 7 installed on the first (and only) HD

Then:

  • I added 2 more hard drives (connected them to the RAID controller ports), set RAID controller mode to RAID, and set up some RAID arrays on the 2 new HDs (all this in BIOS setup)
  • try to boot Windows, it fails (it reboots during startup, no error message is visible)

  • I set controller mode back to AHCI

  • boot Windows (works)

Now the trick (part one):

  • I picked the (unused) IDE controller as a scapegoat for the RAID driver
  • in Device Manager I looked up the PCI ID of the IDE controller (it was 439C) (select Properties on the controller, the ids are on the tab Details, under HardwareId in dropdown menu)
  • in the RAID driver INF file (ahcix86s.inf) I added a line with this ID:

before:

%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393

after:

%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4392
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_4393
%NapaDesc%=Napa_Inst,PCI\VEN_1002&DEV_439C
  • then in Device Manager I selected to Update the driver of the IDE controller, "let me select the driver", Have disk... and select the above INF file and then the driver.

  • reboot, set RAID controller mode to RAID in BIOS

  • boot Windows, fails again, the same way as before
  • set RAID controller mode back to AHCI in BIOS
  • start Windows

The trick (part two):

  • start "regedit" and in key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1002&dev_4392 change the value Service to ahcix86s (see note below)
  • restart, in BIOS change mode again to RAID
  • boot Windows
  • success !

(after it worked, I went to Device Manage again and set the driver for IDE controller back to the correct one: Update driver, select automatically...)

* the 1002/4392 is the PCI id of the RAID controller when set to RAID mode. It is listed in the mentioned INF file. You can also try to look it up on this web site. The most reliable info is to set the controler to RAID mode, boot some OS (Linux comes in small handy formats) and check the PCI id there. In linux the lspci command shows this info.