16

This question is part of a larger list of things I'll need to do before installing a new SSD drive, but I think it deserves its own question.

Current setup: A dual-boot machine with Windows XP installed on a SATA 6Gbps HDD. BIOS has always been configured in IDE mode. Because of this, if I try to change to AHCI in BIOS, as Windows doesn't have AHCI drivers, it won't boot.

I already know that I can achieve this reinstalling the whole OS. But if possible, I'd like to enable AHCI without reinstalling again.

  • Would it be possible to change the driver to the AHCI one while in Windows? (using the Device Manager, for instance). If it where possible, will the OS crash at the moment the driver is changed while still being BIOS in IDE mode?

  • If not, is there a way to install it doing a partial repair using Windows disk? If such a method exists, will my current settings and applications remain unchanged?

Thanks in advance.

UPDATE
My South Bridge is an Intel(r) ICH10R. I already have the correct drivers which are located in my motherboard disc. Notice that the drivers are different for 32bit and 64bit OSes, so it is important to pick the correct ones. The files are called "iaStor.inf" and "iaAHCI.inf".

12
  • 1
    Hmm? There's no need to be so antagonistic. That is a common and reliable (except with nForce, it seems) method: install SATA controller/chipset manufacturer's SATA drivers, which provide AHCI/RAID support. There was a similar question which was solved by installing the appropriate SATA (AHCI/RAID) drivers from the motherboard manufacturer. You didn't even provide the motherboard model. Once again, there is no need to be so antagonistic, we only help because we want/like to.
    – Bob
    May 22, 2012 at 10:08
  • 1
    In fact, Wikipedia: Older versions of operating systems require hardware-specific drivers in order to support AHCI. Windows XP does not provide support out of the box. In other words, the only way is to install third-party drivers.
    – Bob
    May 22, 2012 at 10:10
  • 1
    Huh? The link Bob posted was exactly what you're asking for: someone with first hand experience of having installed AHCI drivers into an existing XP install. May 22, 2012 at 10:58
  • 1
    As far as I can tell, those 'registry hacks' are an alternative (and, frankly, stupid) method of installing the same SATA AHCI/RAID drivers. A lot of those people use an Intel chipset, therefore an Intel SATA controller (built into the chipset), therefore iaStor.sys. Why don't you tell us which motherboard model you have, and we can tell you which driver to use. In short, Windows XP does not have a AHCI/RAID driver, you must install a third party one. The most common is Intel, because the most common controller is Intel.
    – Bob
    May 22, 2012 at 12:29
  • 1
    @MisterSmith - I have to vote this question down until such time the question is complete. You asked a very good question but failed to do the research and then didn't post the required information for people to answer your question.
    – Ramhound
    May 22, 2012 at 16:11

7 Answers 7

13

I'll start with why you cannot use AHCI mode without modification. When Windows is installed, it only installs (enables) AHCI/RAID drivers if you have a storage controller it recognises as AHCI/RAID. Windows Vista and 7 would (usually) have the drivers anyway, but typically disable them. Vista and 7 come with a generic AHCI driver, with a more hardware-specific driver potentially available from the controller manufacturer. A manufacturer provided driver is necessary for 'FakeRAID'. The generic AHCI driver can be enabled with two quick, easy registry modifications.

However, Windows XP does not come with a generic AHCI driver. That means no out-of-the-box AHCI support. The reason? Intel only released preliminary (not even complete!) specifications to the AHCI standard mid-2003 - a year and a half after XP was first released. Microsoft has apparently not seen fit to include an AHCI driver as part of a service pack.

Motherboard manufacturers often include an AHCI driver on a CD or on their websites. This driver is provided by the manufacturer of the storage controller, typically Intel on systems with an Intel CPU. Some other candidates are nVidia (nForce) and Marvell (on some AMD boards). They are generally not interchangeable.

