Blog

Switch Windows XP to AHCI after Installing Windows

Switch Windows XP to AHCI after Installing Windows

For purposes of ghosting SysPrepped PC's it could be important to switch Windows XP to AHCI after installing Windows. We have been doing this with our Dell laptops.

Our baseline SysPrep image works well on Dell Precision M65's and M4300's, which do not support AHCI. The new Dell Precision M4400's we have been ordering do. In order to not re-create the image from a fresh Windows install, I have figured out how to switch a PC from ATA to AHCI mode after Windows is installed.

  1. Start with a fresh M4400 booted with the Dell installation of Windows XP using AHCI.
  2. Run regedit.exe
  3. Right-click on HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001 and select Export. Save this on a USB stick as ControlSet001.reg.
  4. Now right-click on HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iastor and select Export. Save this on the stick as IAStore.reg.
  5. Copy the file C:\WINDOWS\system32\drivers\iaStor.sys to your USB stick.
  6. Go to Intel's web site and download the latest Matrix Storage Manager: http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101&lang=eng Put this on the stick also.
  7. Restart the PC and boot to the BIOS configuration. Switch the Disk Controller to ATA mode.
  8. Use a Ghost boot disk and copy your SysPrep'd image onto the M4400.
  9. Boot the new image, and complete the mini Windows Setup wizard.
  10. Copy the iaStor.sys file from your USB stick to the C:\WINDOWS\system32\drivers folder.
  11. Install the ControlSet001.reg and IAStore.reg registry files by clicking on them.
  12. Shut down and restart the PC. Before it boots, go back to the BIOS settings. Select AHCI mode.
  13. Boot the PC. It will run the Found New Hardware wizard. Cancel this wizard without installing anything.
  14. Install the Intel driver you downloaded earlier. Restart again.

     

All of the files you need to switch a Dell M4400 can be found here:

Dell M4400 Files

All of the files you need to switch a Dell M2400 can be found here:

Dell M2400 Files

Update 9/11/2009:

After trying this procedure on a Dell Precision M2400, I found that there is too much junk in the HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001folder. So instead of exporting the entire tree from this point, search from here to find iaStor. Copy the key within HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase where it is found. Export this key as your ControlSet001.reg instead of the full tree.

More on this topic can be found here:

http://forums.pcper.com/showthread.php?t=444831

Comments

w. dafje
# w. dafje
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.
No Name
# No Name
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.
No Name
# No Name
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.
Ed Hayes
WOW! Very Odd! Well, at least you now have some info on a cheap enclosure that should work, and a nice USB partitioning solution!
Ed Hayes
@Timoto

No problem. I hope my advice is helpful.

The enclosure should, theoretically, just pass the SATA through to the computer. It shouldn't be doing anything to the data transmission. I have a feeling the problem is the Windows driver, or the partitioning of the drive.

Have you tried attaching the drive to a second PC? Does it have USB? Does the USB work?

Try http://partedmagic.com Parted Magic is a bootable Linux distribution made for USB jump drives. It includes GParted, a program you can use to manage drive partitions The site will guide you through the creation of the USB jump drive, its quite simple. Gparted/Parted Magic will tell you if your computer can read the device, and if so, read the partitions. Although I dont know how or if it indicates MBR vs GUID Partition structures. I know it can read or edit them though! If you ever used the device in a Mac, or it came "Mac formatted" it may be GUID (GPT). I know you said it is not, but you can have BOTH a GUID/GPT drive, and MBR (master boot record). Wikipedia can help you more with what that is all about.

On to Windows. My Toshiba laptop's device manager looks like this: http://grab.by/2197 I have one controller and 2 disk drives. If I recall correctly, before I changed the drivers to AHCI, there were two controllers in Compatibility mode? I could be wrong though.

This is the enclosure I am using. http://www.newegg.com/Product/Product.aspx?Item=N82E16817106099

I have it attached to the eSATA port, and powered via a dedicated/powered USB port.
timoto
Update

I decided to bypass the nasty JMicron 20330 chipset of the enclosure by opening it up, pulling out the internal eSATA cable and connected the external cable directly to the m4400 eSATA port.

Viola. The drive is seen by all concerned controllers and GUIs

