BDD 2007 - Intel Mass Storage Drivers (iastor)

Everytime Intel releases a new mass storage chipset I receive the same call/email from from most of my customers and it goes something like this:

"Hi Ben, I have just got a new machine and I can't deploy an image to it, do you know what is going on?"

The problem they are having is that their Windows PE does not support this new chipset. The new drivers must be integrated into the Windows PE source they are using. This is not an issue for Windows PE 2.0 as BDD 2007 will automatically integrate the drivers for you. But with Windows PE 2004/2005 you must integrate the drivers yourself. 

Well a new Intel mass storage chipset seems to have appeared so I though I might put my recommendations here to preempt the calls. These recomendations use the new Intel  chipset bas an example but can also be applied to any other mass storage driver.  This blog entry specifically recommends how to integrate drivers into Windows PE 2004/2005 using BDD 2007.

Mass Storage drivers consist of a .SYS file that Windows PE references via the txtsetup.sif file. In order to integrate the driver into Windows PE we must identify the .SYS file that the driver uses and the additions that must be added to the txtsetup.sif file. The file that provides this information is the txtsetup.oem file that is shipped with the driver.

The following steps should be followed to integrate a new Mass Storage driver into a Windows PE 2004/2005 source:

Download the drivers

The first part of the configuration process is the obtaining of the Mass Storage drivers. The drivers must be downloaded from the hardware vendor. The driver must include a txtsetup.oem file. The latest version of the Intel driver is located here. The version must match the Operating System that Windows PE is based on, for example:

Windows PE 2004 - Windows XP

Windows PE 2005 - Windows 2003 

Identify the .SYS file

Once the drivers have been downloaded the .SYS file must be identified.

To identify the .SYS file

1. Open the txtsetup.oem file downloaded in the previous section.

2. Locate the [Disks] section, and record the name of the .SYS file specified in that section.

The following excerpt from a txtsetup.oem file clearly identifies the .SYS file (iastor.sys).

     [Disks]

disk1 = "Intel Matrix Storage Manager driver", iaStor.sys, \

Gather the Plug and Play ID’s

The PnP identifiers for the driver must now be identified. These drivers are of the form PCI\<PnP ID>.

To identify the PnP ID’s

1. Open the txtsetup.oem file downloaded in the previous section.

2. Locate all lines that contain PnP ID’s, and record their values.

The following excerpt provides an example of the PnP ID’s extracted from and Intel Mass Storage driver txtsetup.oem file.

     id = "PCI\VEN_8086&DEV_2922&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_282A&CC_0104","iaStor"

     id = "PCI\VEN_8086&DEV_2829&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_2822&CC_0104","iaStor"

     id = "PCI\VEN_8086&DEV_2821&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_2682&CC_0104","iaStor"

     id = "PCI\VEN_8086&DEV_2681&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_27C3&CC_0104","iaStor"

     id = "PCI\VEN_8086&DEV_27C6&CC_0104","iaStor"

     id = "PCI\VEN_8086&DEV_27C1&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_27C5&CC_0106","iaStor"

     id = "PCI\VEN_8086&DEV_2653&CC_0106","iaStor"

Copy the driver files

To automatically integrate the driver files into Windows PE a folder structure must be created to support the added files.

To create the folder structure

1. Create the folder structure, .\Distribution\Extra Files\i386\System32\Drivers

2. Copy the .SYS file into the newly created Drivers folder.

3. Copy the txtsetup.sif file located in the Windows Source\i386 folder for the ZTI deployment point. (i.e. .\Distribution\Windows 2003 SP1\i386) to the folder .\Distribution\Extra Files\i386.

Note  if you already use the extra files functionality then simply add the files into the current folder structure.

Update the txtsetup.sif file

Now that we have identified the .SYS file and the PnP ID’s for the Mass Storage driver we can update the txtsetup.sif file.

To update the txtsetup.sif file

1. Open the file .\Distribution\Extra Files\txtsetup.sif file using Notepad.

2. Update the [HardwareIdsDatabase] section to specify each PnP ID.

Note   This will require translating the information gathered from the txtsetup.sif file into the txtsetup.sif format. For example:

id ="PCI\VEN_8086&DEV_2822&CC_0104","iaStor" would translate to PCI\VEN_8086&DEV_282A&CC_0104="iastor".