When installing XP, it is possible to load an AHCI driver from a floppy disk (!!!) or slipstream them onto the install CD. However, you want to add the driver to an existing installation.

  1. The first step is to determine the manufacturer of your storage controller, or at least motherboard chipset. This is usually listed in the motherboard specifications.

  2. The next step is to make sure you have a System Restore point available. System Restore can usually roll back changes in drivers, which provides a safeguard against mistakes while installing the drivers.

  3. Then it's all dependant on your controller manufacturer. There are many registry scripts that can insert the correct registry entries (the driver file is required, and a download is often provided). Since this is very specific to what hardware you have, you'll have to provide that information or search yourself (Google is a good place to start).

    If the motherboard manufacturer provides a SATA driver installer package specifically for XP, try installing that first. If it doesn't work, or one isn't provided, installing a driver manually may be necessary. If they don't provide the drivers at all, there isn't much you can do.

    Personally, I recommend the non-registry method if you can get away with it. This involves selecting the SATA controller entry(ies?) in the device manager and using the Update Drivers option to select the AHCI/RAID drivers you should obtain from the manufacturer. For Intel, it should be manually extracted from the installer package. Some people note that nVidia change a hardware ID in IDE mode so this method may not be possible for nForce chipsets. It all depends on your controller manufacturer.

Yes, I use storage controller, chipset and motherboard somewhat interchangeably. The controller is often part of the chipset. The chipset (and/or controller) on a specific motherboard model is almost always the same.

3
  • 3
    Nitpick: When installing XP, it is not possible to load any drivers from CD -- drivers may only be loaded from floppy discs or they must be slipstreamed into the Windows Text Mode Setup. Setup in Vista and later allow loading drivers from other types of media, including USB and optical drives.
    – afrazier
    May 22, 2012 at 13:26
  • @Thanks for the extended explanation. I finally followed that BLAH-BLAH post, and it worked. Check my answer for details. May 22, 2012 at 19:21
  • @MisterSmith I only just noticed how... dodgy... that URL looks. Sorry about that :\. The instructions do seem legitimate from a quick skim, and they did work for you at least.
    – Bob
    May 23, 2012 at 8:45
9

After arriving home, and without doing any backup at all XD, I finally got the job done.

It took no more than 10 minutes. My method is based on this blog post so its author is the one that deserves most credit. Also I have to mention Bob which quickly posted this link as a comment (my apologies Bob, yes it worked). Still I'd like to post the steps I followed since there are some differences and it may be helpful for some other people.

