Adding Intel Matrix Drivers to Your XP Image for AHCI SATA Support
It seems like people have had trouble getting some of the newer models of machines working in native SATA AHCI mode. I'm referring to the infamous STOP 0x0000007B INACCESSABLE_BOOT_DEVICE BSOD. My goal with this article is to consolidate all the fixes, information, and tips I have come across on this topic, and to provide a process that can be followed to support AHCI mode in your XP image. The workaround most people tend to use is to turn off SATA support in the BIOS and run in IDE mode. The IDE drivers are natively supported in XP and don't require you to make a new image for support. This works for some people while others would rather be using the AHCI SATA support to receive the full performance benefits. This article is for the latter.
Before you start, it is also worth noting the new feature of DS 6.9 SP1 called DeployAnywhere. This should allow you to get around having to create a new image to support your MSD. If you aren't using DS 6.9 SP1 yet, or if you just want to fix your image like me, then you can follow the process in this article.
Typically the IDE mode performance degradation isn't visible to the end user. Recently we received a new HP laptop model where this wasn't the case. Since I needed to re-build our image for XP Service Pack 3 anyways, there was no better time to integrate the Intel Matrix Storage drivers into the image. Due to the fact the vast majority (if not all) PC manufacturers are using the Intel Matrix Storage drivers, this article includes how to add support for all versions Intel offers to date. This same process will work to support new controllers beyond ICH10 as they are developed.
Extracting the Drivers
The first step to supporting the Intel Matrix drivers is to download, and extract the necessary files. The XP Professional drivers can be downloaded from Intel at the following link:
http://downloadcenter.intel.com/filter_results.aspx?strTypes=all&ProductID=2101&OSFullName=Windows*+XP+Professional&lang=eng&strOSs=44&submit=Go%21
Intel Matrix Storage Manager Version 8
Download iata87enu.exe and run the following command to extract the files:
iata87enu.exe -A -P C:\extract\IMver8
The files you will need are in C:\extract\imver8\winall\Driver\*.*
Copy these files to C:\drivers\MSD\IMver8
Intel Matrix Storage Manager Version 7
Download iata78_enu.exe and run the following command to extract the files:
iata78_enu.exe -A -Pc:\extract\IMver7
The files you will need are in C:\extract\imver7\Driver\*.*
Copy these files to C:\drivers\MSD\IMver7
Intel Matrix Storage Manager Version 5
Download iata55_enu.exe and run the following command to extract the files:
iata55_enu.exe -a -a -p c:\extract\IMver5
The files you will need are in C:\extract\imver5\Driver\*.*
Copy these files to C:\drivers\MSD\IMver5
Adding the Drivers to the Image
You can choose to copy the drivers to your image wherever you would like. For my example I use C:\drivers\MSD. Once all the necessary drivers have been extracted, copy them to the reference machine for the gold image. In the end you should have the following directory structure on your gold image:
C: -drivers --MSD ---IMver8 ------iaAHCI.cat ------iaAHCI.inf ------iaStor.cat ------iaStor.inf ------IaStor.sys ------TXTSETUP.OEM ---IMver7 ------iaahci.cat ------iaahci.inf ------iastor.cat ------iastor.inf ------IaStor.sys ------TXTSETUP.OEM ---IMver5 ------iaahci.cat ------iaahci.inf ------iastor.cat ------iastor.inf ------iaStor.sys ------TXTSETUP.OEM
Modifying your Sysprep.inf File
Now that the drivers have been added to the image you can update your sysprep.inf file to support them. I created the entries below starting with the latest version of the Intel Matrix drivers so that a device would use the newest drivers available. This is why versions 7 and 5 only have a few entries in the list below. Append the following information to the [SysprepMassStorage] section in sysprep.inf
; APPEND ADDITIONAL SATA CONTROLLER DRIVERS HERE PCI\VEN_8086&DEV_24DF&CC_0104=%systemdrive%\drivers\MSD\IMver5\iastor.inf ; Intel(R) 82801ER SATA RAID Controller PCI\VEN_8086&DEV_25B0&CC_0104=%systemdrive%\drivers\MSD\IMver5\iastor.inf ; Intel(R) 6300ESB SATA RAID Controller PCI\VEN_8086&DEV_2652&CC_0104=%systemdrive%\drivers\MSD\IMver7\iastor.inf ; Intel(R) 82801FR SATA RAID Controller PCI\VEN_8086&DEV_2652&CC_0106=%systemdrive%\drivers\MSD\IMver7\iaahci.inf ; Intel(R) 82801FR SATA AHCI Controller PCI\VEN_8086&DEV_2653&CC_0106=%systemdrive%\drivers\MSD\IMver7\iaahci.inf ; Intel(R) 82801FBM SATA AHCI Controller PCI\VEN_8086&DEV_2682&CC_0104=%systemdrive%\drivers\MSD\IMver8\iastor.inf ; Intel(R) 631xESB/632xESB SATA RAID Controller PCI\VEN_8086&DEV_27C3&CC_0104=%systemdrive%\drivers\MSD\IMver8\iastor.inf ; Intel(R) 82801GR/GH SATA RAID Controller PCI\VEN_8086&DEV_27C6&CC_0104=%systemdrive%\drivers\MSD\IMver8\iastor.inf ; Intel(R) 82801GHM SATA RAID Controller PCI\VEN_8086&DEV_2822&CC_0104=%systemdrive%\drivers\MSD\IMver8\iastor.inf ; Intel(R) ICH8R/ICH9R SATA RAID Controller PCI\VEN_8086&DEV_282A&CC_0104=%systemdrive%\drivers\MSD\IMver8\iastor.inf ; Intel(R) 82801HEM SATA RAID Controller PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) 631xESB/632xESB SATA AHCI Controller PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) 82801GR/GH SATA AHCI Controller PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) 82801GBM SATA AHCI Controller PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) 82801HR/HH/HO SATA AHCI Controller PCI\VEN_8086&DEV_2829&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) 82801HEM/HBM SATA AHCI Controller PCI\VEN_8086&DEV_2922&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) ICH9 SATA AHCI Controller PCI\VEN_8086&DEV_2929&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) ICH9M-E/M SATA AHCI Controller PCI\VEN_8086&DEV_3A02&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) ICH10D/DO SATA AHCI Controller PCI\VEN_8086&DEV_3A22&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) ICH10R SATA AHCI Controller
Now you can run sysprep.exe -mini -reseal -quiet. If you receive any errors at the end of sysprep.exe running, it is due to the path in sysprep.inf not matching the location where you put the drivers.
When sysprep is sealing your image it adds entries for your MSD's to the CriticalDeviceDatabase section of the registry (HKLM\SYSTEM\CurrentControlSet\Control). This is necessary for the device to be recognized before the OS is laid down. This is also the reason you cannot easily inject newer SATA controller drivers as they come out in the future. It is recommended to create and sysprep a new gold image when you need to support new MSD drivers.
https://www-secure.symantec.com/connect/downloads/sata-ich8m-drivers-windows-xp-driver-injection-script
https://www-secure.symantec.com/connect/downloads/sata-ich9-drivers-windows-xp-driver-injection-script
https://www-secure.symantec.com/connect/downloads/ch10-sata-injection-using-sysprep
Hopefully with this information you can stop those annoying Blue Screens and have better overall support in your environment for your native SATA drivers if you choose to use them.