The following excerpt provides an example of the PnP ID’s extracted from the Intel Mass Storage driver txtsetup.oem file and translated into the txtsetup.sif format.

     PCI\VEN_8086&DEV_282A&CC_0104="iastor"

     PCI\VEN_8086&DEV_2829&CC_0106="iastor"

     PCI\VEN_8086&DEV_2822&CC_0104="iastor"

     PCI\VEN_8086&DEV_2821&CC_0106="iastor"

     PCI\VEN_8086&DEV_2682&CC_0104="iastor"

     PCI\VEN_8086&DEV_2681&CC_0106="iastor"

     PCI\VEN_8086&DEV_27C3&CC_0104="iastor"

     PCI\VEN_8086&DEV_27C6&CC_0104="iastor"

     PCI\VEN_8086&DEV_27C1&CC_0106="iastor"

     PCI\VEN_8086&DEV_27C5&CC_0106="iastor"

     PCI\VEN_8086&DEV_2652&CC_0104="iastor"

     PCI\VEN_8086&DEV_2652&CC_0106="iastor

     PCI\VEN_8086&DEV_2653&CC_0106="iastor"

3. Update the [SCSI.Load] section to identify the .SYS file. This should be in the format DriverName = FileName.sys,4

The following excerpt provides an example of the .SYS file information as it has been added into the txtsetup.sif file.

     iaStor = iaStor.sys,4

Note   The DriverName value must match the value specified in the HardwareIdsDatabase section. For example if the value is PCI\VEN_8086&DEV_2652&CC_0106="iastor" then the DriverName must be iastor.

Update the deployment point

Once the drivers have been setup we must then update the deployment point to create the updated Windows PE source files.

To update Windows PE

1. Click Start, then point to All Programs. Point to BDD 2007, and then click Deployment Workbench.

2. Click Deploy, right-click Deployment Points, and then click Image Distribution Deployment Point.

3. Click the Windows PE 2004/2005 tab.

4. Set the Extra Directory to Add to that of the extra files location created in the previous step. (i.e. D:\BDD\Distribution\Extra Files)

5. Right-click the newly created ZTI deployment point, and then click Update to force it to create the ZTI directory on the file system and generate the Windows PE source files.

Update Windows PE in the SMS 2003 OSD Feature Pack

To update SMS with the new Windows PE source files (created in the Deployment Workbench), complete the following steps:

1. From the SMS Administrator console, locate Site Database, then expand Image Packages.

2. Right-click Images Packages, point to All Tasks, and then click Update Windows PE.

3. In the Update Windows PE Wizard, click Next.

4. Browse to the generic Windows PE source folder (DistributionPoint\boot\source), click Open, and then click Next.

5. Click Finish when the update is completed.

Once you have completed all of the steps above then you simply need to re-create any SMS OSD Deployment CD's you may be using and update your OSD packages and the process is complete, EASY ;)

 UPDATE: For information on integrating these drivers into an XP image please refer to the following blog:

          https://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx

If you are looking for further information then the following article by Johan is a great place to start:

https://www.deployvista.com/Blog/tabid/70/EntryID/18/Default.aspx

Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the Terms of Use .

Comments

  • Anonymous
    January 01, 2003
    It is a typo good spotting. I must have put it in there to see if anyone is paying attention :). It looks like you are the only one :) Thanks, Ben

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Hi Johan, I have seen this problem before. It is caused by the copy process thinking that the file included in the Windows 2003 source folder is newer than the one you have updated. Try updating the txtsetup.sif file in the windows 2003 i386 folder and then rebuild the CD. That has worked for me. Thanks, Ben

  • Anonymous
    January 01, 2003
    H Marvin, This blog post details how to inject drivers for WinPE not Windows XP. This is really not a good method for updating your Windows XP source files. I would suggest that you have a look at the following post: http://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx You will also find details about how to integrate drivers into the unattend.txt file in the comments. Thanks, Ben

  • Anonymous
    January 01, 2003
    Hi Jens, This is usualy cuased by the Uberbug! The following blog post details how to get around the issue: http://blogs.technet.com/benhunter/archive/2007/04/14/windows-pe-2-0-xp-disk-partitioning-issues.aspx Thanks, Ben

  • Anonymous
    January 01, 2003
    Hi Martin, I have just created a new post that covers this issue here: http://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx Thanks, Ben

  • Anonymous
    January 01, 2003
    Hi Sebastien, I have written another post that details this process, that should be what you are looking for: http://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx The import thing to remember is that you need to inject the drivers into the image when you capture, not when you deploy it. Thanks, Ben

  • Anonymous
    January 01, 2003
    Do you have a problem with the client operating system or during Windows PE? If it is the client OS then is it XP or Vista?

  • Anonymous
    January 01, 2003
    Hi Sebastien, CAn you please send me a copy of you sysprep.inf file. I need that to help you troubleshoot. My email is ben dot hunter at microsoft dot com. Thanks, Ben

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Hi Paulo, This blog post details how to inject drivers for WinPE not Windows XP. I would suggest that you have a look at the following post: http://blogs.technet.com/benhunter/archive/2007/07/12/bdd-2007-integrating-mass-storage-drivers-into-your-xp-image.aspx You will also find details about how to integrate drivers into the unattend.txt file in the comments. Thanks, Ben

  • Anonymous
    July 11, 2007
    The comment has been removed

  • Anonymous
    July 12, 2007
    i want to install windowsxp sp2 over the bdd - these intel drivers are for the mass storage device - normaly you can add them by pressing F6 while installing xp - without them xp cannot find the harddisks. where can i put these drivers so that bdd automatically integrates the drivers - or do i have to include them into the unattendet.txt - when yes where should i copy this drivers so that xp can find them during the installation?. $OEM$ folder or on a other side in the distribution folder? thanks

  • Anonymous
    September 11, 2007
    Hi Ben, I tried to follow your procedure and couldnt make it work. From what i can see, the txtsetup.sif file on the  ISO file generated by BDD is the default WinPE 2005 one and not the customized one that I have stored in the "Win PE customizations" folder although the drivers from the same folder are actually copied. It seems that the BDD wizard doesnt overwrite WinPE files but only copy non-already-existing files from the "Win PE customizations" folder. I guess a workaround would be to modify the WinPE 2005 source files directly but it kinda ruins the added value of the "Win PE customizations" folder. Do you have any idea on this issue? Regards, Johan

  • Anonymous
    September 14, 2007
    The comment has been removed

  • Anonymous
    November 01, 2007
    Hi everyone, I've tried to add the new SATA controller driver to my image. I'm not sure I understand correctly all of this post. I want to add the driver to a custom XP wim I made. I edit my WIM with imagex.exe. Then I replace the existing SATA controler driver with the new one. Then I edit my sysprep.inf that goes like this : [SysprepMassStorage] PCIVEN_8086&DEV_2652&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_2653&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_27C1&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_27C5&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_2681&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_2821&CC_0106=%systemdrive%DriversMASS1iaahci.inf PCIVEN_8086&DEV_2652&CC_0104=%systemdrive%DriversMASS1iastor.inf PCIVEN_8086&DEV_27C3&CC_0104=%systemdrive%DriversMASS1iastor.inf PCIVEN_8086&DEV_2682&CC_0104=%systemdrive%DriversMASS1iastor.inf PCIVEN_8086&DEV_27C6&CC_0104=%systemdrive%DriversMASS1iastor.inf PCIVEN_8086&DEV_2822&CC_0104=%systemdrive%DriversMASS1iastor.inf I always get the BSOD. Is it possible to edit a custom wim? Or I need to do a new build for this to work? Thanks for any suggestions Jonathan

  • Anonymous
    November 06, 2007
    The comment has been removed

  • Anonymous
    November 07, 2007
    I followed the steps but now I'm getting error messages that certain entries from my unattended file [MassStorageDrivers] doesn’t exist in the [scsi] section of the txtsetup.sif file... Where exactly is this file and how can I modify it. With 2.5 it was simple since the file was directly inside the iso file...

  • Anonymous
    November 30, 2007
    Hi Ben, I do have problems doing a scripted install of w2k3 server with BDD on several machines (Dell Poweredge). Everything goes fine until after the second reboot: installation files are copied and present on C:. Then it reboots and I get "error loading operating system". However, everything seems to be in place: boot.ini ntldr $ls, $bt etc. I took the string from txtsetup.oem for the massstoragedriver and added it to the unattend.txt as well as the files required which I put in the textmode folder.. everything seems to be working until the system comes up to install.. I am confused.. Do you have any hints for me? Thanks alot, Jens

  • Anonymous
    December 03, 2007
    thank you, thank you, thank you. How very frustrating this was and how cool now that it works :-)

  • Anonymous
    December 06, 2007
    The comment has been removed

  • Anonymous
    February 10, 2008
    The comment has been removed