I've a Gigabyte board and it comes with a Utility DVD that contains, among other things, the AHCI drivers. Here is my installation explained:

  1. (This step is only for Gigabyte MB owners. You can get the drivers somewhere else and go to #3) Go to \BootDrv folder and copy the file MSM32.exe to a USB drive or a hard drive partition. This is the correct file for 32bit OS (Windows XP). According to the motherboard manual, it is also the one to choose for Windows Vista 32bit. In case you have a 64bit OS, copy MSM64.exe instead. There's another one named MSM2k.exe, I suppose it is the driver for Windows 2k, but I'm guessing here.

  2. In the folder where you copied that file, double click on it and it will open a command-line prompt asking for confirmation to extract the files. Type "yes" and then enter. Several files will be extracted at that folder. these are the actual drivers. We'll need these files to tell the Device Manager where to search for the drivers. Open the Device Manager and expand the "IDE ATA/ATAPI controllers" node. In my case, there were listed the regular IDE channels, and a couple of generic Intel ICH10 SATA controllers. These were the generic drivers installed by Windows, and I can tell you for sure that these don't work (tested enabling AHCI in BIOS and trying to load the OS resulted in beeps and reboots).

  3. Select one of the SATA controllers -> Right click over it -> update driver -> Install from a list or specific location (Advanced) -> check the "don't search" radio button and click next -> click on "Use disc" -> click on "browse" button and select the folder with the drivers from wherever you have copied them. If you have the drivers in a CD or DVD, make sure it doesn't contain an AUTORUN.INF file at the root folder, because the file picker dialog is looking for .INF files and it won't let you browse to subfolders.

  4. Now the list with drivers is populated with at least a new option. Here I selected the correct one for my chipset (ICH10R). Windows shows a warning message. Click yes.

  5. The driver is installed and Windows ask for a reboot, BUT don't reboot yet. Instead, select the remaining SATA Controller in Device Manager and repeat #3 and #4.

  6. After the second driver install, Windows does not ask for a reboot. BUT now it is time for rebooting. Be ready to enter BIOS as soon as the computer starts.

  7. Change in BIOS (in my case, under "Integrated peripherals" -> "SATA RAID/AHCI Mode") from IDE mode to AHCI. This can vary depending on your system and BIOS, and maybe you even need to select RAID if no AHCI option is available. There are better questions on this site where this topic is better explained, so I won't delve into it. In my case, there was a second option, just after the IDE/AHCI one, named "SATA port0-3 native mode". It was disabled, I enabled it. The explanation for this option in my motherboard manual is that DISABLED allows the SATA controllers to operate in legacy IDE mode, and that it should be selected for OSes that do not support native mode (like Windows 9X/ME). Windows XP supports native mode so I enabled it. I guess more modern OSes will also support it. Save BIOS and continue with the boot.

  8. Windows is loaded correctly. It starts recognising the existent drives in the new AHCI mode, and showing yellow bubbles. After that, it asks for a second reboot. Select OK to reboot.

  9. Windows is loaded again and this time everything should be ready.

4

The "Update driver" method didn't work for me, but I found another way that's simple too, and guaranteed to work.

Trying the above method on my pc made it reboot before the driver had updated completely. I have an Ivy Bridge (Z77) motherboard.

So I did it like this

Using your functioning XP in IDE mode do these steps:

  1. Find the Intel RST driver package on your motherboard cd (or download latest if you don't have cd). Extract this to get the 2 files iaAHCI.inf and iaStor.sys.

  2. Get a registry file from here. Read his short description and do as it says. And Edit the _07b-AHCI-SATA-forPE.reg file to add Intel 7 series AHCI SATA. Open iaAHCI.inf that you got in the previous step in Notepad. Copy/paste 2 older entries in the registry file and modify the 2 new entries with values found in iaAHCI.inf. Put the modified _07b-AHCI-SATA-forPE.reg file and iaStor.sys (from step 1) together in their own folder.

  3. Make a BartPE disc - download and install Bart's PE builder and get the Registry Editor PE plugin v1.0a here (http://regeditpe.sourceforge.net). Put your XP install cd in a folder. It has to have SP3. You can slipstream SP3 to your cd with nLite from (http://www.nliteos.com/download.html) if you need. Don't make or burn iso with nLite. We only need the slipstreamed source for BartPE. Run Bart's PE Builder. In the builder, select the folder with your XP SP3 as source and add the folder where you put _07b-AHCI-SATA-forPE.reg and iaAHCI.inf as source for Custom files so they get included in the BartPE disc we build. And lastly, add Registry Editor PE plugin that you downloaded by clicking on Plugins button. Make sure Registry Editor PE plugin is enabled. Now build the iso and then burn it to an empty cd.

  4. Boot with your BartPE cd. In Bart PE menu (in lower left corner) load the registry of your real XP system with Registry Editor PE. Click Ok when it shows a message. In the regular looking Regedit window you then import the _07b-AHCI-SATA-forPE.reg file in File menu/Import ... and copy iaStor.sys to \windows\system32\drivers folder on your C: drive. The 2 file should be in the root folder of your BartPE disc either in a folder or as separate files, depending on how you included them in the PE Builder.

  5. The registry of your XP installation is changed and saved and iaStor.sys is copied to it's system32\drivers folder. Now you can reboot into bios and set SATA to AHCI mode and then save bios and reboot into your XP installation. XP will now detect new hardware and install it. Wait, and you'll be prompted to reboot. After this reboot you can see in the Device Manager that your SATA devices now operate in AHCI mode. You may want to install the Intel RST package the normal way now to get all software from it. All done :)

Note: for future needs it may be good to include _07b-RAID-SATA-forPE.reg in the process, if you ever should want to run your SATA in RAID. You don't need to edit that file, just include it in BartPE and import it with Registry Editor PE.

1
  • This worked for me! Or more accurately, I used the referred Wiki at richud.com/wiki/Windows_XP_AHCI_and_RAID_FIX. The "update driver" trick also did not work for me, that even if I update the driver, after I reboot and change to AHCI, it still quickly bluescreen and reboots. The actual operations were pretty simple. All I needed to do is to copy the iaStor.sys to drivers folder, and load the registry file to Windows XP's HKLM/SYSTEM in a Windows PE. Only caveat is also covered in the reg file itself, that if the current control set is not 1, the file needs to be changed as well.
    – Bolong
    Feb 25 at 8:07
2

Some of the options I found here or elsewhere didn't work for me for a AMD SB750 chipset on an MSI GA-MA790XT-UD4P, so I used an alternative method that is somewhere in-between the fully automatic one and the manual registry hacks.

I downloaded the drivers from the MSI website and unpacked them. Then I manually installed the INF file using:

rundll32 setupapi.dll,InstallHinfSection Napa_Inst 132 .\ahcix86.inf

Right-click install of the INF does not work because there is no DefaultInstall section, Napa_Inst is the section prefix in the INF file. Documentation for the install function is here (there are other function calls that can install an INF from the CLI too if you Google). This copied the driver file to System32\Drivers and created registry entries for the service. However, it was still not present at boot and resulted in BSOD. I used part of these instructions to create a critical device database entry:

HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1002&CC_0106\Service -> "ahcix86" (REG_SZ)
HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1002&CC_0106\ClassGUID -> "{4D36E97B-E325-11CE-BFC1-08002BE10318}" (REG_SZ)

The class GUID matches the value in the INF file. The vendor ID is for AMD (also shown in INF file), the compatibility code is for AHCI. As per the link, 0104 could be used for RAID.

Windows then boots properly and detects new devices, asking for another reboot. All is fine now.

0

I have a P5GD1 Pro (ASus)motherboardd with dual boot xp and windows 7. The easiest way after many hours of internet searching that I found was through trial and error and reinstall of image, however, there is a simpler way.... If you install CPU Z (cpuid) which you can google, on the mainboard it will tell you the southbridge version. You can then identify your driver from this information.

You need the southbridge version because when you install a driver through the update driver for the ata storage controller through the device manager, it will give you a number of versions... If you choose the wrong one you may find yourself unable to boot and having to reinstall your image like I did...

The procedure that worked for me for the P5GD1 Pro (and so likely any other mother board) was to use the intel AHCI folder on the driver disc (if not got you can could on google or something for 82801FB drivers) then simply update the driver in the device manage for the ATA storage controller. Choose have disc and browse for your driver file for intel, or whatever version you have, and then choose the driver which matches the southbridge version for whats indicated in CPUZ. Using CPUZ to identify your southbridge will save you doing what I did and having ot find out the hard way. Then reboot which windows will ask yu to do anyway, enter the bios and enable AHCI for the IDE configuration. It should then boot and install the discs then ask for another reboot.

Also as a side note, if updating to a solid state drive, this will inrease your speed to 1/3 of its previous...

It should only take 5 mins to do once you identify your driver. To identify which chipset you can use something like CPUID (CPU Z) or some other system information program and identify your southbridge version.

0

Enabling AHCI on existing Windows XP installation .

  1. Download Intel Sata RAID/AHCI storage driver floppy (used during Windows setup with F6) from your motherboard manufacturer and extract files to a directory on your HD.

  2. In device manager change existing IDE ATA/ATAPI controller:

    a. open IDE ATA/ATAPI controllers (click on +)
    b. right click the first Intel controller listed
    c. select "Update driver..."
    d. select "No, not this time, Install from a list or specific location (Advanced)"
    e. select "Don't search. I will choose the driver to install"
    f. select the Standard Dual Channel PCI IDE Controller and click Next (do not reboot)
    g. repeat steps c. to f. for the second controller

  3. Reboot.

  4. In device manager, update the drivers for the existing IDE ATA/ATAPI controller:

    a. open IDE ATA/ATAPI controllers (click on +)
    b. right click the first Standard Dual Channel PCI IDE Controller
    c. select "Update driver..."
    d. select "No, not this time, Install from a list or specific location (Advanced)"
    e. select "Don't search. I will choose the driver to install"
    f. click on "Have disk" and browse to the directory with the AHCI drivers
    g. select the iaAHCI.inf and click Next
    h. ignore any warnings and reboot

    (If you get a blue screen and the system reboots during these steps, repeat them for the second controller)

  5. Reboot

  6. Enter system bios and change controller to AHCI and save.

Your system should now run in AHCI mode.

Possibly you can install the Intel Matrix Storage Manager. Although I'm not sure, it might improve performance.

1
  • How is this different from the accepted answer?
    – ᄂ ᄀ
    Jun 30, 2016 at 19:31
-1

If you're installing/repairing from an XP SP3 disk (at least: dunno if SP2 works) you can force AHCI support by pressing F5 when you are prompted to press F6. Select "486" based system and you're good to go.

1
  • 1
    Apparently this does not work.
    – toriningen
    Dec 19, 2013 at 1:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .