[quote name=\'Jazkal2\' date=\'Apr 12 2003, 08:55 AM\']Does anyone know of any websites that discuss this or have additional information on how to integrate Mass Storage Devices into the Windows source files?
- Jazkal[/quote]
Bootable W2K PRO slipstream no F6 key
Today I found myself tasked with installing Windows 2000 pro on a shiny new piece of hardware: A new computer with an MSI KT4 with Onboard SATA 150 Promise PDC 20376. The only problem is that onboard raid is new, so win2k lacks built-in support for it. And Windows has trouble installing itself on a hard drive which it cannot see. Microsoft has a mechanism for dealing with this, of course. It is called the "TXTSETUP.OEM". You can learn more than you want to know at
<http://msdn.microsoft.com/library/e...up_1wmq.asp>
But the theory is simple. Your SCSI hardware vendor (in my case,
MSI) gives you a "driver disk" with a "TXTSETUP.OEM" file at the top.
Shortly after you start an installation, Windows Setup says
"Press F6 if you need to install a third party SCSI or RAID driver".
Then you press F6, insert your driver disk, and everything works fine.
...If you are installing from CD-ROM, that is. If instead you are
Installing from slipstream CD-ROM, things are a tad trickier
Installing Windows from CD-ROM goes roughly as follows. You boot from CD-ROM and with WINNT.SIF. It creates something on your C: drive and then reboots. As a quick and dirty hack, I waited for winnt.exe to populate the C: drive, waited for the "Press F6..." prompt after the reboot, pressed F6, and fed in the fasttx2k driver disk. Oops, no good. Setup complained about being unable to find various .sys, .inf and .cat files. Well, no matter. Who wants to sit around every time you install Windows, anyway? And "Unattended" is practically my middle name. Surely I can automate it.
Heck, Microsoft makes it plain as day in a KB article:
http://support.microsoft.com/?kbid=288344Note step 5 in particular, which suggests that different installation methods require slightly different TXTSETUP.OEM files.
Let me share with you the relevant lines from the original TXTSETUP.OEM on the driver disk. (For clarity, I am omitting the
Non-relevant lines of the file which is to say most of them.)
[Disks]
d3 = "Promise FastTrak 376 Driver Diskette", \fasttx2k, \Win2000
[SCSI]
FastTrak_TX2K_nt5 = "Win2000 Promise FastTrak 376 ™ Controller", fasttx2k
[Files.scsi.FastTrak_TX2K_nt5]
Driver = d3, fasttx2k.sys, fasttx2k
INF = d3, fasttx2k.inf
Catalog= d3, fasttx2k.cat
Here is what this means.
First, the [Disks] section declares a disk named "d3", with a
Human-readable description of "Promise FastTrak 376 Driver", and a directory of "\Win2000". That is, this and the driver files it includes all reside within the \Win2000 directory.
Second, the [SCSI] section declares a driver ID of
FastTrak_TX2K_nt5 which is the identifier the rest of the file uses to name the driver. It has a description of "Win2000 Promise FastTrak 376 ™ Controller", fasttx2k; Relevant here.
Finally, the [FILES.SCSI] section defines the files which comprise the FastTrak_TX2K_nt5 driver. This section says that the proper driver is on disk d3 in the file fasttx2k.sys, the INF file is on d3 in fasttx2k.inf, and the catalog file is on d3 in fasttx2k.cat.
Right; so, following the KB article’s instructions, I edited the d3
Line of TXTSETUP.OEM like so:
d3 = "Promise FastTrak 376 Driver Diskette", \Win2000,
That is, I replaced \Win2000 with a dot. Then I copied all of the driver files, plus txtsetup.oem itself, to Z:\win2koem\$oem$\I386\TEXTMODE. I edited z:\site\winnt.sif to add these lines:
[MassStorageDrivers]
"Promise FastTrak 376 Driver" = "OEM"
[OEMBootFiles]
TXTSETUP.OEM
FASTTX2K.CAT
FASTTX2K.INF
FASTTX2K.SYS
The [MassStorageDrivers] section says that I want to add a mass
Storage driver during text mode setup. It says to look for the key
"Win2000 Promise FastTrak 376 ™ Controller" in the [SCSI]
Section of txtsetup.oem and to load that driver.
The [OEMBootFiles] section tells winnt.exe to copy TXTSETUP.OEM, FASTTX2K.CAT, FASTTX2K.INF, and FASTTX2K.SYS from $OEM$\TEXTMODE to the C: drive before rebooting.
This is what the KB article said to do, so I did it. And it worked great.
Just kidding! Actually, it failed miserably. Well, winnt.exe ran OK.
But shortly after rebooting, Setup bombed like, so:
File \$WIN_NT$.~BT\$OEM$\.\FASTTX2K.SYS could not be loaded.
The error code is 18, Setup cannot continue. Press any key to exit.
You see, winnt.exe places several things on your hard drive, including a directory named $WIN_NT$.~BT, another directory named $WIN_NT$.~LS, a file named TXTSETUP.SIF, and a few other oddities.
Beneath each of the two $WIN_NT$ directories is stuff which looks like bits and pieces of a Windows installation CD. I believe the ~BT directory contains the "real mode" portion of Setup; i.e., the part which runs first, offers to let you to press F6, slurps up the drivers, and then launches the protected mode portion (when it says "Setup is starting Windows..."). The ~LS directory holds that protected mode portion. Or so I have surmised. None of this is documented, of course. Anyway, by booting to DOS I confirmed that C:\$WIN_NT$.~BT\$OEM$\.\FASTTX2K.SYS did, in fact, exist. And yes, it was the same file, byte for byte, on the driver disk.
So what the heck was Setup complaining about? Some Web searching suggested that subdirectories of \$WIN_NT$.~BT\$OEM$ are a no-no. And though I personally would not call "." a subdirectory, who knows?
Next, I noticed that \$WIN_NT$.~BT\$OEM$\ included a copy of my txtsetup.oem file. So, instead of editing txtsetup.oem on the original media and restarting the installation from scratch, I decided to experiment on the copy. I edited the d3 line like so:
d3 = "Promise FastTrak 376 Driver ", \txtsetup.sif,
As you can see, I got rid of stray whitespace, replaced \Win2000 (which does not exist on C with \txtsetup.sif (which does), and deleted the period at the end of the line. Then I rebooted to let Setup try again. Amazingly, it worked! Triumphant and smirking, I made the same change to
Z:\win2koem\$OEM$\TEXTMODE\TXTSETUP.OEM and restarted the installation. And it worked great.
Just kidding! Actually, it failed miserably. This time, winnt.exe worked, and the real mode portion of Setup worked. But right after the protected mode portion started, it bombed saying, "The vendor-supplied setup file has an error on line 42. Press F3 to exit Setup." Sure enough, line 42 was my "d3 = ..." line. Well, actually it was line 41. Or 40, if you count from zero. But so amazed was I that Microsoft actually gave me ERROR MESSAGE with a LINE NUMBER, I could hardly complain if it was the wrong line.
Now, I found this more than slightly confusing. When I edit the copy of the file on the C:\ drive, it works; but when I edit the master copy at the source, it fails? Impossible! But I tried it again, and again, and a few more times...
...and just as I was about to smash my head into a wall, I had an insight.
A had true "Microsoft moment". I just had to remember that Microsoft’s engineers will casually do things that people with training or experience would never contemplate in a million years. Like making TWO copies of the SAME FILE and then reading it with DIFFERENT PARSERS.
Sure enough, there was another copy of txtsetup.oem under
C:\$WIN_NT$.~LS\$OEM$\TEXTMODE. And that is the copy which the protected mode portion of Windows Setup reads.
So when I initially edited the other copy of txtsetup.oem to eliminate the dot at the end of the line, I fixed it for the real mode portion of Setup without affecting the protected mode portion. But when I changed the master copy in z:\win2koem\$OEM$ \TEXTMODE \I386and restarted the installation that affected both copies on C: which broke protected mode Setup because it objected to the line ending with a comma.
The solution was to find a line which works for both real and protected mode, without breaking either of the parsers. Here it is:
d3 = "Promise FastTrak 376 Driver", \txtsetup.sif,""
And it is working great.
- Mark Clinkscales
Here I will give more detail on how I done this!
I have change some thangs around, but works the
same.
My files on my harddrive is laid out this way.
D:\W2KFiles\W2000: $oem$ - I386.
in my $OEM$ I made a new folder called TEXTMODE.
In that folder I added Fasttx2k.cat, fasttx2k.INF, fasttx2k.sys,
txtsetup.oem, TXTSETUP.SIF. Then I edited my txtsetup.oem and here it is.
We are making winnt.sif and winnt.exe make dulipcate copys of
TXTSETUP.SIF to the harddrive. You will understand later - read on -.
FOR WINDOWS 2000 in the TXTSETUP.OEM is on line d3 as you can see.
[Disks]
d3 = "Promise FastTrak 376 Driver", \txtsetup.sif,""
[Defaults]
scsi = FastTrak_TX2K_xp
[scsi]
FastTrak_TX2K_nt5 = "Win2000 Promise FastTrak 376 ™ Controller", fasttx2k
[HardwareIds.scsi.FastTrak_TX2K_nt5]
id="PCI\VEN_105A&DEV_3376", "fasttx2k"
[Files.scsi.FastTrak_TX2K_nt5]
driver = d3, fasttx2k.sys, fasttx2k
inf = d3, fasttx2k.inf
catalog= d3, fasttx2k.cat
[Config.fasttx2k]
value = "", Tag, REG_DWORD, 1
Notice the double quotes at the \txtsetup.sif"".
This is what we are doing.
Orginal TXTSETUP.OEM not edited d3 line.
d3 = "Promise FastTrak 376 Driver Diskette", \fasttx2k, \Win2000
Edited Copy of TXTSETUP.OEM.
d3 = "Promise FastTrak 376 Driver", \txtsetup.sif,""
Now were done with this file.
Now go to your i386 folder and find TXTSETUP.SIF and
copy it the $OEM$\TEXTMODE folder. Now open the txtsetup.sif
in the i386 folder.
Where going to edit the TXTSETUP.SIF file and add some text in the
i386 folder.
[SourceDisksFiles]
aic78xx.sys = 1,,,,,,3_,4,1 Put fasttx2k.sys under here!
fasttx2k.sys = 1,,,,,,3_,4,1
[HardwareIdsDatabase]
PCI\VEN_105A&DEV_4D33 = "pciide" Put under here!
PCI\VEN_105A&DEV_3376 = "fasttx2k"
[Put PCI\VEN_105A&DEV_3376 = "fasttx2k" under here!
PCI\VEN_105A&DEV_4D33 = "pciide" because if you don't you will get this error "Line 255 in hivesys.INF IS CORRUPTED - WHAT THIS MEANS IS; IT's OUT OF ORDER! look at the 105A numbers.]
[SCSI.LOAD]
aic78xx = aic78xx.sys,4 Goes under here!
fasttx2k = fasttx2k.sys,4
[SCSI]
aic78xx = "Adaptec AHA-294X/AHA-394X/AIC-78XX SCSI Controller" Goes under here!
fasttx2k = "Win2000 Promise FastTrak 376 ™ Controller"
Under [SCSI] in fasttx2k = look at what's in the quotes!! it
must read the same in both txtsetup.oem and in txtsetup.sif files or you will get error Section [SCSI] does not contain (what ever your controller name is.) Make sure they read the same.
Now where done with this file - save it - copy it - and past it to the
$OEM$\TEXTMODE folder - overwrite this one.
Now got to the i386 folder and lookup the winnt.sif ( I'm sure you have one, if not you will have to create one) and open it and scroll to the bottom of the file and add this:
[MassStorageDrivers]
"Win2000 Promise FastTrak 376 ™ Controller" = "txtsetup.sif"
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
[OEMBootFiles]
txtsetup.sif
TXTSETUP.OEM
Fasttx2k.CAT
Fasttx2k.INF
Fasttx2k.SYS
Now save it!
Create a $1 folder under $OEM$ folder. Open the $1 folder and create a drivers folder. Open drivers folder and create a folder (I call mine SATA folder and copy all the controllers driver to this folder! (you can copy every thang from the TEXTMODE folder to the SATA folder.
Also copy the fasttx2k.sys to the i386 folder.
Open winnt.sif in the i386 folder and make sure you have this :
OemPnPDriversPath=\drivers\sata.
Here is a copy of my winnt.sif file:
;SetupMgrTag
[Data]
AutoPartition="0"
MsDosInitiated="0"
UnattendedInstall="Yes"
[Unattended]
UnattendMode=FullUnattended
OemSkipEula=Yes
OemPreinstall=Yes
TargetPath=\WINNT
DriverSigningPolicy=Ignore
nondriversigningpolicy=Ignore
OemPnPDriversPath=\drivers\cm452k;\drivers\LNE100;\drivers\nvidia;\drivers\sata;\drivers\sonyusb;\drivers\usb20;\drivers\modem;\drivers\xf-9e
[GuiUnattended]
AdminPassword=*
AutoLogon=Yes
AutoLogonCount=2
OEMSkipRegional=1
TimeZone=20
OemSkipWelcome=1
[UserData]
FullName="name"
OrgName="company."
ComputerName="comp. name"
[Display]
BitsPerPel=32
Xresolution=1024
YResolution=768
Vrefresh=85
[RegionalSettings]
LanguageGroup=1
Language=00000409
[GuiRunOnce]
Command0="%systemdrive%\apps\via4-1\via.bat"
Command1="%systemdrive%\apps\msxml30\msxml.bat"
Command2="%systemdrive%\apps\msjavx86\msjavx86.bat"
Command3="%systemdrive%\apps\dotfx\dotnet.bat"
Command4="%systemdrive%\apps\journal\viewer.bat"
Command5="%systemdrive%\apps\js56\js.bat"
Command6="%systemdrive%\apps\aspi\aspiinst.bat"
Command7="%systemdrive%\apps\adred60\adread.bat"
Command8="%systemdrive%\apps\Q823718\823718.bat"
Command9="%systemdrive%\apps\msvm3810\msvm.bat"
Command10="%systemdrive%\apps\Q832483\832483.bat"
Command11="%systemdrive%\apps\nero\nero.bat"
[Components]
iis_www=off
iis_pwmgr=off
[Identification]
JoinWorkgroup=WORKGROUP
[Networking]
InstallDefaultComponents=Yes
[Branding]
BrandIEUsingUnattended=Yes
[MassStorageDrivers]
"Win2000 Promise FastTrak 376 ™ Controller" = "txtsetup.sif"
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
[OEMBootFiles]
txtsetup.sif
TXTSETUP.OEM
Fasttx2k.CAT
Fasttx2k.INF
Fasttx2k.SYS
Once done, you can add all you want to.
My install CD is actually a DVD-RW cause my file size is to big to put on a CD.
Yes! I slipstream SP4 then added all my hotfixes, then added ie6 which is customized with the ieak6 file, I added M$ office XP, nero6 , adobe reader ECT, ECT,. Once Installed, I create my dialup account, go to windows update, and their is nothing to download.
Here is a copy of my cmdlines file:
[Commands]
"%systemdrive%\apps\ie6\ie6setup.exe /q /r:n"
"Q329115.exe /q /n /z"
"Q820888.exe /q /n /z"
"Q822831.exe /q /n /z"
"Q823182.exe /q /n /z"
"Q823559.exe /q /n /z"
"Q823980.exe /q /n /z"
"Q824105.exe /q /n /z"
"Q824141.exe /q /n /z"
"Q824146.exe /q /n /z"
"Q825119.exe /q /n /z"
"Q826232.exe /q /n /z"
"Q828026.exe /q /n /z"
"Q828028.exe /q /n /z"
"Q828035.exe /q /n /z"
"Q829558.exe /q /n /z"
"Q818043.exe /q /n /z"
"Q828749.exe /q /n /z"
"Q837001.exe /q /n /z"
"Q828741.exe /quiet /norestart"
"Q835732.exe /quiet /norestart"
"rootsupd.exe /q:a /r:n"
"vbs56nen.exe /q:a /r:n"
"%systemdrive%\apps\offxp\setup.exe /q"
"Regedit.exe /S .\minimum.reg"
"Regedit.exe /S .\welcome.reg"
".\DX9NTopk.exe"
I have the Corporate CD, so no CD key# is Required.
Doing all this week's of work and alot of error messages;
I have masterd what people and M$ says can't be done form a
bootable Slipstreamed CD/DVD.
I love it, install time 22 min.
File Size 1.96 gb. DVD always.
- Mark Clinkscales

http://images.thetechguide.com/forum/public/style_emoticons/<#EMO_DIR#>/biggrin.gif\' class=\'bbc_emoticon\' alt=\'

\' />