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 (7/17/2009)
Download iata89enu.exe and run the following command to extract the files:
iata89enu.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 (2/5/2008)
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 (2/29/2008)
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 PCI\VEN_8086&DEV_3B29&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) PCHM SATA AHCI Controller 4 Port
PCI\VEN_8086&DEV_3B2F&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) PCHM SATA AHCI Controller 6 Port
PCI\VEN_8086&DEV_3B22&CC_0106=%systemdrive%\drivers\MSD\IMver8\iaahci.inf ; Intel(R) PCH SATA AHCI Controller
As necessary, run sysprep.exe -bmsd. Once complete you can run sysprep.exe -mini -reseal -quiet to seal the image. 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.

Comments 22 Comments • Jump to latest comment
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.
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 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 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.
however there is an new IATA88enu.exe available from Intel. Intel Download Center
Thans again Brandon!
Jim Harings
HP Enterprise Services
1st Rule of Connect Club: Mark the post that helped you the most as a 'solution'. 2nd Rule of Connect Club:You must talk about Connect club.
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.
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
HP Enterprise Services
1st Rule of Connect Club: Mark the post that helped you the most as a 'solution'. 2nd Rule of Connect Club:You must talk about Connect club.
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
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
HP Enterprise Services
1st Rule of Connect Club: Mark the post that helped you the most as a 'solution'. 2nd Rule of Connect Club:You must talk about Connect club.
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:
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
HP Enterprise Services
1st Rule of Connect Club: Mark the post that helped you the most as a 'solution'. 2nd Rule of Connect Club:You must talk about Connect club.
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 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 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)! :)
Had to add a few more lines with the new HP 6540 and 6440b notebooks. The AHCI on the Intel website has gone to version 8.9.0.1023.
The 3 new devices are:
PCI\VEN_8086&DEV_3B29&CC_0106=%systemdrive%\drivers\SATA\IMver9\iaahci.inf ; Intel(R) PCHM SATA AHCI Controller 4 Port
PCI\VEN_8086&DEV_3B2F&CC_0106=%systemdrive%\drivers\SATA\IMver9\iaahci.inf ; Intel(R) PCHM SATA AHCI Controller 6 Port
PCI\VEN_8086&DEV_3B22&CC_0106=%systemdrive%\drivers\SATA\IMver9\iaahci.inf ; Intel(R) PCH SATA AHCI Controller
While we are at this, if you experience issues duing the Sysprep reseal part after adding the Mass Storage lines, make sure the OP's post lines for IMver5 drivers is taken out, because most of you prob wont be using those older drivers by now. If the drivers do not exist you will get a "unable to write to registry" error while executing the Sysprep process.
Thank you for updating this with the latest information.
EDIT: I have made the updated changes to the article itself now.
; APPEND ADDITIONAL SATA CONTROLLER DRIVERS HERE
[SysprepMassStorage]
PCI\VEN_8086&DEV_2682&CC_0104=%systemdrive%\windows\system32\drivers\IMver9\iastor.inf ; Intel(R) ESB2 SATA RAID Controller
PCI\VEN_8086&DEV_27C3&CC_0104=%systemdrive%\windows\system32\drivers\IMver9\iastor.inf ; Intel(R) ICH7R/DH SATA RAID Controller
PCI\VEN_8086&DEV_27C6&CC_0104=%systemdrive%\windows\system32\drivers\IMver9\iastor.inf ; Intel(R) ICH7MDH SATA RAID Controller
PCI\VEN_8086&DEV_2822&CC_0104=%systemdrive%\windows\system32\drivers\IMver9\iastor.inf ; Intel(R) ICH8R/ICH9R/ICH10R/DO/5 Series/3400 Series SATA RAID Controller
PCI\VEN_8086&DEV_282A&CC_0104=%systemdrive%\windows\system32\drivers\IMver9\iastor.inf ; Intel(R) ICH8M-E/ICH9M-E/5 Series SATA RAID Controller
PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ESB2 SATA AHCI Controller
PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH7R/DH SATA AHCI Controller
PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH7M/MDH SATA AHCI Controller
PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH8R/DH/DO SATA AHCI Controller
PCI\VEN_8086&DEV_2829&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH8M-E/M SATA AHCI Controller
PCI\VEN_8086&DEV_2922&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH9R/DO/DH SATA AHCI Controller
PCI\VEN_8086&DEV_2929&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH9M-E/M SATA AHCI Controller
PCI\VEN_8086&DEV_3A02&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH10D/DO SATA AHCI Controller
PCI\VEN_8086&DEV_3A22&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) ICH10R SATA AHCI Controller
PCI\VEN_8086&DEV_3B29&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) 5 Series 4 Port SATA AHCI Controller
PCI\VEN_8086&DEV_3B2F&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) 5 Series 6 Port SATA AHCI Controller
PCI\VEN_8086&DEV_3B22&CC_0106=%systemdrive%\windows\system32\drivers\IMver9\iaahci.inf ; Intel(R) 5 Series/3400 Series SATA AHCI Controller
It's OK for me.
Thanks Brandon.
I'm spending my sat night at work preparing next week laptop deployments. Your instructions provided excellent information for anyone doing XP deployments.
This was great help for me too.
I must say we already face the 0x0..07B problem on image deploy, after deploying an old XP image, and a latests AHCI laptop...
All the same using the DeployAnywhere option, all the same sp4 updated, all the same uploading the Mass strorage driver into the driversDB !
We reproduce this using the same HP latop on 2 differents customer sites.
No way, Blue Screen !!
Is it possible an ICH10 machine will not be able to support older ICH5 or ICH7 XP image, all the same the storage drivers into the "DriverDB" of DeployAnywhere ??
~Pascal @ Kotte.net~ Do you speak French? Et utilisez Altiris: venez nous rejoindre sur le GUASF
hi Brandon,
it seems that there is a hope for me as well,
I would like to port windows XP (SP3) installation to a notebook that has landed on my desk.
the thing is, that the image-source PC is an IDE based machine and the notebook is a SATA AMD based stuff. the notebook is HP Pavilion dv5 model 1240ec (with AMD Turion X2)
Off course, plain unrolling of the ghost image to the notebook's HDD ended up with the blue screen.
I found AMD SATA driver that should be used for the SATA device (pls see attached).
I also found that ..86 version of the driver should be used (not the 64bit one).
it is in sp39719.exe and can be downloaded from:
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=321957&prodSeriesId=3687621&swItem=ob-61695-1&prodNameId=3687622&swEnvOID=1093&swLang=8&taskId=135&mode=3
there are some scripts on this site that can inject SATA driver to an existing XP installation (or the ghost image), however, those deal just with Intel drivers.
could you please help to do it for AMD SATA too?
many thanks
Milan
A co-worker figured out the AMD piece. Thanks goes to him.
PCI\VEN_1002&DEV_4392=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4391=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4393=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4381&SUBSYS_43811002=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4380&SUBSYS_43821002=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4380&SUBSYS_43811002=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
SCSI\ProcessorAMD_____=%systemdrive%\drivers\MSD\AMD1\ahcix86.inf ; AMD AHCI RAID v3.1.1548.155
PCI\VEN_1002&DEV_4392&CC_0104=%systemdrive%\drivers\MSD\AMD2\ahcix86.inf ; AMD SATA AHCI v3.2.1548.37
PCI\VEN_1002&DEV_4391&CC_0106=%systemdrive%\drivers\MSD\AMD2\ahcix86.inf ; AMD SATA AHCI v3.2.1548.37
PCI\VEN_1002&DEV_4393&CC_0104=%systemdrive%\drivers\MSD\AMD2\ahcix86.inf ; AMD SATA AHCI v3.2.1548.37
Great info.
You are a lifesaver!!
Would you like to reply?
Login or Register to post your comment.