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
Would you like to reply?
Login or Register to post your comment.