• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1231
  • Last Modified:

Winbom.ini V Unattent.txt

I am currently using sysprep to deploy my single image to multiple machines and I have had no problems until recently.  While investigating the boot problems on some of the latest hardware I have been led down the road of adding more AHCI Intel matrix drivers into my answer files.  I have come across a conflict and would like to ask here the correct answer.  

The intel matrix drivers suggest adding the extra driver information into the [MassStorageDrivers] section of the unattend.txt in the i386 folder of the reference image with also additions of [OEMBootFiles] section listing the drivers in the i386\$OEM$\texmode folder.
 My question is I dont think I am using this file called unattend.txt as I am currently using the winbom.ini file in the sysprep folder.  My beleif is these 2 files are similar and my winbom.ini file is obviously working as all the drivers are being loaded ok.  I have added the intel matrix entries into the unattend.txt file just in case but I am also adding  the same lines into the winbom.ini file as this is the file I beleive to be functioning.

Am I correct in saying that the winbom.ini will work the same as the unattend.txt file and if I add my [MassStorageDrivers] and  [OEMBootFiles]  to the winbom.ini this will work correctly

0
MarkBourn
Asked:
MarkBourn
  • 13
  • 9
1 Solution
 
Netman66Commented:
We add those extra AHCI drivers to MassStorage in Sysprep.inf. Make sure the path points to a folder in the image where the new drivers reside.

We added the folder and drivers by injecting them from Ghost Explorer then resealing.

It must also be noted that if you are using the MassStorage section with the PCI/VEN = OEM then the OEMPnPDrivers entry line in sysprep.inf needs to point to the location of each and every driver folder you want to parse.  I simply add the path after the equal sign rather than force it to default to your OEMPnPDrivers path.
 
[typo and added content]
0
 
MarkBournAuthor Commented:
From your response can I clarify the information the manufacturers state needs to go into the unattended.txt can instead go into the sysprep.inf file instead.  

Can I also clarify what you mean about the  PCI/VEN = OEM. I have added this bit to the MassStorage section of sysprep.inf instead of the unattended.txt file as described by the manufacturer.  I also have other intel ICH lines that look considerably different to these new lines I have added for testing so I thiknk the new lines are not correct as I may have to adapt them to use in the sysprep.inf instead of the unattended.txt      I have listed below my 2 files to make this easier to see what I am doing-  winbom and sysprep.inf

Feel free to ammend my 2 files below to correct any mistakes you think I have made. Please bear in mind my sysprep and winbom configuration below (Minus all the mass storage additives) allow my single image to work on over 40 bits of hardware without issue.  My theory is for the newer equipoment I need to add in the Mass Storage bits and bobs for the new sata controllers to work and this is where I am probably going wrong - Either not enough mass storeage information or I have added some lines incorrectly and not getting the correct sata support.

---------------------------------------------------
Winbom file ------------------------------------
---------------------------------------------------

[Factory]
AutoDetectNetwork = No
DoDeviceIDScanOnError = No
FactoryComputerName = Factory
;Logfile =name_of_logfile
Logging = Yes
LogLevel = 2
LogPerf = Yes
;NewWinbom = C:\sysprep\reseal
OptimizeShell = Yes
Password = desktop
RebootAfterComputerName = No
Reseal = no
;ResealFlags = -activated -quiet -noreboot
;ResealMode = mini
UserName = administrator
WinbomType = Factory

[PnPDrivers]

[PnPDriverUpdate]
UpdateInstalledDrivers = Yes
WaitForPnP = Yes
TargetRoot=%systemdrive%\Drivers
DevicePath=ACER\lan;acer\sound etc etc ......

[ComputerSettings]
ExtendPartition = 1

