Monday, April 4, 2011

Switch from ATA to AHCI in Windows 7

I've been upgrading quite a few machines from Windows XP to Windows 7 lately, and for some reason, almost every time, I forget to change the SATA Operation setting in the BIOS from ATA to AHCI after wiping the drive and before installing Windows 7.
AHCI (Advanced Host Controller Interface) is a new interface specification that allows the SATA controller driver to support advanced features that can give better performance out of SATA hard drives, especially in Windows Vista/7.
After two or three times of restarting the Windows 7 installation process after changing the SATA Operation to AHCI in the BIOS, I thought their must be a way to make this change without having to reinstall Windows. After a little digging, I found out their is a simple registry change that can be made that will allow for the SATA Operation change. Here's what you can do:
  1. Start "regedit.exe"
  2. Browse to HKLM\System\CurrentControlSet\Services\msahci\
  3. Change the DWord value named "Start" from "3" (ATA) to "0" (AHCI)
  4. Shutdown the computer
  5. Power the computer back on, making sure to enter the BIOS and change the SATA Operation to AHCI
  6. Save the change

Justin


Warning: Changes made to the Windows registry happen immediately, and no backup is automatically made. Do not edit the Windows registry unless you are confident about doing so. Creating a backup before editing the registry is highly recommended.

23 comments:

  1. Thank you! This helped me a lot. I had a computer that was responding a little slow on the hard drive after we installed Win 7 over XP. I didn't have an image of Win 7 because I wanted all of the old windows.old files to be on the C: for me. Anyway, this helped me from having to reinstall (again). Much appreciated.

    ReplyDelete
  2. You may want to fix your typo, though: Servuces\msahci\ :) Should be Services

    ReplyDelete
  3. Typo fixed. Thanks for catching that.

    ReplyDelete
  4. microsoft themselves also suggest to switch

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\IastorV

    to 0 in knowledge base article 922976

    ReplyDelete
  5. Microsoft Knowledge Base Article 922976 stats to change one or the other. Thanks for bringing this up though as I'm assuming you would want to change the IastorV "Start" value to 0 if switching from ATA to RAID. Thanks!
    http://support.microsoft.com/kb/922976

    ReplyDelete
  6. Worked Great! Thank you so very much.

    ReplyDelete
  7. Can you do this from the BIOS as well?

    ReplyDelete
    Replies
    1. Step 5 in my instructions above must be completed in the BIOS. However, steps 1-4 must be completed first.

      Delete
  8. How do these instructions change for Windows 8?

    ReplyDelete
  9. Thank you! Very helpful and saved me lots of time than doing a fresh install.

    ReplyDelete
  10. how about from ahci to raid?

    ReplyDelete
  11. Thanks for this, our encryption software doesn't seem to play well with ATA mode, so being able to change to AHCI mode without reimaging saved us a lot of time during our rollout!

    ReplyDelete
  12. Thank you also to this post---I've done the same thing myself a few times in reconditioning older systems and I forget how to successfully make the correction afterwards. This is it, quick n easy---thank you!!

    ReplyDelete
  13. Sir. Thank you from the bottom of my heart. After installing Windows 7 and spending a couple of agonizing days getting it updated over a slow connection, I realized I had left the HDDs in ATA mode. This is going to be a production machine, so it has to be "right". You have saved me hours.

    ReplyDelete
    Replies
    1. Glad to hear my tip is helping people. This one saved me lots of time many-times :) And, now that you're at Windows 7, you should be able to do the free upgrade to Windows 10.

      Delete
  14. AMAZING!!! I was about to format and start from scratch.

    ReplyDelete
    Replies
    1. I had a Dell tower and the e-sata port was not working. Bios said the port only worked in AHCI mode. This fixed it. e-sata is working. THANK!!!

      Delete
  15. It works like a charm!
    Thanks a ton.

    ReplyDelete
  16. Thanks Justin! Just upgraded a customer's HDD to SSD and the Samsung Magician software said it needed the computer to be in AHCI mode so your procedure did the trick!

    ReplyDelete
  17. Thanks Justin, I image computer labs and the newer pcs only have ahci and raid mode. My image uses ATA, used your tip on an existing machine, changed the mode to AHCI and it booted fine. Now I can deploy to the new machines, saved me a ton of work, thanks!

    ReplyDelete
  18. On my Dell780USFF I have Win7Pro64 running in ATA mode and Bios is set to ATA - it boots fine, but the eSata port does not, as it requires bios to be set to AHCI.
    I modified the registry as suggested, switched bios settings to AHCI and rebooted. DID NOT WORK (infinite reboot loop)
    I switched back to ATA in Bios; Strangely Win7 loaded even if the registry was still set as AHCI (0), so I'm baffled.
    SUGGESTIONS? Thanks.

    ReplyDelete