Unattended install of third party disk drivers

By | May 22, 2006
As I went through about 2 days of frustration trying to get this to work I have outlined a procedure here that WORKS, I found plenty on the Internet that did not work and this was patched together from some of those source and MS Technet. This outlines installing a WinXP Promise MBFastTrak133 Lite ™ Controller (this is an onboard raid controller) under Windows XP unattended.

Most of this page was lifted from http://www.thetechguide.com/forum/showflat.php?Board=software&Number=5090 but it contains a number of errors, and I am not sure how they really got it to work 🙂

47. Include 3rd party controller drivers using unattended install When installing WinNT4/Win2k on a drive connected to a 3rd party controller, which WinNT4/Win2k doesn't recognize, then the install will crash with a BSOD saying NACCESSIBLE_BOOT_DEVICE. This can be avoided by pressing F6 when the text-mode setup intructs you to it, where it then will request you for the drivers for the 3rd party controller on a floppy disk.
 
MS KB Q220845
 
It is possible to make WinNT4/Win2k recognize the controller automaticly, so you don't have to press F6 and use a floppy disk :
 
Create a directory $OEM$ under the i368 directory
<Drive>\i386\$OEM$ 
 Create a directory Textmode under the $OEM$ directory
<Drive>\i386\$OEM$\Textmode 
Copy the needed drivers for operating system to the Textmode directory. All the files should be placed in the Textmode directory, there should not be created any sub directories below the Textmode directory.
Txtsetup.oem (Required)
Driver.sys (Required)
Driver.inf
Driver.cat
 
Orginal txtsetup.oem as supplied with the drivers :
 
[Disks]
d1 = "Promise FastTrak Series Driver Diskette", \fasttrak, \
d2 = "Promise FastTrak Series Driver Diskette", \fasttrak, \nt4
d3 = "Promise FastTrak Series Driver Diskette", \fasttrak, \Win2000
d4 = "Promise FastTrak Series Driver Diskette", \fasttrak, \WinXP
[Defaults]
scsi = FastTrak133_xp2
[scsi]
FastTrak133_xp2 = "WinXP Promise MBFastTrak133 Lite ™ Controller", FastTrak
;FastTrak133_xp = "WinXP Promise SBFastTrak133 Lite ™ Controller", FastTrak
FastTrak133_nt52 = "Win2000 Promise MBFastTrak133 Lite ™ Controller", FastTrak
;FastTrak133_nt5 = "Win2000 Promise SBFastTrak133 Lite ™ Controller", FastTrak
FastTrak133_nt42 = "WinNT Promise MBFastTrak133 Lite ™ Controller", FastTrak
;FastTrak133_nt4 = "WinNT Promise SBFastTrak133 Lite ™ Controller", FastTrak
[Files.scsi.FastTrak133_xp]
driver = d4, Fasttrak.sys, Fasttrak
inf = d4, Fasttrak.inf
[HardwareIds.scsi.FastTrak133_xp]
id="PCI\VEN_105A&DEV_7275", "Fasttrak"
[Files.scsi.FastTrak133_xp2]
driver = d4, Fasttrak.sys, Fasttrak
inf = d4, Fasttrak.inf
[HardwareIds.scsi.FastTrak133_xp2]
id="PCI\VEN_105A&DEV_5275", "Fasttrak"
[Files.scsi.FastTrak133_nt5]
driver = d3, Fasttrak.sys, Fasttrak
inf = d3, Fasttrak.inf
[HardwareIds.scsi.FastTrak133_nt5]
id="PCI\VEN_105A&DEV_7275", "Fasttrak"
[Files.scsi.FastTrak133_nt52]
driver = d3, Fasttrak.sys, Fasttrak
inf = d3, Fasttrak.inf
[HardwareIds.scsi.FastTrak133_nt52]
id="PCI\VEN_105A&DEV_5275", "Fasttrak"
[Files.scsi.FastTrak133_nt4]
driver = d2, Fasttrak.sys, Fasttrak
inf = d2, Fasttrak.inf
[Files.scsi.FastTrak133_nt42]
driver = d2, Fasttrak.sys, Fasttrak
inf = d2, Fasttrak.inf
[Config.Fasttrak]
value = "", Tag, REG_DWORD, 1
 
First thing to do is to get rid of ALL the other OS files and make the txtsetup.oem look like this :
 
[Disks]d1 = "Promise FastTrak Series Driver Diskette", \fasttrak,\
[Defaults]
scsi = FastTrak133_xp2
[scsi]
FastTrak133_xp2 = "WinXP Promise MBFastTrak133 Lite ™ Controller", FastTrak
[Files.scsi.FastTrak133_xp2]
driver = d1, Fasttrak.sys, Fasttrak
inf = d1, Fasttrak.inf
[HardwareIds.scsi.FastTrak133_xp2]
id="PCI\VEN_105A&DEV_5275", "Fasttrak"
[Config.Fasttrak]
value = "", Tag, REG_DWORD, 1
So all we have is the WinXP section, take the right drivers out of the WinXP directory and put them with this txtsetup.oem.
Notice I have \fasttrak,\ and not the . (dot) as suggested above, the dot did not work for me but the backslashes did, I got this from the MS Windows NT Workstation Deployment guide, and I quote :
 
Error Messages When Working with TXTSETUP.OEM
 
Error: Windows NT Setup File \$WIN_NT$.~BT\$OEM$\HAL\HAL.DLL could not be loaded.The error code is 18  Setup cannot continue. Press any key to exit. 
 
Solution: The path defined under the [Disks] section is incorrect. Windows NT Setup does not allow for subdirectories under \$OEM$\TEXTMODE. All component files must be placed in the TEXTMODE directory.
 
Syntax for the [Disks]
[Disks]
d1 = description,tagfile,directory
d2 = description,tagfile,directory
Incorrect Structure
[Disks]
d3 = "HAL Support for Windows NT",\oemhal.tag,\HAL
d1 = "Storage Support for Windows NT",\oemstor.tag,\SCSI
Correct Structure
[Disks]
d3 = "HAL Support for Windows NT",\oemhal.tag,\
d1 = "Storage Support for Windows NT",\oemstor.tag,\
 
From and Email I recieved after first publishing this page. (thanks Scott)You might be interested to know "Microsoft Knowledge Base Article – 288344" at: http://support.microsoft.com/default.aspx?scid=KB;EN-US;q288344  properly explains when you should use the period (.) and when you should use the backslash (\) in the Txtsetup.oem file. I found this reference after reading your article. -Scott Tregear
 Edit the file <Drive>\i386\Unattend.txt, and create a [MassStorageDrivers] section :
[MassStorageDrivers]
"string that identifies the controller in the [scsi] section of TXTSETUP.OEM" = "OEM".
 
Ex. :
 
[MassStorageDrivers]
"Adaptec Ultra160 Family PCI SCSI Controller (29160, 39160, etc.)" = "OEM"
[MassStorageDrivers]
"WinXP Promise MBFastTrak133 Lite ™ Controller" = "OEM"
If intending to use the onboard IDE controller during installation, Edit the file <Drive>\i386\Unattend.txt, and add this line to the [MassStorageDrivers] section :
 "IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
If the line is not added a BSOD will appear during install with INACCESSIBLE_BOOT_DEVICE. This error comes because the controller which the device(HDD/CD-ROM/DVD) is attached to is not recognized. Therefore requiring one to give it a driver for the controller.Ex. :
[MassStorageDrivers]
"Adaptec Ultra160 Family PCI SCSI Controller (29160, 39160, etc.)" = "OEM"
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
 
I did not do this and it worked fine as I am not using the CD drive, I am installing over a network (WinInstall)
Edit the file <Drive>\i386\Unattend.txt, and create a [OEMBootFiles] section. List the driver filenames copied to the Textmode folder :
 
[OEMBootFiles]
Driver.sys
Driver.inf
Driver.cat
Txtsetup.oem
The following files were copied from the \winxp directory on the diskette.
[OEMBootFiles]
fasttrak.sys
fasttrak.inf
fasttrak.cat
Txtsetup.oem
 
 Edit the file <Drive>\i386\Unattend.txt, and set the following option in the [Unattended] section :
[Unattended]
OemPreinstall=Yes
OemSkipEula=Yes
 
Launch the installation with the created unattend file
WINNT /U:<Drive>\i386\Unattend.txt /S:<Drive>\i386 
To create a new bootable Win2k CD : Update your Win2k CD-ROM with the new Service Pack
More Info MS KB Q288344
More Info MS KB Q155197
More Info MS KB Q166028
More Info MS KB Q254078
Credits jsiinc.com
 
Hope that helps someone not go through what I did 🙂
Cheers
Phill

Leave a Reply