---------------------------------------------------
sysprep.inf file -------------------------------
---------------------------------------------------
[Unattended]
    OemSkipEula=Yes
    InstallFilesPath=C:\sysprep\i386
    DriverSigningPolicy=Ignore
    UpdateUPHAL=Yes
    UpdateUPHAL=ACPIAPIC_UP,%WINDIR%\INF\HAL.INF
    UpdateUPHAL=ACPIPIC_UP,%WINDIR%\INF\HAL.INF
    UpdateUPHAL=MPS_UP,%WINDIR%\INF\HAL.INF
    UpdateUPHAL=ACPIAPIC_MP,%WINDIR%\INF\HAL.INF
    UpdateUPHAL=MPS_MP,%WINDIR%\INF\HAL.INF
    UpdateUPHAL=SYSPRO_MP,%WINDIR%\INF\HAL.INF

 
[GuiUnattended]
    AdminPassword=desktop
    EncryptedAdminPassword=no
    OEMSkipRegional=1
    TimeZone=85
    OemSkipWelcome=1

[UserData]
    ProductKey=*********************
    FullName="******"
    OrgName="*****"
    ComputerName=ChangeMe

[Display]
    Xresolution=1024
    YResolution=768

[TapiLocation]
    CountryCode=44
    Dialing=Tone
    AreaCode=0191
    LongDistanceAccess="9"

[RegionalSettings]
    LanguageGroup=1
    SystemLocale=00000809
    UserLocale=00000809
    InputLocale=0809:00000809

[SetupMgr]
    DistFolder=C:\sysprep\i386
    DistShare=windist

[Identification]
    ;JoinDomain=***
    ;DomainAdmin=sysprep1
    ;DomainAdminPassword=joinme1

[Networking]
    InstallDefaultComponents=Yes

[sysprep]
    BuildMassStorageSection=Yes

[SysprepMassStorage]

;NEW LINES BELOW ADDED THAT SHOULD BE IN THE UNATTEND.TXT THAT ARE PROBABLY WRONG

"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
pci\ven_1179&dev_0105=c:\windows\inf\mshdc.inf
"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
"Intel(R) ESB2 SATA AHCI Controller" = OEM
"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM
"Intel(R) ICH8R/DH/DO SATA AHCI Controller" = OEM
"Intel(R) ICH8M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH9R/DO/DH SATA AHCI Controller" = OEM
"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
"Intel(R) ICH10D/DO SATA AHCI Controller" = OEM
"Intel(R) ICH10R SATA AHCI Controller" = OEM
"Intel(R) 5 Series 4 Port SATA AHCI Controller" = OEM
"Intel(R) 5 Series 6 Port SATA AHCI Controller" = OEM
"Intel(R) 5 Series/3400 Series SATA AHCI Controller" = OEM

PCI\VEN_8086&DEV_24DF&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver5\Driver\iastor.inf
PCI\VEN_8086&DEV_25B0&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver5\Driver\iastor.inf
PCI\VEN_8086&DEV_2652&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver7\Driver\iastor.inf
PCI\VEN_8086&DEV_2652&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver7\Driver\iaahci.inf
PCI\VEN_8086&DEV_2653&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver7\Driver\iaahci.inf
PCI\VEN_8086&DEV_2682&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iastor.inf
PCI\VEN_8086&DEV_27C3&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iastor.inf
PCI\VEN_8086&DEV_27C6&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iastor.inf
PCI\VEN_8086&DEV_2822&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iastor.inf
PCI\VEN_8086&DEV_282A&CC_0104=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iastor.inf
PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_2829&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_2922&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_2929&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_3A02&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_3A22&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_3B29&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_3B2F&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf
PCI\VEN_8086&DEV_3B22&CC_0106=%systemdrive%\drivers\IntelEHCIMatrix\IMver8\Driver\iaahci.inf


PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_2829&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_2922&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_2929&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf
PCI\VEN_8086&DEV_3A22&CC_0106=%systemdrive%\drivers\Toshl450\Sata2\oemscs01.inf

PCI\VEN_8086&DEV_2681&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_27C1&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_27C5&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_2821&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_2829&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_2922&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_2929&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_3A02&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_3A22&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_3B29&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_3B2F&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf
PCI\VEN_8086&DEV_3B22&CC_0106=%systemdrive%\drivers\Toshl450\SATAAHCI\oem6.inf


