Neowin Guide: How to change from IDE to AHCI without reinstalling Windows

This week, we have decided to post a topic from A Collection of Essential Guides in our forums, Warwagon explains how to change from IDE to AHCI mode without having to reinstall Windows.

What are the benefits of AHCI mode over IDE?

AHCI supports Native Command Queuing. NCQ allows the drive itself to determine the optimal order in which to retrieve outstanding requests. This may, as here, allow the drive to fulfill all requests in fewer rotations and thus less time. Source Wikipedia.

About 2 months ago I installed an SSD drive in my media center. For some reason up until tonight I never checked what the SATA mode was set to in the BIOS. It was set to IDE. I also really wasn't keen in reinstalling Windows. Of course once you change it in the bios from IDE to AHCI windows will no longer boot. So I looked around the internet and found some really great instructions on how to switch from IDE to AHCI without having to repair or reinstall Windows.

Do not attempt this if you do not know what you're doing!
Neowin is not responsible for loss of data and this information is merely presented as a guide.

You start with step 1 while you are still in Windows in IDE mode.

  1. Run the Registry Editor (regedit.exe)
  2. Navigate to Registry Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci
  3. Set the "Start" value to 0 (zero)
  4. Navigate to Registry Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Pciide
  5. Set the "Start" value to 0 (zero)
  6. Shut down
  7. Start up again, but before Windows boots go into the BIOS configuration screens and change the disk mode to "AHCI". Save the new BIOS configuration and restart so that Windows boots.

When Windows starts, it will detect the change, load new disk drivers, and do one more reboot to start up with them.

If for any reason the above steps should fail, simply change back to IDE mode in the BIOS.

For more information on AHCI click here, discuss this in our forums.

Image credit: Wikipedia

Report a problem with article
Previous Story

iOS 5 to support 1080p playback on iPad 2

Next Story

Apple sued by iCloud Communications

32 Comments

Commenting is disabled on this article.

The last time I did this change my HDDs became seen in Device Manager to use some past era transfer mode (I think its Multiword DMA) instead of Ultra DMA.

Switched back to IDE mode ever since.

What cheeses me off the most about AHCI being enabled is the during install windows loads a butt load of drivers for the least used controllers and fails to see the ones most used by motherboard manufacturers ie: Silicon Image, Marvell, Intell, AMD/ATI who here runs a thousand dollar raid SATA/SAS controller card my bet would be less than 1% of us so why is there no support from MS

Athlonite said,
What cheeses me off the most about AHCI being enabled is the during install windows loads a butt load of drivers for the least used controllers and fails to see the ones most used by motherboard manufacturers ie: Silicon Image, Marvell, Intell, AMD/ATI who here runs a thousand dollar raid SATA/SAS controller card my bet would be less than 1% of us so why is there no support from MS

You can't blame AHCI and you can't really blame Microsoft. If the controller doesn't offer a real mode interface, Microsoft has to enumerate through a list of controllers, as it can't identify the controller in a normal way. So ya, Microsoft could put priority on a set of 'common' controller drivers, but this changes, as just a couple of years ago, popping the controller you think is most common was rare then.

PS It is just during the install, and if you are loading a bunch of system, go look up the OEM and other IT tools, you should not be loading windows using the 'standard' setup, and should be feeding the setup the informtion it needs to grab the right drivers before it even has to look.

I nave switched between the two in Win7 without editing anything other than the BIOS setting.

WinXP however will BSOD unless a new driver is installed. Hell out of the box WinXP does not support AHCI at all since at least SP2. At work I had to add the AHCI driver to the text mode install step of WinXP otherwise it would BSOD after the next restart.

AHCI also supports eSATA drives in XP which was a need for my job at the data recovery company I worked for. But, you could also inject the AHCI drivers using BartPE.

Sorry, but I thought the problem with AHCI is when you turn it off and switch to IDE and then Windows has a fit? At least, that's always the case when I've accidently done it. I've never had any problems switch from IDE to ACHI or to RAID...

Tony. said,
Sorry, but I thought the problem with AHCI is when you turn it off and switch to IDE and then Windows has a fit? At least, that's always the case when I've accidently done it. I've never had any problems switch from IDE to ACHI or to RAID...

This is far more true than it use to be.

Especially prior to Vista the which added new mechanisms to fallback and repair (aka change) the driver was added.

As NT boots it has more to do with the type of controllers and what they offer, so if a AHCI controller can offer a 'real mode' interface during the initial boot, the system would be able to find the volumes.

However some controllers don't have or properly expose a real mode level interface and as the bootloader in NT fires, it has no way to even try to figure out what the controller or the volumes are, and it no longer has access the files on the boot volume to enumerate through them easily without a fallback taking place and with limited new support for various generic level protected mode driver sets in Vista and Win7.

Which basically means it is specific to the controller and often even the brand or chipset of the controller, as some offer the real mode interface and some just do not.

What trouble? If you already rebuild the machines just change the BIOS to AHCI and Windows will choose the right settings for AHCI when you install it anew.

Gungel said,
What trouble? If you already rebuild the machines just change the BIOS to AHCI and Windows will choose the right settings for AHCI when you install it anew.

When Dell first offered this in like the GX745's or GX755's we were having a tough time figuring why when we put our image on the drive the machine would not boot. After some research we found out that it had to do with the drive operation mode being set to AHCI. We then set the mode to ATA and the machine would boot. After reading this article I now can see why this was happening. I was just asking how much performance increase NCQ offered.

notta said,

