5

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.

  • Shouldn't Windows 7 still boot? I changed whole mainboards and it still booted flawlessly. Although it could be very different when it's a raid controller... (Which is also why I don't answer, I'm way too unsure :P) – sinni800 Jun 21 '11 at 11:20
  • @sinni800 A lot of RAID controllers do not have drivers included with Windows (7 or otherwise). So when you are loading Windows, you have to hit F6, or the do the equivalent in Windows 7, and load the drivers from a disk as you are installing. Otherwise, it will not install even when it get to the point it is looking for a drive. After you boot, as in this case, you can just add the driver as I described, and then even if you change the disk configuration, it will find the right driver because you added it that way. When you did it, it worked because the drivers were included in Windows. – KCotreau Jun 21 '11 at 15:49
  • Yes, yes, I know all that... Though I thought Windows 7 is superman and has all drivers ;D. It has the Intel Raid drivers – sinni800 Jun 21 '11 at 18:27
  • I solved the problem. Running in RAID mode now. I'll post details tomorrow. – David Balažic Jun 21 '11 at 21:31
4

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.

  • Someone suggested using ahcix86s or ahcix64s depends on what is in .inf file on line with AddServices = – David Balažic Nov 17 '17 at 10:32
2

Just solved this "issue" using an alternative method. I have a Gigabyte 990-FXA-UD3 motherboard with a AMD SB950 southbridge. My motherboard has 6 SATA ports. One of the options in the bios was to set the mode of SATA port 4/5 to "SAME as 0-3" or "IDE mode."

What I did was enabled RAID on ports 0-3, but set PORTS 4-5 into IDE mode. I moved my OS drive from port 0 into port 5 and booted up. Once everything booted correctly I went into device manager and had the yellow warning icon next to a SATA RAID device. I right clicked, updated drivers to ones I downloaded from gigabyte and a few seconds later the hard disks I had on ports 1 and 2 magically showed up.

Shut down again, moved C:\ drive from SATA port 5 to SATA port 0. Booted up it worked.

Basically I think I needed a way to force windows to properly install the RAID driver. Once it was in there, I could then boot from it. Not sure if others have the option to set port 4/5 to IDE mode, but if you do then this method will work.

  • Was your controller originally in IDE mode or AHCI mode? I have the same motherboard, originally set to AHCI mode, and this isn't working for me, because Windows won't boot in IDE mode. – PunctualEmoticon May 6 '18 at 23:43
1

Have you tried going to:

Control Panel>Device Manager>Click on top item and right click>Add legacy Hardware>Next>Install the hardware that I manually select from a list (Advanced)>Storage Controllers>Next>Have Disk

Then navigate to your driver, and intall it. When you make your changes and reboot, the driver will then be there for it to automatically find for the new device.

  • I tried that, but after OK-ing the Have disk.. dialog, the wizard shows no items. I'll try another package of the drivers (EXE, 27 MB big...) – David Balažic Jun 21 '11 at 19:11
  • @David Balažic You need to figure out where it extracts that EXE file and then point to the directory with the drivers. Hard to guide you more since it varies from EXE to EXE. – KCotreau Jun 21 '11 at 19:20
1

You can deal with this problem by using a temporary SATA controller card :

  • install the controller card,
  • connect the drive on the MB and boot Windows,
  • install drivers's controller if needed,
  • shutdown the computer, connect the drive on the controller card and set SATA mode to RAID on the MB's BIOS,
  • restart the computer and install RAID drivers.
  • now you can shutdown again and connect the drive to the MB again.
0

For Windows 7 Pro, I installed an AHCI controller. I used Highpoint Rocket 620A and plugged my SATA OS hard drive into that.

I booted the PC, went into BIOS and changed the SATA configuration to RAID, then saved changes and rebooted. Windows 7 booted from my HighPoint in AHCI.

Once in the OS, I installed the RAID driver (it was already asking for it in by finding new hardware). It asked me to reboot instead. I shutdown, removed the card, and put the OS back onto the RAID SATA 0 port and booted the OS with no issues.

0

enter image description here You can prepare Windows for a new storage driver on next reboot using this command:

 rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 %~dp0NewDrv.inf

The following has been tested on Windows Server 2016, which was installed with SATA in AHCI mode. When I changed the SATA controller mode to RAID in BIOS Windows booted into a blue-screen: Inaccessible boot device

Chipset: Intel C232 (i believe this will work with C236 too and more) The device ID of this SATA RAID controller is 2826

Solution:

1: Make a USB key, in my case I had GPT partition.

2: Copy drivers to the key. In my case is was: -iastora.cat -iaStorA.inf -iaStorA.sys

3: I create the file install.cmd with this content: rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 132 %~dp0iaStorA.inf

Start Windows in safe mode with a command prompt (F8 if you can make in time!). Ran install.cmd and rebooted.

Windows now booted with this RAID driver :-)

Extra info (devcon.exe):

To find Device ID, which might be needed to find the right driver (the device ID is listed in the inf file), you can use the console util devcon.exe (a tool part of the MS Windows Driver Kit package). I have a copy here. If your storage controller is connected to the computer, it will be located in the device class SCSIAdapter or HDC.

To list all devices in those classes use these commands:

devcon listclass SCSIAdapter

or

devcon listclass HDC

Example of result:

ePCI\VEN_8086&DEV_1E03&SUBSYS_21FB17AA&REV_04\3&21436425&0&FA: Intel(R) 7 Series Chipset Family SATA AHCI Controller

In this example the device ID is DEV_1E03 or just 1E03. If you can find 1E03 in your inf file you know you have the right driver :-)

(Credits to IBM Thinkpad team.....IBM's SATA driver packages had this install.cmd script bundled. And to my surprise it still works on Windows 10/Srv. 2016)

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.