;THE BELOW LINES ARE PASTED DIRECTLY FROM ANOTHER EXAMPLE AND i AM SURE WORK FINE;
; Added for DELL SAS 6 IR Support
;
PCI\VEN_1000&DEV_0054&SUBSYS_1F041028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0054&SUBSYS_1F071028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0054&SUBSYS_1F081028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0054&SUBSYS_1F091028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0058&SUBSYS_1F0E1028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0058&SUBSYS_1F0F1028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0058&SUBSYS_1F101028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
PCI\VEN_1000&DEV_0058&SUBSYS_021D1028=C:\Drivers\Ref_Dell_SAS_6\symmpi.inf
;
; Added for Intel SATA Controller Support
;
PCI\VEN_8086&DEV_2682&CC_0104=C:\Drivers\Ref_IntelSATA\iastor.inf
PCI\VEN_8086&DEV_27C3&CC_0104=C:\Drivers\Ref_IntelSATA\iastor.inf
PCI\VEN_8086&DEV_27C6&CC_0104=C:\Drivers\Ref_IntelSATA\iastor.inf
PCI\VEN_8086&DEV_2822&CC_0104=C:\Drivers\Ref_IntelSATA\iastor.inf
PCI\VEN_8086&DEV_282A&CC_0104=C:\Drivers\Ref_IntelSATA\iastor.inf
PCI\VEN_8086&DEV_2653&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_2681&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_27C1&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_27C5&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_2821&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_2829&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_2922&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
PCI\VEN_8086&DEV_5029&CC_0106=C:\Drivers\Ref_IntelSATA\iaahci.inf
;
; Added for VMware VMSCSI Support
;
PCI\VEN_104B&DEV_1040=c:\windows\inf\scsi.inf
;
; Added for VMware LSILogic SCSI Support
;
PCI\VEN_1000&DEV_0621=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0622=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0624=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0626=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0628=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0030=C:\Drivers\Ref_lsilogic\symmpi.inf
PCI\VEN_1000&DEV_0032=C:\Drivers\Ref_lsilogic\symmpi.inf
;
; Added for Smart Array E200i support
;
PCI\VEN_103C&DEV_3220&SUBSYS_3225103C=C:\Drivers\Ref_SmartArrayE200i\hpcissx2.inf
PCI\VEN_103C&DEV_3230&SUBSYS_3234103C=C:\Drivers\Ref_SmartArrayE200i\hpcissx2.inf
PCI\VEN_103C&DEV_3230&SUBSYS_3235103C=C:\Drivers\Ref_SmartArrayE200i\hpcissx2.inf
PCI\VEN_103C&DEV_3238&SUBSYS_3212103C=C:\Drivers\Ref_SmartArrayE200i\hpcissx2.inf
PCI\VEN_103C&DEV_3238&SUBSYS_3211103C=C:\Drivers\Ref_SmartArrayE200i\hpcissx2.inf



