HOW TO switch from IDE to AHCI mode without having to reinstall Win XP (GUIDE)

Status
Not open for further replies.

Jack the Newbie

New member
GENERAL OF THE ARMY
Joined
Nov 20, 2006
Messages
14,939
Problem:

If you forgot to activate AHCI-mode in BIOS before you installed Windows XP SP2 on one of your SATA drives you will encounter a serious problem if you attempt to switch to AHCI-mode after the installation is already completed:  Windows XP SP2 will not start properly anymore.

Why AHCI?

AHCI stands for Advanced Host Controller Interface. One of the main reasons for switching to AHCI-mode is to take advantage of the NCQ-Feature of your SATA harddrive.  NCQ (Native Command Queuing) allows ATA drives to accept more than one command at a time and dynamically reorder the commands for maximum efficiency. NCQ, when used in conjunction with a hard drive that supports NCQ, can increase storage performance on random workloads.

Solutions:

There are basically two possible solution that do not involve a re-installation of the whole operating system. 

1.] Solution #1 is the simpler one as it only involves a few mouse clicks in Device Manager.  Apache Thunder has posted a detailed guide with screenhots which can be found >>here<<. 

2.] In case Solution #1 fails, there is another way to do this (Solution #2), which is somewhat more complicated as it involves a registry patch that has to be customized for the specific Intel Chipset used on the mainboard at hand.  The guide that I am going to reproduce here was originally posted on a German Gigabyte forum by JZ.
[ http://62.109.81.232/cgi-bin/sbb/sbb.cgi?&a=show&forum=1&show=450&start=0 ]

I figured it would probably not a bad idea to put up a thread about here as well.

I have successfully tested the whole thing on the following mainboards:

-P965 Platinum (ICH8R)
-P35 Platinum/Neo2-Series (ICH9R
-975X Platinum PowerUp Edition (ICH7DH)


First Step:

Open Windows Notepad and create a REG-file and name it as you like (example: AHCI.reg)

Copy and paste the following lines into that reg-file and save it (use the right content for your controller (ICH8R, ICH9R and ICH7DH)

ICH8R

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2821&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2821&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001


ICH9R [THX @monographix  :emot-tip-wink:]

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2922&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2922&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

ICH10R


Windows Registry Editor Version 5.00

;
; Important: The File iastor.sys has to be present in the System32\Drivers folder.
;


[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#ven_8086&dev_3A22&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,61,00,53,00,74,00,6f,00,72,\
  00,2e,00,73,00,79,00,73,00,00,00
"Tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000
"BusType"=dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_3A22&SUBSYS_B0051458&REV_01\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

Now double-click on your reg-file to make the above changes to the Windows registry.

Do not restart your computer at this point.


Second Step:

Copy the iaStor.sys-File into the \Windows\System32\Drivers\-Folder if it isn't in there already. 

The file is part of the of the Intel Matrix Storage Manager-Packet (IATA621_CD.EXE) and can be retrieved manually:

\START\Run --> IATA621_CD.EXE -a -a

After entering this command the file should be in the following folder:

...\Program Files\Intel\Intel Matrix Storage Manager\Driver

...and ready to be copied.

Third Step:

Restart your computer, enter BIOS and switch to AHCI-mode.

Save, exit and load Windows XP which should now start properly, discover the SATA AHCI Controller and ask for a driver.

Abort the whole Windows-Driver-Installation procedure and run IATA621_CD.EXE instead to take care of the installation.

Restart your system.

-----------

Done. 



Sugestions and corrections are very welcome.
 
Well, thank you for your thank you post. 

This forum is not really the right place to discuss stuff regarding Asus boards.  However, in general terms:  The Hot Swap Feature that you can take advantage off when you enable AHCI is essentially a feature of the SATA Controller and not limited to eSATA ports alone.  It will pretty much make every associated SATA Port hot-plug capable.  You could theoretically attach an eSATA Bracket to any of the internal SATA Ports and hook up eSATA drives to them.  Under the bottom line, there is no essential functional difference between a SATA and an eSATA port besides the connectivity.
 
Hi All,

I believe I'm missing something with Solid state drives. I have an MSI P6N Diamond and am running Windows 7. How do I enable AHCI if I'm running Windows 7?
 
I believe I'm missing something with Solid state drives.

What exactly would that be?  What are you missing? Can you name it?

How do I enable AHCI if I'm running Windows 7?

AHCI has nothing to do with the operating system as such.  Also, this thread mainly concerns Intel Chipsets.

Because of the NVIDIA Chipset that is used on your board, there is (as far as I know) no dedicated AHCI Mode which you could switch the SATA Controller to in BIOS Setup.  The only options (I think) you have are IDE/Legacy Mode (default) and RAID Mode. 
 
Jack t.N. said:
What exactly would that be?  What are you missing? Can you name it?

AHCI has nothing to do with the operating system as such.  Also, this thread mainly concerns Intel Chipsets.

Because of the NVIDIA Chipset that is used on your board, there is (as far as I know) no dedicated AHCI Mode which you could switch the SATA Controller to in BIOS Setup.  The only options (I think) you have are IDE/Legacy Mode (default) and RAID Mode. 

That is what I am missing, that AHCI is only an Intel thing. I will look to see about what if any settings are helpful for Nvidia chipsets then, but I was specifically looking for P6N threads and how to optimize for solid state drives.
 
I'm not even sure AHCI is an option on Intel boards released at the time of P6N...I may be mistaken about the timing.
 
I'm not even sure AHCI is an option on Intel boards released at the time of P6N...I may be mistaken about the timing.

AHCI was supported ever since the ICH6R Southbridge (925X chipset based boards had one (2004)). 

That is what I am missing, that AHCI is only an Intel thing.

It is not an Intel-only thing.  Intel defined the AHCI Specifications but it is not a feature limited to Intel Controllers.

On Intel Chipset boards it is also possible to enable RAID Mode instead of AHCI mode and have all benefits of the AHCI protocol.  RAID Mode includes the AHCI Mode (so to speak).  I have no idea if this is actually true for NVIDIA Chipsets as well (unfortunately NVIDIA never publishes any datasheets whatsoever, so it is hard to check specifications).

What you can try is to enable RAID Mode on your board and see what happens.  Make sure you run a couple of benchmark tests as long as the system is in IDE Mode to have a reference for performance comparisons.  But beware:  I do not know what kind of SSD you actually have. 

If you have an OCZ SSD for example, please read this first:

http://www.ocztechnology.com/res_old/images/Configuring-and-Setting-Up-SSDs.pdf

AHCI 
AHCI is not official supported on OCZ SSDs and may under some circumstances affect performance,
specifically during windows installation. Enabling AHCI can result in higher performance in synthetic
benchmarks for SSDs and HDDs alike, but can cause hang-ups and intermittent freezes in SSDs since it
allows multiple access requests to compete for a drive that is not made to address re-ordering of
commands in the queue. We recommend AHCI is set to disabled in both Windows and in the BIOS.
Native Command Queuing greatly increases the performance of standard rotational drives but it has no
bearing on SSDs. 
 
Jack t.N. said:
Are you sure?  Have a look here in BIOS:
Integrated Peripherals --> On-Chip ATA Devices --> On-Chip SATA Controller --> ?? ??


I checked it but I only have IDE and Disabled as an option, so I cannot enable AHCI. I've flashed the BIOS with v1.10 (dated 2008-11-11), but I still get nothing. What can I do?
 
Yeah, sorry :). I forgot to mention because I'm having the exact same problem as uid313 (in this question/answer - same thread).

I have an MSI, model MS-7360, chipset P35 (on my motherboard it says P35 Neo if I open the case), southbridge 82801lB (ICH9) with an AMI v1.10 BIOS, dated 2008-11-11.
 
The chipset (ICH9) does not support AHCI Mode.  Only ICH9R and ICH9DO Chipsets officially suppor AHCI.  That is why there is no AHCI option in BIOS Setup.  Sorry, but your board does not support AHCI on the primary chipset/controller.  There is nothing that can be done about it.
 
I got here from this thread: http://www.overclockers.com/forums/showthread.php?p=6542962


Can the original poster include this information in post #1:


? Where in the manual does it specify which ICH it is, in case people need to do this on different motherboards?

- You can figure out which ICH is used by looking at the chipset: http://en.wikipedia.org/wiki/List_of_Intel_chipsets


? Where is the Intel Matrix Storage Manager-Packet (IATA621_CD.EXE)?

http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17882

 
Hello All,

Working with a HP Elitebook 8540p - would like to switch to AHCI without re-image. Believe it is using the the QM57 chipset. Does anyone know the reg entries that need to be altered? This is what I have tried and it still blue screens:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_3b07&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4d36e96a-e325-11ce-bfc1-08002be10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000019
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,61,00,53,00,74,00,6f,00,72,\
  00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Intel AHCI Controller"
"Group"="SCSI Miniport"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000
"BusType"=dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_3B07&SUBSYS_00000000&REV_06\\3&B1BFB68&0&F8"
"Count"=dword:00000001
"NextInstance"=dword:00000001

Thanks
 
Sorry, we can not help you with your HP.  These forums are for MSI retail products only.  We are not a general hardware forum.  You could try going to a site like Guru3D, http://forums.guru3d.com/ , which has a general hardware and operating system section.
 
Alright sorry for the bump, but letting other users know that you might not have to go through registry edits to achieve this. I have a Asus P6T mobo so it's not an MSI, but this should definitely work for MSI boards as they probably use intel chip sets too. (this process isn't chipset specific anyway, so it shouldn't matter what chipset you have)


Just today I decided to update windows to AHCI drivers and enabled AHCI in BIOS. I did this WITHOUT touching the registry! Here's what I did:

PRIOR to enabling AHCI, I updated the drivers to both my SATA controllers. (they show up as IDE controllers when they are in IDE mode). First off, do NOT touch the Primary/Secondary channel drivers. Those are not the right ones as they are just child devices under the controller and will be updated automatically when you update the controller drivers. It's the controllers you need to update. ;)

I simply made the AHCI driver disk (you can also just put the drivers in a folder somewhere if you don't have a floppy drive) and then went into device manager and updated both my IDE controllers to the AHCI drivers on my disk that match my chipset. Here is detailed instructions with screenshots showing how to do this. Be sure you install THE CORRECT drivers for your controller chipset. The only difference you should spot is that the new drivers will have AHCI in their names instead of the IDE/PATA/ATA in their name. Windows will warn you that they might not "match" your current hardware but just ignore it. Once you restart and enable AHCI, they'll match then so that dialog is irrelevant. :D

First find your first controller in Device Manager and right click and go to "Update Driver":

001vj.jpg



Then click the install from specific location option and click next:

002aye.jpg


Then click the don't search and install from specific location option then click next:
003rme.jpg


In the next dialog, immediately click the Have Disk button and this should come up. Click browse and point it to the location you have the drivers at. If it's on a floppy like they should be, then just click ok since it defaults to the floppy:
004rr.jpg



You will be returned to the dialog that had the have disk option. This time you must uncheck the show compatible hardware check box so that it will show all the drivers your AHCI driver location has. Then select the MATCHING driver for your chipset. Get this wrong and your in for some serious trouble after reboot:

005gs.jpg



After that, click next and it should be smooth sailing after that. It will likely warn you about that driver not matching your hardware. Just tell it to install anyway. After that, repeat this for your secondary controller (if it asks you to reboot on the first one, say no since you still have to do the secondary one). Once you repeated the above for your secondary controller, then click yes to reboot when it asks you. If you have more then 2 controllers, you can deal with them after reboot. It's only the primary/secondarys we are worried about as those are the ones that your OS boots from.

When you reboot, enable AHCI in your bios then boot up Windows. For me it booted up and it worked! It then reinstalled new drivers for the "channel" drivers and other things and asked to reboot again. So I rebooted after that and after that it was done. Viola! AHCI enabled OS AFTER you had installed windows in IDE mode!

This might even work for Vista/Win7 users and it's much the same process as WinXP. This should be the first thing you try BEFORE you start fiddling around with your registry. Plus this is mostly universal. You can do this with any possible chipset you might have as this process isn't chipset specific. Please note in the screenshots, I had already updated to AHCI but I did exactly what I did above and achieved what the original guide in this thread did. Except this time it's less complicated and less prone to error. ;)
 
Alright sorry for the bump, but letting other users know that you might not have to go through registry edits to achieve this.

Thanks for your detailed posting.  Somewhere in this thread, the same method was already suggested and even though it does indeed work in many cases, it does unfortunately not work in all.  But it is definately not a bad thing to try this indeed simpler solution first.
 
No problem. I hadn't read through all pages so I didn't spot where this method was mentioned. But my explanation may be more newbie friendly then the others and is generally safer. And yes there may be instances where this might not work. But this should be done before the registry method unless you know your particular chipset won't update like that. :D

If you like you can add my guide to the first post if you want. (with any edits you may need to make it more readable as there might be typos or something I might have missed). Quite a few poeple might not see this guide as they will likely read the first page first. Having both guides on the first page would probably work out better for everyone. ;)
 
Status
Not open for further replies.
Back
Top