Useful Link for updating PE images
Great article.
I found the following to be more straight forward then some of the other SATA posts I have seen on Juice.
http://www.deployvista.com/Blog/tabid/70/EntryID/1...
I was able to use the second method listed under Windows PE 2005 to update a Bart's PE disk. Will follow the same to update the Win PE for DS as well.
Adding Intel Matrix Drivers to Your XP Image for AHCI SATA Suppo
Hi Brandon,
Really good detail in this article. Thanks! I'm still having difficulty with this process. Using an XP SP1 image and 'injecting' these files post image deployment before the machine starts intothe Sysprep answer files. Have modified the sysprep as suggested, specifying the exact location the files are being copied to, but not loading up and getting the BSOD. My understanding is I don't need ot 'seal' anything as the image has not been modified. any thoughts??? Thanks!
Hey mistascott, So you aren't
Hey mistascott,
So you aren't making a new image? These steps are for making a new gold image. The reason for this is discussed at the end referring to the CriticalDeviceDatabase. If you want to inject drivers you will have to check out the link in the Note. I do not prefer that method myself. You will need a new image for the steps in this article.
Thanks Brandon, I'll give
Thanks Brandon, I'll give that article a go... We are more than likely to move away from injecting these types of drivers in time, but looking for a quick-ish fix in the mean time... thanks again.
Not sure how critical it is
however there is an new IATA88enu.exe available from Intel. Intel Download Center
Thans again Brandon!
Jim Harings
Technical Solutions Consultant
Xcend Group
http://xcendgroup.com
Thanks Jim. I believe I
Thanks Jim. I believe I looked through the .inf's and I didn't see any additional devices. The 88 version can pretty much be substitued for the 87 version. I will update the article if I get some time once I have confirmed this.
I went line by line through the .inf's and they are the same
The drivers themselves have a newer date (February, as opposed to October I think), but I don't see ANY new devices at all.
Jim Harings
Technical Solutions Consultant
Xcend Group
http://xcendgroup.com
Resurrecting This Old Thread With Some Questions
Hi Bradon,
I tried to send you a PM but it appears these boards dont support that fuction unfortunately. I have a few questions (for anyone really) and hope to find a solution to my issue.
I updated my image with your instructions and sealed our image. I was under the impressing that one would be able to simpley switch back and forth between the two modes (AHCI/ATA) in the BIOS and windows would detect the correct drivers--but I think this is wrong? In my experience this is the case.
Switching over to AHCI can be done two ways:
- In the BIOS after a push and before the mini-setup process?
- In Windows after an ATA push via a driver update?
Once you switch over to AHCI you cannot go back--correct?
Sorry that this is a jumbled mass of a post. Thanks!
-Mark
It depends on how the image was captured
if it was captured on an AHCI or ATA set system, you can't use the image on a system set the other way. At least, that's what I've seen.
Jim Harings
Technical Solutions Consultant
Xcend Group
http://xcendgroup.com
Ok I think I've got this
Ok I think I've got this thing figured out.
You can image the machine configured for either mode (AHCI or ATA), its what you have it set to when the machine is done being pushed. You know how the machine needs to reboot after it's done pushing? This is when you need to set it to either mode and the mini-setup process will configure it either way.
Also, I would like to add that if the 760 is configured for ATA and you want to switch it over to AHCI you can do so by downloading the Intel Matrix drivers and update them via the device manager. Here are the notes for future refference:
Driver download (like in the OP): http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&ProductFamily=Chipsets&ProductLine=Chipset+Software&ProductProduct=Intel%c2%ae+Matrix+Storage+Manager&OSVersion=Windows*+XP+Professional
This should include the following files:
06/15/2009 07:22 AM 8,654 iaAHCI.cat
06/04/2009 06:33 PM 8,773 iaAHCI.inf
06/15/2009 07:52 AM 7,962 iaStor.cat
06/04/2009 06:33 PM 7,629 iaStor.inf
06/04/2009 06:43 PM 330,264 IaStor.sys
06/04/2009 06:33 PM 5,526 TXTSETUP.OEM
Installing the Drivers:
Hope this works well for you.
I think it sounds like a decent process, but it seems like (in my opinon only) that this requires quite a bit of interaction on your part. Most of the processes\requests I see are for people who want as little as interaction as possible. I would also be a bit concerned that you might have system instability, but that is just a guess (and based only on gut feeling).
Keep us updated, you could even post that as an article for others to see!
Jim Harings
Technical Solutions Consultant
Xcend Group
http://xcendgroup.com
Why would you switch back and forth?
What I don't get is why would you do this? If you can utilize the AHCI drivers why would you change it?
If you build the drivers into the image you should be able to change from AHCI to IDE once Windows is fully installed. I believe I confirmed this during my testing. Doing the reverse (IDE > AHCI) may not work. I would assume AHCI <-> ATA may not work either.
Note: I captured my image on a legacy IDE machine
I'm a little confused about
I'm a little confused about what you're talking about specifically.
If it's in regards to switching over from ATA to AHCI then my reasons center around the fact that all our 760s come preconfigured that way from Dell (this might change if I have my way). To make matter more complicated, we already have several hundred deployed in the neterprise with this configuration too.
If you're talking about going from AHCI to ATA then I can only tell you that I'm trying to be as thorough as possible and test everything scenario. Some of our admins in other regions do slightly pointless things at times (like swtich from AHCI to ATA) and I would like to try to be as proactive as possible in finding a solution before it happens.
Plus I'm a geek and find it slightly entertaining and rewarding trying figuring out this stuff. :P
ah-HA! The Imaging demons are
ah-HA! The Imaging demons are trying to stop my process yet again, but I think I've got the issue licked. Now that the machine is running in AHCI mode the GCS (Ghost Console Server) is coming up with the following error when pushing through WinPE:
------
Drivers could not be found in the PreOS for the following devices:
Manufacturer: "Intel", Description: "Intel(R) ICH10D/DO SATA AHCI Controller"...<snip>
-----
No problemo right? Just switch over to DOS mode for pushing the machine and it should work! Nope. That actually could work but not in the case with a Optiplex 760 (and GCS v2.5). See, the PCDOS driver set doesnt include the appropriate NIC drivers so using WinPE is essential.
What you now need to do it inject the same drivers from above into the WinPE environment using the Ghost Boot Wizard (dont forget to click on the storage tab)! :)
Would you like to reply?
Login or Register to post your comment.