; Added for ich4ide Controller Support
;
PCI\VEN_8086&DEV_24CB=c:\windows\inf\mshdc.inf
PCI\VEN_8086&DEV_24CA=c:\windows\inf\mshdc.inf
;
; Added for ich5ide Controller Support
;
PCI\VEN_8086&DEV_24D1=c:\windows\inf\mshdc.inf
PCI\VEN_8086&DEV_24DB=c:\windows\inf\mshdc.inf
PCI\VEN_8086&DEV_25A2=c:\windows\inf\mshdc.inf
PCI\VEN_8086&DEV_25A3=c:\windows\inf\mshdc.inf
;
; Added for ich6ide Controller Support
;
PCI\VEN_8086&DEV_2651=C:\Drivers\Ref_IntelInf\ich6ide.inf
PCI\VEN_8086&DEV_2652=C:\Drivers\Ref_IntelInf\ich6ide.inf
PCI\VEN_8086&DEV_2653=C:\Drivers\Ref_IntelInf\ich6ide.inf
PCI\VEN_8086&DEV_266F=c:\windows\inf\mshdc.inf
;
; Added for ich7ide Controller Support
;
PCI\VEN_8086&DEV_27C0=C:\Drivers\Ref_IntelInf\ich7ide.inf
PCI\VEN_8086&DEV_27C4=C:\Drivers\Ref_IntelInf\ich7ide.inf
PCI\VEN_8086&DEV_27DF=C:\Drivers\Ref_IntelInf\ich7ide.inf
;
; Added for ich8ide Controller Support
;
PCI\VEN_8086&DEV_2820=C:\Drivers\Ref_IntelInf\ich8ide.inf
PCI\VEN_8086&DEV_2825=C:\Drivers\Ref_IntelInf\ich8ide.inf
PCI\VEN_8086&DEV_2828=C:\Drivers\Ref_IntelInf\ich8ide.inf
PCI\VEN_8086&DEV_2850=C:\Drivers\Ref_IntelInf\ich8ide.inf
;
; Added for ich9ide Controller Support
;
PCI\VEN_8086&DEV_2920=C:\Drivers\Ref_IntelInf\ich9ide.inf
PCI\VEN_8086&DEV_2921=C:\Drivers\Ref_IntelInf\ich9ide.inf
PCI\VEN_8086&DEV_2926=C:\Drivers\Ref_IntelInf\ich9ide.inf
PCI\VEN_8086&DEV_2928=C:\Drivers\Ref_IntelInf\ich9ide.inf
PCI\VEN_8086&DEV_292D=C:\Drivers\Ref_IntelInf\ich9ide.inf
PCI\VEN_8086&DEV_292E=C:\Drivers\Ref_IntelInf\ich9ide.inf
;
; Added for Intel 631xESB/6321ESB/3100 Serial ATA Controller Support
;
PCI\VEN_8086&DEV_2680=C:\Drivers\Ref_IntelInf\ESB2ide.inf
PCI\VEN_8086&DEV_269E=C:\Drivers\Ref_IntelInf\ESB2ide.inf
;
; Below driverlist is Common XP builtin drivers
;
Primary_IDE_Channel=c:\windows\inf\mshdc.inf
Secondary_IDE_Channel=c:\windows\inf\mshdc.inf
PCMCIA\*PNP0600=c:\windows\inf\mshdc.inf
*PNP0600=c:\windows\inf\mshdc.inf
PCMCIA\KME-KXLC005-A99E=c:\windows\inf\mshdc.inf
PCMCIA\_-NinjaATA--3768=c:\windows\inf\mshdc.inf
PCMCIA\FUJITSU-IDE-PC_CARD-DDF2=c:\windows\inf\mshdc.inf
*AZT0502=c:\windows\inf\mshdc.inf


[OEMBootFiles]

iaAhci.inf
iaStor.sys
iaAhci.cat
iastor.inf
iastor.cat
TXTSETUP.OEM
0
 
Netman66Commented:
When they refer to unattend.txt it implies sysprep.inf if you are using the image method as opposed to a unattended install from media.

Lines like these:

"Intel(R) ICH9M-E/M SATA AHCI Controller" = OEM
"Intel(R) ESB2 SATA AHCI Controller" = OEM
"Intel(R) ICH7R/DH SATA AHCI Controller" = OEM
"Intel(R) ICH7M/MDH SATA AHCI Controller" = OEM

..in my opinion are not needed.  The last OEMBootFiles section is also not required they way I do it.

In your reference image, integrate the AHCI controller drivers into the build using the tool named SetupCopyOEMInf.exe found in this zip file:

http://www.msfn.org/staff/Alanoll/DriverFiles.zip

Simply run the EXE from a CMD window and add the path to the parent folder of the AHCI drivers - example:

You copy the AHCI drivers (extracted) to C:\Windows\Inf\AHCI
Run the command: setupcopyoeminf c:\windows\inf\ahci

This will make the AHCI driver an "in-box" driver now.  

From the Sysprep.inf file during mini-setup, the MassStorage section is used to direct the OS to the hardware-specific drivers during installation.  Be sure the path to the drivers listed in this section are in the same location you ran the tool against earlier.

Sysprep and image the reference PC now and you're golden.

Let me know if any of this is unclear.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
MarkBournAuthor Commented:
Wive this a go - a new utility gives me hope this will be the answer I am looking for.  I tried the link you provided but it does not work - I have signed up incase this was the issue but still does not give me the .zip.

Could you please verify the link.

Many Thanks
0
 
Netman66Commented:
0
 
MarkBournAuthor Commented:
i am currently waiting for a response from the msfn forum admin as the registration process seems to fail.  until then I cannot download or test this utility.  Will let you know how this progresses,
0
 
MarkBournAuthor Commented:
I cannot get the MSFN password reset to work and the admins do not answer login issues so I am stuck getting this file.  Is there a way to attach it to this post so I can download
0
 
Netman66Commented:
If this attaches properly, then download it and rename the extension to .exe.
 
Download by right clicking the link and selecting Save Target As.


 

SetupCopyOEMInf.txt
0
 
MarkBournAuthor Commented:
Thanks - got the file.

Sorry to be a pain but can I clarify the logic.  I have the Toshiba laptop in question with the manufacturers recovery CD ran to give all the drivers already installed.  This is the build I ran driver grab to extract the drivers to include in my reference build.  Are you saying I need to run this tool on this manufacturers build to extract the correct AHCI drivers then add them into my sysprep.inf reference build.  Not sure what you mean by "in box" driver.  



0
 
Netman66Commented:
If you are using this image as a "universal" image to install to multiple different platforms, then it's necessary to integrate at least some of the drivers for AHCI.

In order to do this, when the reference image is installed as generically as possible on a machine (only the absolute necessary drivers to work) then extract the AHCI drivers to C:\Windows\inf\AHCI and run that utility to integrate them into Windows BEFORE running sysprep.

This will ensure they are there during mini-setup and can be used when the BIOS is set to AHCI or Native for the SATA mode.

Personally, I wouldn't use a Toshiba to create a reference build due to the special drivers required.  I would install Windows and update it then install my apps and update them on a machine the is as generic and plain as you can find.  Install no drivers except for the nic and do not use Automatic Updates to install any recommended or otherwise detected hardware drivers.  Integrate the AHCI drivers as described above and run sysprep -bmsd to build the sysprep.inf MassStorage section before modifying it for your customizations.  Once complete run sysprep and seal it up for imaging.

There are many methods to make this universal and they take a lot of time to get right.  Trial and error will be your best teacher - this way you get to understand what you need and how to make it work.

0
 
MarkBournAuthor Commented:
I have my reference build as you suggested which I designed a few years back using my multi volume copy of XP with just the drivers loaded that XP found for by base hardware (Ibm r31 my reference build is based on as it is the lowest spec I have in circulation).  I have only ever had to add my drivers to the sysprep.inf file and never had to play around with the mass storage drivers section but I think I have it about right as per my example above.  So here is what I beleive I need to do .would you mind checking my logic please before I waste loads of time with this,