When Dell first offered this in like the GX745's or GX755's we were having a tough time figuring why when we put our image on the drive the machine would not boot. After some research we found out that it had to do with the drive operation mode being set to AHCI. We then set the mode to ATA and the machine would boot. After reading this article I now can see why this was happening. I was just asking how much performance increase NCQ offered.


Well... based on the image, it was able to read 4 things in one revolution (with NCQ) vs needing 4 revolutions to read the 4 things. You do the math on that. (1 rev/4 items vs 4 revs/4 items)

What kind of performance increase do you get from NCQ? When a machine comes from Dell they enable AHCI, but we usually rebuild the machines and just enable ATA. Is the increase worth the trouble because we've never really noticed any performance differences.

notta said,
What kind of performance increase do you get from NCQ? When a machine comes from Dell they enable AHCI, but we usually rebuild the machines and just enable ATA. Is the increase worth the trouble because we've never really noticed any performance differences.

Well, why do you switch ATA in the first place then?

Tony. said,

Well, why do you switch ATA in the first place then?

Because the BIOS is set to AHCI and if we put our image on the drive the machine will not boot. That's why we have to switch to ATA, for the machine to boot.

notta said,

Because the BIOS is set to AHCI and if we put our image on the drive the machine will not boot. That's why we have to switch to ATA, for the machine to boot.

Um, you need to rethink your image and how you are loading systems. Microsoft has a lot of OEM level tools that automate all of this for you.

At the very least have two base images that match the criteria to support the boot devices and drives NT needs to see itself.

Because NT doesn't iterate though 100 drivers on every boot, there are only a couple of simple rules, with the main one NT needs to be able to have the driver and see the volume it is located on so it can read itself from the hard drive.

I created a thread on Rage3D two weeks ago because of the same issue - bear in mind that without AHCI, you can't even upgrade your SSD firmware (which was the reason that made me research the whole thing in the first place). Btw Msahci is the only value you need to set to zero, Pciide is not necessary from my experience. Cheers for raising even more awareness with your front page post, I am sure many people don't know about this.

DKAngel said,
all i did was switch to ahci and windows was fine, i didnt have to do any reg entries at all

In some cases, Windows will crash. Used to happen all the time in XP using Dell Optiplex 755s and 780s.

Thanks for this. I had this problem while installing XP. I was lazy and just set the bios to IDE enhanced instead of downloading the AHCI drivers when installing. I don't have this problem with Ubuntu because the kernel just loads the appropriate module, or a bunch of them.

I'll give this a go later

Flawed said,
Thanks for this. I had this problem while installing XP. I was lazy and just set the bios to IDE enhanced instead of downloading the AHCI drivers when installing. I don't have this problem with Ubuntu because the kernel just loads the appropriate module, or a bunch of them.

I'll give this a go later

Meaning...
Ubuntu loads a bunch of generic ones. Go look up MONOLITHIC kernel.

This does not mean Ubuntu is doing things better, it 'has' to do things this way unless you specificlaly compile a new kernel for your specific hardware. To hide this for non-tech users, eveything but the kitchen sink gets put into the generic kernel you are running.

If you follow kernel architecture history, there are many specific reasons NT (Windows) was not designed like this, as running a less optimized kernel with a bunch of generic non used bits in the kernel is less than ideal.

On Windows 95 you wouldn't have to do make any changes either, it would just work too. Does this mean Windows 95 is more awesome just like Ubuntu? In a technical sense the Win95 kernel is the same base architecture as Ubuntu/Linux.

Leave the 'Linux' just works crap to a place people would are silly enough to buy it, k?

thenetavenger said,

Meaning...
Ubuntu loads a bunch of generic ones. Go look up MONOLITHIC kernel.

This does not mean Ubuntu is doing things better, it 'has' to do things this way unless you specificlaly compile a new kernel for your specific hardware. To hide this for non-tech users, eveything but the kitchen sink gets put into the generic kernel you are running.

If you follow kernel architecture history, there are many specific reasons NT (Windows) was not designed like this, as running a less optimized kernel with a bunch of generic non used bits in the kernel is less than ideal.

On Windows 95 you wouldn't have to do make any changes either, it would just work too. Does this mean Windows 95 is more awesome just like Ubuntu? In a technical sense the Win95 kernel is the same base architecture as Ubuntu/Linux.

Leave the 'Linux' just works crap to a place people would are silly enough to buy it, k?


But it does "just work". (For the most part). How it does so is irrelevant.

This is front page news??

Don't get me wrong this is a great guide but I had the link to the Microsoft Fix-It for this in my forum sig months ago.

btw, olger901 you don't need to "force" the drivers on Windows Vista and Windows 7, just apply the registry entries, reboot into the BIOS/EFI and enable AHCI mode, reboot into windows and install/reinstall the chipset drivers.

Nice guide. But wouldn't recommend this on Windows XP.
XP tends to be a lot more fussy with regards to this. You'll get some nice blue screens.

BrainDedd said,
Nice guide. But wouldn't recommend this on Windows XP.
XP tends to be a lot more fussy with regards to this. You'll get some nice blue screens.

That's because there's another way to accomplish this in Windows XP. In Windows XP you need to replace the standard IDE driver with the Intel AHCI driver (manually force it from the Device Manager). Once done, reboot and enter the BIOS. Change the boot setting from IDE to AHCI and Windows XP will boot just fine. It will ask you to reboot. Do so and the AHCI driver is installed.

BTW: This method also works for Windows Vista and Windows 7 using both the MS AHCI and the Intel AHCI driver. I've used it several times and works without any problems.

Sraf said,
Handy, I should check to make sure that this is enabled on my boot drive
When you enable AHCI in the BIOS it'll be enabled for all SATA channels on the controller you activate it on.