Windows XP – How to Enable AHCI Without Reinstalling

ahcidriversreinstallwindows xp

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".

Best Answer

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.

Related Question