Just need to find a decent enclosure.

timoto
Hello Ed

Thank you for your continued interest/advice.

Yep, googled, found some forums, getting bits and pieces from here and there.

I actually started with Vista Buisness 32bit IRRT. The drive could be seen in BIOS, Matrix Storage Console and Disk Management, but could not be coaxed iinto life with a drive letter etc.

When I updated the controller I selected the ICH9M 2928. Under controllers now are the ICH9M AHCI and the IDE Contoller + IDE Channels.

So to answer your question, I'm not sure if the port's controller is updated or not.

With XP, BIOS, Matrix Storage Console see the disk but Disk Management does not.

Although I can boot through the BIOS with the drive connected, once it reaches booting XP OS, the system goes into overdrive and the fan pumps out enough heat to warm my basement chilled hands.

If I boot without the drive connected, get logged into windows then switch on the enclosure, the Matrix Storage Console detects a connection and warns that if it is a port multiplier only port 0 will be recognised.

Matrix Storage Console 8.2 sees the drive, but takes ages to enumerate.

I'm anticipating the need for a newer enclosure, a eSATA expresscard and finally Win7 64bit to give myself a fighting chance.

Shame not to get this port working though, it was half the reason I bought this system.
Ed Hayes
@timoto

Have you tried doing some Google searches? It is hard to diagnose from this blog. - Have you tried a second computer?
- Maybe one with a newer OS, see if that's the problem?
- Did you update both of the disk controllers? You may have updated the OS's disk controller, and not the external port's controller. I am just guessing there.
- The same thing happens when you connect it when the computer is already booted?
timoto
Hello Ed

Thanks for your suggestions.

ACHI now works, but I have found that at least with 2 external enclosures the drives lock up the IO or something. The JMicron chipsets on these enclosures are a bit dated. I think they only support SATA I, so that could be an issue.

The partition is MBR.

When I boot the drive is recognised at the BIOS level. When continuing to XP boot the system locks up with permanent "bus" light.

I have 1 internal boot drive and 1 external eSATA drive connected.
Ed Hayes
@Timoto

Glad I could help!

I thought Microsoft Windows XP was not Plug-n-Play for eSATA. But, I just tried, and it worked.

- Try booting with the drive connected.
- Make sure the device is powered; eSATA is only a data connection, and does not provide power to the device like USB does.
- Verify you are using an MBR based partition table on your drive, and not GUID. Mac OS X uses GUID, Windows XP does not recognize that type of partitioning. Right click "My Computer", click Manage, then Disk Management. You can see if Windows is aware of your hard disk there. You can also partition/format (very basic) in the same place.
- FYI, eSATA drives ARE bootable. I have a drive I can plug in and boot into Microsoft Dynamics POS. Or disconnect, and boot into WinXP/Win7 from the internal disk. How Exciting!

The HDD access light is for the entire bus, just like on a desktop PC, if you have multiple drives, one light flashes for all drives.

Hope that helps!
Ken Brey
Timoto, I have not had issues with eSATA after switching to AHCI. In fact that's the only way I got it to work.

Ed, I like your process. I think I'll try it the next time I have to do a new PC model. Thanks!
timoto
@Ed Hayes

What a relief to find the old "Have Disk" method of dealing with this issue.

So simple, fast and worked !

Have you had any experience with external drives not being recognised in the eSATA port and the laptop HD light being on continuously even after AHCI being enabled?
Craig Fryer
# Craig Fryer
I had tried EVERYTHING imaginable. Your instructions seemed too easy, so I didn't try it... until I exhausted all other methods. Now in humility, I say THANKS! Worked like a charm!
Ed Hayes
I had the same problem with my Toshiba Satellite A505-S6960 laptop. I was able to solve the problem with a simpler process:

- Download the Intel Matrix Storage Drivers
- Update the ATA controller driver in Device Manager
- Manually select the IaStore.sys file
- Choose ICH9M controller
- Restart the computer when asked
- Change to AHCI in the Bios
PC News
Really good and useful information. it is quite hard to find information about this in the net and I was searching more than half an hour about the problem, which I met today.

Post a comment

Name (required)

Email (required)

CAPTCHA image
Enter the code shown above: