Ben Hunter

Architect - Microsoft Enterprise Services - Redmond

BDD 2007 - Intel Mass Storage Drivers (iastor)

BDD 2007 - Intel Mass Storage Drivers (iastor)

  • Comments 22
  • Likes

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:

          http://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:

http://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
  • hello ben,

    above are really good instructions - but i cannot add any intel mass storage drivers into bdd 2007 and PE2.0 "not an issue for Windows PE 2.0 as BDD 2007 will automatically integrate the drivers for you" --- how can i do that? iam not able to get my machine booting - it always gets a bluescreen. can you give me some instructions for adding those drivers in bdd 2007? i have tried to put it into the "out of the box drivers" and i have tried to put it into the "$oem$" folder - doesn´t work - can you help me? i have also tried to add this driver in the unattendet installation - while copying the process tells me that some files are missing - it cannot find the driver - so where to copy those files - thanks in advance. ps. teched 2007 with bdd 2007 was great!

  • 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?

  • 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

  • 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

  • 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

  • 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

  • Thanks a lot for the follow-up Ben, I replaced the txtsetup.sif file with my customized one in the Windows 2003 SP1 source folder and indeed it did the trick. That's a nasty bug.

    Sorry for the late feedback and thanks again.

    Johan

  • 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]

    PCI\VEN_8086&DEV_2652&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_2653&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\Drivers\MASS\1\iaahci.inf

    PCI\VEN_8086&DEV_2652&CC_0104=%systemdrive%\Drivers\MASS\1\iastor.inf

    PCI\VEN_8086&DEV_27C3&CC_0104=%systemdrive%\Drivers\MASS\1\iastor.inf

    PCI\VEN_8086&DEV_2682&CC_0104=%systemdrive%\Drivers\MASS\1\iastor.inf

    PCI\VEN_8086&DEV_27C6&CC_0104=%systemdrive%\Drivers\MASS\1\iastor.inf

    PCI\VEN_8086&DEV_2822&CC_0104=%systemdrive%\Drivers\MASS\1\iastor.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

  • Hi Jonathan,

    Unfortunately you need to recreate your master image.

    You also need to make sure that the line BuildMassStorage=YES is in the sysprep.inf file.

    Thanks,

    Ben

  • Regarding this statement...

    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.

    I'm trying to recreate my images using BDD 2007 instead of 2.5

    When I was using 2.5 I was able to add the fix for the SATA controller driver in winpe 2004 and everything was working fine.  Now with BDD 2007 using winpe 2.0, I have no clue on how to add this fix since the LiteTouchPE_x86 cd uses a wim file.  I added all the drivers that I'm using including the iastor one in the Out-Of-Box Drivers and created my LiteTouchPE_x86.iso file.  When I boot with this CD, it's booting great and injecting my drivers... But as soon that it try's to install XP, I get a Blue Screen.

    Any tips you can give me ??  Thanks.

  • 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

  • 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...

  • 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

  • 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

  • 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