1. Load up my reference build on my R31 (Base image loaded up with all my drivers and not yet factory sealed"
2. Load up my new tosh with factory CD
3. Grab all the drivers loaded into the device manager using driver "Driver Guide toolkit" from the tosh laptop
- This should have pulled in the controller drivers into an inf file with all the other drivers
4. Copy the drivers extracted from driverguide toolkit and place onto my reference build under c:\drivers\ToshL450

5. Find and copy the controller drivers into the c:\windows\inf folder ** NEW STEP
6. run the setupCopyOEMinf against the c:\windows\inf folder to pipe the drivers into the build registry **NEW STEP
7. Seal the build for factory deployment using c:\sysprep\sysprep.exe -factory -quiet -activated -forceshutdown

That is my process but I still have a small bit of confusion.  
- You mentioned running sysprep -bmsd which I have never done.  Since I have not had a need to add things to my massstorage section I havent had much exposure to it apart from my example above which I thing resolved some issues on a IBM R509 I tested last year.  Why would I run the sysprep -bmsd  and what customizations whould I be making.  
- The second thing is since I have added the .inf AHCI driver from the grabbed drivers on the tosh into the c:\windows\inf do I still add some sort of lines to the massstorage as previously I added the drivers to the c:\drivers not the c:\windows\inf and pointed the mass storage to that location.  Only difference is I did not have the setupCopyOEM. utility

Thankyou for your patience.  As you pointed out sysprep is a lot of trial and error - I thought I did well to have 1 image for 5 years but now I feel like I am starting again from scratch because of all these new controllers.  

0
 
Netman66Commented:
In step 5, copy them to a new subfolder because if you run SetupCopyOEMInf against just the INF folder, you will be integrating EVERYTHING that is already part of the "in-box" drivers again.  Create a subfolder called L450 and run the utility against that one folder only.

The MassStorage section allows mini-setup to identify the HDD controller during setup and use the proper driver right from the start.  This will allow you to have SATA mode set to Native or Enabled to take advantage of the new controller features rather than defaulting it to IDE mode.

Simply copying the proper inf to the \Windows\Inf folder isn't enough.  You need to define the controller hardware in MassStorage or it won't boot should it detect a disk controller that isn't "in the box" during mini-setup.

You're almost there.
0
 
MarkBournAuthor Commented:
OK thanks.

So I will take the drivers from the driver grab for the Tosh L450 controller and put them in a c:\windows\inf\l450 folder then run the .exe against this to pipe in the drivers to the XP build giving me the "In Box" functionality.  I am with you now.  

Am I reading you correct in saying despite embedding the controller driver with the SetupCopyOEMInf I need to also put it into the mass storage section of the sysprep.inf file.  When I run the c:\sysprep\sysprep.exe -factory -quiet -activated -forceshutdown it appears to build this mass storage section itself so why would  I need to run the -bmsd as a seperate process, Are they different in some way.  If the driver is now "in box" would it be an assumption to say without the -bmsd option it would add itok using the  -factory -quiet -activated switches .  What benefit do you get from the -bmsd over my currect methods. Also would it be prudent to add the path to the AHCi driver regardless of running -BMSD or my -factory -activated option.

I gather I am also still ok to put all the drivers into the winbom.ini as I have always done for the general drivers sucha s Nic / Audio / Display etc.

Again apologies for taking up more of your time but I am starting to feel I am undderstanding what you are getting at just still a few holes in my logic.

0
 
Netman66Commented:
If it builds this section, then fine, but you'll still need to take the PCI\VEN information from the driver's INF and copy it into this section of the Sysprep.inf (modifying the format to match the existing entries) with the path to C:\Windows\inf\L450\{driver inf name here}.

You do this so that during the PnP of Mini-Setup it can grad the drivers immediately and give you AHCI support (if enabled in the BIOS).

The -bmsd switch grabs ALL of the hard disk controller hardware IDs from the infs located in \Windows\Inf and places them in the Sysprep.inf file under MassStorage so that during mini-setup they get added to the registry under HKLM\System\CurrentControlSet\Control\CriticalDeviceDatabase so that next boot (exiting 16bit setup into 32bit shell) provides the right device enumeration and drviers for Windows to use.

A step many people do not do is add a CMDLINES.TXT file to run sysprep.exe -clean so that this section of the registry gets cleaned of all devices in this key that are NOT present on the machine.  This frees up loading of drivers that are not necessary - thus saving memory and load time.

0
 
MarkBournAuthor Commented:
Excellent.  I understand the process now.  From this understanding It may be apparant I have been doing it correct all along as I have been manually adding the path to the ACHi controller into the sysprep.inf massstorage section and pathing to c\drivers\toshl450\Ahci.  the ony difference in this topic outcome is we are placing the inf into the c:\windows\inf and running the utility  SetupCopyOEMInf to force the "inbox" scenario.

I will dump out my image with these new methods this weekend to see if it makes a difference.  I hope it does as I will be stumped otherwise.  My only concern is I think from what we have been discussing it sounds like I had the AHCI driver in the sysprep.inf and would have been loaded into the system similar to the In box method you are guiding me to.  In your opinion do you think the way I did it before (loading the inf information into the sysprep.inf only) would not have resulted in the same result as running SetupCopyOEMInf and then the -bmsd.

I have heard of CMDLINES.TXT  and sysprep-clean but do not currently use them.  I have noticed that the dump of the image can take ages now I know why.  Where would I impliment the -clean option.  has this got to be done before running my sysprep.exe -factory -quiet -activated or can the -clean be bolted on the end of this command line.  I seem to remember I might have dropped the -clean as it did not like it being used with the other command switches I was using - Very tempremental.



0
 
Netman66Commented:
Use both methods combined to add the AHCI drivers - you'll find a much smoother deployment by integrating and also providing the info in MassStorage.

The sysprep -clean command should be placed in CMDLINES.TXT within the folder structure \Sysprep\i386\$oem$.

Format for this file is:

[Commands]
"C:\Sysprep\sysprep -clean"

If the file is present, sysprep will run it.

0
 
MarkBournAuthor Commented:
Thanks for the extra info .  I have not had a chance yet to test all this but will keep you informed of the outcome.
0
 
MarkBournAuthor Commented:
As this is a very detailed question can I request we keep this open for another week as I am still testing the solution and this takes time due to the porocess involved.  I will assign the points but I may need to post some extra information on this topic to remedy any issues during my testing.  I may need to also add extra information into the topic before closing to assist anyone else looking at this topic.  

Apologies for the time I am taking but testing this is lengthy ..

Thanks
0
 
MarkBournAuthor Commented:
Netman66: I have ran thru all the suggestions above but the machine persists at stopping at AGPCPQ.sys driver on boot.  I thried using the bare ammount of drivers with the AHCI file loaded in using the SetupCopyOEMinf utility which failed the same way.  I also tried using the setupCopyOEMinf utility against the driver directory with all the drivers for this laptop and again it fails the same way.  

I also tried taking the latest intel matrix driver from intels site and adding this to the mass storage.  I then looked through the AHCi drivers for the ones I already had which were earlier versions of the intel matrix drivers and made reference to the ones that were not listed in the latest driver.  this did not work either.

Looks like I am not going to get this laptop working on my standard build.  Very frustrating.  
0
 
Netman66Commented:
That driver seems to be a Compaq-specific one.  You need to remove it from your initial reference image.

The reference image should only contain a NIC driver if the out-of-box drivers don't pick it up.  Let the system use standard VGA for the video card.

0
 
MarkBournAuthor Commented:
AGPCPQ.sys seems to be a microsoft cpu-agp controller driver.  Not sure if I can remove this.  I am currently dumping out another test image but this time using setupcopyoeminf against my real drivers folder containing all the drivers for all my hardware currently supported.  It appears to be taking a while.  I will try to change the video driver to standard VGA.  I removed all the unknown devices and accidently refreshed and it seems to have loaded all the drivers in as they are all now in box so when this utility completes i will try and force it back to the standard VGA before sysprepping it.

0
 
MarkBournAuthor Commented:
My test still fails.  

Netman66: Thank you for the assistance you have given me and the setupcopyoeminfo is an excellent utility and will assist me for machines that sysprep will not load the driver for.  I am looking to work backward as I have an image working on the L450 laptop from a base XP sp2 CD.  This works when sysprepped from L450 - L450 so I will be loading on all the drivers for the current hardware I have to test if this will dump onto the same hardware that my single image works on.  Trick is If this works I will have to split the hard drive to the size of the lowest spec hard drive I support and snapshot that partition so sysprep can extend the size on higher size drives.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 13
  • 9
Tackle projects and never again get stuck behind a technical roadblock.
Join Now