TheTechGuide Forum

General Category => Software => Topic started by: Anonymous on May 27, 2002, 09:04:03 PM

Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on May 27, 2002, 09:04:03 PM
Hello,

I\'m new to this forum and I find all the info very useful. I read some articles on unattended setup of Windows2000. My problem is:
I am able (and I have already succeded) to slipstream SP2 and all the post SP2 hotfixes, make the CD bootable (I\'m using NERO) and use a winnt.sif from a floppy to install 2000 unattended. What I want to know:
1. If I use the  $OEM$ folder on my custom CD, add the correct lines under the [Unattended] section of the winnt.sif:
OEMPnPDriversPath = \"network;video\"
DriverSigningPolicy = Ignore
will setup detect my drivers ? I have read that this is possible only when installing from the hard-drive but I\'m not sure. If not is the any other way to have a 2000 CD with your own drivers on it?
2. If I put some lines under the [GuiRunOnce] section of the winnt.sif , for example to install IE6 and DirectX8.1 in unattended mode, do I have to put the corresponding .exe files only under  $OEM$ or I can put them anywhere on the CD.

Thank you.

PS: A personal thought - This forum is 1000X better & useful than the MS OEM discussion groups!!
Title: Windows 2000 unnatended with drivers on CD
Post by: m00dy on May 28, 2002, 03:47:10 PM
You\'re on the right track. Here\'s how I do it. I use the $1 folder under $OEM$ and everything in $1 is copied to the C: drive. Like this:

$OEM$$1DriversNIC
$OEM$$1DriversVID
$OEM$$1DriversAUD

And this line points to the drivers: OemPnPDriversPath = \"DriversVid;DriversNIC;DriversAud\"

Just make sure that you have the full, extracted driver files in these subfolders. Some drivers are buried in big setup programs and require manual extraction through command line switches. The main thing is to be sure there\'s an .INF and .CAT file with each driver.

Also, I put the \"winnt.sif\" file under I386 on the CD.

As for running programs, if you put the file \"cmdlines.txt\" in the root of $OEM$, then any .exe you put under there will run. For a DirectX81 (OEM) example:

[Commands]
.dx81ntopk.exe ; this file is in the root of $oem$

Rather than slipstreaming, I experimented with chaining all the MS hotfixes after setup and even running fully unattended configuration scripts (using VBScript) but this requires so much fine tuning that by the time you\'ve figured it out, there are a dozen new patches. I\'ll just wait until SP3.

m00dy
Title: Windows 2000 unnatended with drivers on CD
Post by: Victor Chirita on May 29, 2002, 08:59:57 AM
First of all thank you for your help.
2 last questions:
1. Do you put the $OEM$ folder under I386 or right under the root of the CD?
2. When adding drivers under the $OEM$$1 folder is Windows 2000 forced to use them, or does it choose the best drivers between yours and his owns? I am asking this because whenever I install drivers for my NIC and video card after the setup finishes and I specify the location, first it says that I already have the best drivers (which is not correct) and I have to check an option that sounds like: Install one of the other drivers. I think you know what I mean.

Regards,
Victor Chirita.
Title: Windows 2000 unnatended with drivers on CD
Post by: Twinkie on May 29, 2002, 02:20:49 PM
1. The $OEM$ folder goes at the root of the CD in your case.  When booting off a CD or network location it will not find the $OEM$ folder under the I386 folder.  M$ knows about this and will not be fixing it.  Of course if using a dos install it finds it under the I386 folder.  Hope that helps...

2. During an unattend install Windows will choose the best drivers.  Or what it thinks is best anyway.  The other drivers can be used after the fact but not during the install... I think.  Anyone know if I am wrong?
Title: Windows 2000 unnatended with drivers on CD
Post by: m00dy on May 29, 2002, 02:56:04 PM
MS says put it inside the I386 folder (see attached picture). But I put it at the same root level and it works just as well on a custom CD.

There is an algorithm used to determine which driver the system will use. I think if the new driver internally has a date flag (in the .inf file) that is newer than the MS driver, then Windows chooses that driver. Some manufacturers don\'t always update the .inf date, which may explain why Windows keeps choosing the internal driver. Occasionally it seems that Windows prefers the older driver no matter what, but during unattended setup it should choose your newer drivers so long as you have set IGNORE in the unsigned driver line.

If you register as an OEM on oem.microsoft.com you can download preinstallation guides that provide all the details I am talking about. As far as I know, if you build systems (for profit or otherwise) you can register there.
Title: Windows 2000 unnatended with drivers on CD
Post by: Fjellu on June 01, 2002, 08:41:23 AM
You asked where to put the $OEM$ folder. It seems to work differently depending on how you use your CD. If you want a bootable w2k CD making a clean install then the $OEM$ folder has to be in the root of the CD, otherwise it does not work.

Anything you want installed during the unattended setup (using cmdlines.txt, the GuiRunOnce section or the SetupParams section) has to be in the $OEM$ folder structure and copied to the harddisk.

To install RAID, SCSI or HAL drivers (skipping the F6 in the beginning) during unattended install, use [MassStorageDrivers] and [OemBootFiles] sections
Title: Windows 2000 unnatended with drivers on CD
Post by: Durk on July 25, 2002, 07:40:52 AM
I found this thread by searching on google, so my response is a bit late /wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />

About putting $OEM$ in the root of the CD.
There are 2 main ways to unattended install windows 2000 from CD.
1. Make a manual boot sequence and run winnt.exe including the switches for an unattended installation.
2. Use the original boot-up and make a winnt.sif file for unattendancy.

I\'ve chosen for option 1. My $OEM$ dir is located under the I386 dir on the CD. OemPreinstall = Yes.
The files in the $OEM$ dir are correctly copied to the hard drive. But Cmdlines.txt is never executed, nor are the contents of $OEM$ deleted from the hard drive after the installation is done.

I\'m wondering if I put $OEM$ in the root of CD, would the Cmdlines.txt executed though? I think not because the first target of the $OEM$ on the hard drive is the $$ dir. That should be the same if I put $OEM$ in the root of the CD.
Later the files are moved the specified locations ($1 is %systemdrive%, etc.). So there is practically nothing changed.

Anyone an idea?
Title: Windows 2000 unnatended with drivers on CD
Post by: Fjellu on July 25, 2002, 02:01:08 PM
I am not sure I understand your question. There are basically two ways of installing w2k unattended without a network involved.

The first from DOS or Windows 3.1/Windows for Workgroups using winnt.exe or from W9X WinNT or Win2000 using winnt32.exe. Using this method the $OEM$ folder structure should be under the i386 folder. For structure check http://www.tech-hints.com/oem.html#1 (http://\"http://www.tech-hints.com/oem.html#1\")

The second method is installing clean from a bootable CD. Then the $OEM$ structure has to be in the root of the CD alongside the i386 folder.

Whatever method you use, the cmdlines.txt file has to be in the root of the $OEM$ folder structure ($OEM$cmdlines.txt)

The syntax of the cmdlines.txt has to be correct, check http://www.tech-hints.com/oem.html#4 (http://\"http://www.tech-hints.com/oem.html#4\")

There are no \"first target of the $OEM$\". The whole $OEM$ structure is only copied as is to the locations mentioned on Twinkies site (http://www.tech-hints.com/oem.html#1).

If this does not answer your question, please be more specific.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on July 27, 2002, 11:00:18 AM
The two methods I mentioned were about a clean install that starts from booting.

[indent]In reply to:

Then the $OEM$ structure has to be in the root of the CD alongside the i386 folder


[/indent]

Well I\'ll try that. But I still think it\'s strange that the contents of the $OEM$ directory gets copied to the hard drive when $OEM$ is in the I386 directory.

[indent]In reply to:

Whatever method you use, the cmdlines.txt file has to be in the root of the $OEM$ folder structure ($OEM$cmdlines.txt)


[/indent]

Yep it is.

[indent]In reply to:

The syntax of the cmdlines.txt has to be correct, check http://www.tech-hints.com/oem.html#4 (http://\"http://www.tech-hints.com/oem.html#4\")


[/indent]

It is too :-)

[indent]In reply to:

There are no \"first target of the $OEM$\". The whole $OEM$ structure is only copied as is to the locations mentioned on Twinkies site


[/indent]

Yes there is, I\'ve broken the setup, checked the hard drive  and saw different paths, obvious temporary. Finally they get moved to the right place as mentioned on Twinkies site. In the first place there\'s no WINNT directory, so content can\'t be copied to system32 destinations etc yet. So that\'s a bit understandable...
That\'s my situation, but I have to check it again when I\'ve the $OEM dir in the root of the CD.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on November 27, 2002, 10:32:09 AM
Hello,

Sorry about this, I wanna install a RAID driver (skipping the F6 in the beginning) during unattended install. I was wondering, what files will I need to modify in order for this to work? Also, what should be the directory structure of my bootable CD?

Also, will this work with WinXP Pro?
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 05, 2002, 08:03:41 AM
I was wondering the same thing except I want to do
an attended setup...
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 08, 2002, 02:10:25 AM
Yes it will. You just need to create a an unattended script (winnt.sif) using the Setup Manager (from Win2k/XP CD) and you can assign which part will Win2k/XP setup can ask for (like Name, Company, CD Key, etc).

Though the major problem is integrating HAL/3rd party RAID/SCSI controllers under Win2k/XP CD. There\'s a bug in the installer that prevents these from being installed properly, even given the right parameters. /sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />

I hope someone will find a workaround for this.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 09, 2002, 09:07:46 PM
so how do you slipstream IE 6.1 on the setup CD as well?
Title: Windows 2000 unnatended with drivers on CD
Post by: bri4dsi on December 10, 2002, 11:28:26 AM
Stupid question about $OEM$ path...
If you have the $OEM$ path on the root of the bootable CD, what would the OemFilesPath=? be in the winnt.sif?
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on December 11, 2002, 01:33:34 AM
[Data]
    AutoPartition=\"0\"
    MsDosInitiated=\"0\"
    UnattendedInstall=\"Yes\"

[Unattended]
    UnattendMode=DefaultHide
    OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore
    OemSkipEula=Yes
    TargetPath=\"WIN2000\"
    Filesystem=LeaveAlone
    OverwriteOemFilesOnUpgrade=No

;[MassStorageDrivers]
;    \"Adaptec AIC-7899 Ultra160/m PCI SCSI Card\" = RETAIL
;    \"Intel® 82801BA Ultra ATA Controller\" = RETAIL
;    \"Primary IDE Channel\" = RETAIL
;    \"Secondary IDE Channel\" = RETAIL

;[OEMBootFiles]
;    IdeBusDr.sys
;    IdeChnDr.sys
;    IdeChnDr.inf
;    IATA3000.CAT
;    TxtSetup.oem

[GuiUnattended]
    AdminPassword=psswd
    AutoLogon=Yes
    AutoLogonCount=2
    OEMSkipRegional=1
    TimeZone=4
    OemSkipWelcome=1
    ProfilesDir=\"%SystemDrive%Users\"
    DetachedProgram=\"%SystemDrive%$WIN_NT$.~LSI386svcpackdxsetup.exe\"
    Arguments=\"/windowsupdate /silent /packageinstall\"


In reply to:

Though the major problem is integrating HAL/3rd party RAID/SCSI controllers under Win2k/XP CD. There\'s a bug in the installer that prevents these from being installed properly, even given the right parameters. /sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />


What exactly is the problem? Its worked fine for me. I was even able to integrate drivers into the I386 distribution (and boot disks) by modifying TXTSETUP.SIF and DOSNET.INF, so it selects them on its own from the HW id.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 12, 2002, 06:30:06 AM
BTW, did it worked on you doing a custom bootable distro-CD with $OEM$ on the root of the CD?

If you don\'t mind, can you post your sample WINNT.SIF, TXTSETUP.OEM files here?
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 12, 2002, 06:33:34 AM
I was wondering, why did you REM\'ed \";\" out the whole[OEMBootFiles] & [MassStorageDrivers] sections?
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 14, 2002, 09:11:35 AM
It seems no one still has done it... Or has reported any workarounds...
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 19, 2002, 09:43:08 PM
Hmmm.. Hello?
Has anybody figured this one yet? /sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 22, 2002, 10:31:20 AM
Hmmm.. Anyone wanna help?
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on December 23, 2002, 07:10:38 AM
In reply to:


BTW, did it worked on you doing a custom bootable distro-CD with $OEM$ on the root of the CD?
If you don\'t mind, can you post your sample WINNT.SIF, TXTSETUP.OEM files here?


I have not messed with the boot sector (win2k only CD). I am using the boot image ripped from my win2k sp1 oem cd. The $OEM$ folder is in the root. I think the OemFilesPath is relative to where the winnt.sif file resides, in other words, to the i386 folder.

The mass storage drivers were from the Intel Application Accelerator and the download came with a Txtsetup.oem file. You can get it from the intel site (http://\"http://support.intel.com/support/chipsets/iaa/\"). Read the unattended installation section in the readme file. Follow the directions to extract the files only.

Here is a sample winnt.sif (with oem storage driver lines as prescribed in the readme file):


[Data]
    AutoPartition=\"0\"
    MsDosInitiated=\"0\"
    UnattendedInstall=\"Yes\"

[Unattended]
    UnattendMode=DefaultHide
    OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC;DriversHercules\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore
    OemSkipEula=Yes
    TargetPath=\"WIN2000\"
    Filesystem=LeaveAlone
    OverwriteOemFilesOnUpgrade=No

[MassStorageDrivers]
    \"Adaptec AIC-7899 Ultra160/m PCI SCSI Card\" = RETAIL
    \"Intel® 82801BA Ultra ATA Controller\" = OEM
    \"Primary IDE Channel\" = OEM
    \"Secondary IDE Channel\" = OEM

[OEMBootFiles]
    IdeBusDr.sys
    IdeChnDr.sys
    IdeChnDr.inf
    IATA3000.CAT
    TxtSetup.oem

[GuiUnattended]
    AdminPassword=blah
    AutoLogon=Yes
    AutoLogonCount=2
    OEMSkipRegional=1
    TimeZone=4
    OemSkipWelcome=1
    ProfilesDir=\"%SystemDrive%Users\"
    ;DetachedProgram=\"%SystemRoot%regedit.exe\"
    ;Arguments=\"/s E:ATApass2.reg\"
    ;DetachedProgram=\"%SystemDrive%$WIN_NT$.~LSI386svcpackdxsetup.exe\"
    ;Arguments=\"/windowsupdate /silent /packageinstall\"

;;[IncludeCatalog] EulaCopmlete get params from setuplog.txt
[SetupParams]
    UserExecute=\"%SystemDrive%$WIN_NT$.~LS$OEM$ProfilesRemove.bat\"

[UserData]
;    FullName=*
    FullName=\"User\"
    OrgName=\"\"
    ComputerName=BLAH


;;[SystemFileProtection]
    ;;SFCQuota=0

[GuiRunOnce]
    Command0=\"regedit.exe /s Customadmin.reg\"
    Command1=\"regedit.exe /s CustomURunOnce.reg\"
    Command2=\"CMD /Q /C CustomRunCmds.bat\"
    Command3=\"CMD /Q /C CustomAppsSetup.bat\"
    Command4=\"DriversASPIaspiinst.exe SILENT\"

[Components]
    accessopt = off
    ;paint = off
    cdplayer = off
    charmap=off
    cluster = off
    freecell = off
    fp_extensions = off
    indexsrv_system = off
    minesweeper = off
    ;media_clips = off
    ;media_utopia = off
    pinball = off
    solitaire = off
    chat = off
    dialer = off
    rec = off


[RegionalSettings]
;;;;LanguageGroup=13,4,12,7,8,1
    LanguageGroup=1
    Language=00000409


;[Branding]
;    BrandIEUsingUnattended=Yes
;;    IEBrandingFile=INSTALL.INS

;[Proxy]
;    Proxy_Enable=0
;    Use_Same_Proxy=1

;[URL]
;    Home_Page=http://www.microsoft.com/windows
;    Search_Page=http://www.yahoo.com
;    Quick_Link_1_Name=\"Customize Links.url\"
;    Quick_Link_1=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=CLinks\"
;    Quick_Link_2_Name=\"Email Removed.url\"
;    Quick_Link_2=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=Email Removed\"
;    Quick_Link_3_Name=\"Windows.url\"
;    Quick_Link_3=\"http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=windows\"
;    NoWelcome=1

;[FavoritesEx]

[Identification]
    JoinWorkgroup=NONE

[Networking]
    InstallDefaultComponents=No

[NetAdapters]
    Adapter1=params.Adapter1

[params.Adapter1]
    INFID=*

[NetClients]
    MS_MSClient=params.MS_MSClient

[NetServices]
    MS_SERVER=params.MS_SERVER

[NetProtocols]
    MS_TCPIP=params.MS_TCPIP

[params.MS_TCPIP]
    UseDomainNameDevolution=No
    EnableLMHosts=Yes
    AdapterSections=params.MS_TCPIP.Adapter1

[params.MS_TCPIP.Adapter1]
    SpecificTo=Adapter1
    DHCP=Yes
    WINS=No
    NetBIOSOptions=0
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on December 23, 2002, 06:49:47 PM
In reply to:


I was wondering, why did you REM\'ed \";\" out the whole[OEMBootFiles] & [MassStorageDrivers] sections?


I REM\'ed them because I no longer use the [OEMBootFiles] & [MassStorageDrivers] sections to preinstall the drivers.
I integrated them into the i386 distribution so Windows will select them based on the hardware id, as it does when it installs without any oem drivers.

When you include the [MassStorageDrivers] section, Windows bypasses its normal driver detection routine, and simply loads the drivers you specify, and in the order you specify. I find this results in a different driver load order which is persistent. On my machine it results in event log errors, saying something about my scsi cdrom but it works fine. I think it is due to the different order in which the boot drivers are loaded; one of them is probably not accessible when it should be.

The [OEMBootFiles] facility copies the files into an \"OemDir\" folder (for caching?), and also it creates an oem0.inf rather than using the original name, and I hate that stuff. So I wanted to make the drivers install just like the Windows drivers they replace.

Knowing that IdeBusDr.sys replaces intelide.sys (a bus extender) and that IdeChnDr.sys replaces atapi.sys (a SCSI miniport), I just went into DOSNET.INF and TXTSETUP.SIF and added the appropriates lines, using what was already there for atapi.sys and intelide.sys as a guide. I used the Txtsetup.oem as a reference as it contains the hardware Ids for the actual device, and they need to be added to the [HardwareIdsDatabase] section in TXTSETUP.SIF. This is where setup looks for drivers to load when it first starts. It selects drivers based on a matching scheme to find most compatible driver, which is basically the one that has an Id in the database that most closely matches the Id returned when the device is enumerated. Since the Ids supplied by the Intel Txtsetup.oem are the exact Ids, windows will pick them over its own drivers, and they will by installed just like the windows drivers are, without any footprint (and without the oem0.inf).

Actually, the main reason for this is that the CD can still be used on any machine. This is because windows will use the selection routine to determine what to load. If you use the [MassStorageDrivers] section and try to install (from the cd) onto a computer that does not have a device that is listed in the section, it will BSOD with an INNACCESSIBLE_BOOT_DEVICE message.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on December 29, 2002, 06:18:52 PM
Does this KB Article help...I\'m looking as well for an F6 solution, with a Bootable CD install.

http://support.microsoft.com/default.aspx?...;EN-US;q288344& (http://\"http://support.microsoft.com/default.aspx?scid=KB;EN-US;q288344&\")
Title: Windows 2000 unnatended with drivers on CD
Post by: edmon_cu on December 31, 2002, 09:58:52 PM
Yep. Me too. I heard, its not possible to do a bootable CD install with mass storage drivers.

/sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />

I have tried it and I still got errors with TXTSETUP.OEM during the loading of the drivers at the initial part of the installation.
Title: Windows 2000 unnatended with drivers on CD
Post by: Ed Ziots on January 02, 2003, 11:56:47 PM
I have successfully created a Win2k Server CD with SP2 integrated, and tried it at home on my PC, works a charm. What I cannot get to work is all the hotfixes I want to install also.

Lets say I have 10 hotfixes to installed.

Q1.exe
 through Q10.exe

Do I create a $OEM$ folder off the root of my bootable CD and put a cmdlines.txt file in this folder, with the following statements?

.Q1.exe -q -z -m
.Q2.exe -q -z -m
..
..
.
.
.
..
.qchain.exe

Or do I need the . or what?

I tried putting a svcpack folder under the I386 folder, and then deleting svcpack._IN file like the Service pack deploy document called for, I created a new svcpack.inf file and put it in the svcpack folder. The dosnet.inf file was updated with a svcpack section.

How do you add all the hotfixes you want to run from the Bootable CD- and install correctly, and run qchain.exe afterwards, then reboot. I am trying to get my setup clean, so I can roll out additional Compaq Servers via Smart Start SSD CD in future.

Please reply to [email protected]

Thanks,
Ed
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on March 13, 2003, 09:21:10 PM
How did you modify the
TXTSETUP.SIF and DOSNET.INF?  
I have wanted to include drivers in the install so windows will detect them itself.   I have been successful with IBM ServeRAID 4Lx but failed with 2 nic\'s, audio and usb.
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on March 13, 2003, 10:05:37 PM
Check this out...
http://www-1.ibm.com/support/docview.wss?uid=psg1MIGR-39827 (http://\"http://www-1.ibm.com/support/docview.wss?uid=psg1MIGR-39827\")
Title: Windows 2000 unnatended with drivers on CD
Post by: Anonymous on March 14, 2003, 02:36:08 AM
I managed to modify the txtsetup.sif, dosnet.inf & layout.inf so that my Promise RAID drivers are detected at CD boot time. I can now partition my HDD from the Win2000 boot CD.

But I get a \'800b0003\' fatal error message regarding the product catalogs (*.CAT files?) in GUI boot mode, just after the \"Win2000 built on NT\" splash screen.

What modifications would  I need make to avoid this annoyance?

Any help appreciated.
Title: Windows 2000 unnatended with drivers on CD
Post by: DeeJay on March 17, 2003, 05:30:56 PM
Did you put the \"driversmatrox; driversHercules\" directories in $OEM$$1 or in the $OEM$ directory?
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on March 24, 2003, 12:05:58 AM
in Reply to:


But I get a \'800b0003\' fatal error message regarding the product catalogs (*.CAT files?) in GUI boot mode, just after the \"Win2000 built on NT\" splash screen.

What modifications would I need make to avoid this annoyance?

You need to preinstall the .cat files. Use the same procedure that is used for installing the .cat files for slipstreamed hotfixes.

  • Copy the .cat files into the I386svcpack directory.
  • Add each filename to the [ProductCatalogsToInstall] section in svcpack.inf.


This will install the catalog into your %SystemRoot%system32CatRoot folder with all the other catalogs. One thing to note is that if your infs are renamed to oem#.inf when installed, then the catalogs are installed with a capital .CAT extension. I have posted about his before. I cant recall if its required to make it work.

For example, my svcpack.inf looks like:

[Version]
Signature=\"$Windows NT$\"
BuildNumber=2195
MajorVersion=5
MinorVersion=0

[SetupData]
CatalogSubDir=\"i386svcpack\"

[ProductCatalogsToInstall]
dxnt.CAT
dxbda.CAT
Q322842.cat
q323172.cat
Q326830.cat
Q326886.cat
ich2br.CAT
ich2core.CAT
ich2smb.CAT
ich2usb.CAT
IATA3000.CAT
ISD.CAT
oeexcep.CAT
ieexcep.CAT
scripten.CAT

[SetupHotfixesToRun]
Q322842.exe -u -n -z -q
Q323172.exe -u -n -z -q
Q326830.exe -u -n -z -q
Q326886.exe -u -n -z -q
RegDlls.bat

and RegDlls.bat (also in I386svcpack) looks like:

@ECHO OFF
TITLE Dll Registration
ECHO.Registering Dlls . . .
%SystemRoot%System32regsvr32.exe /s msvbvm60.dll
REM %SystemRoot%System32dxdllreg.exe
ECHO.Done.
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on March 24, 2003, 12:20:17 AM
If you want to use the OEMPreinstall facility then the drivers have to be copied to the hard drive during setup because %systemroot% is prepended to each of the paths in OEMPnPDriversPath (This of course just adds these to the Source registry key). So they are in $OEM$$1. $1 is copied to your C: drive or whatever.

D:spCD>dir /B /S /A:D $OEM$$1Drivers
D:spCD$OEM$$1DriversASPI
D:spCD$OEM$$1DriversHercules
D:spCD$OEM$$1DriversIntelATA
D:spCD$OEM$$1DriversIntelNIC
D:spCD$OEM$$1DriversIntelSEC
D:spCD$OEM$$1DriversMatrox
D:spCD$OEM$$1DriversASPIDocs
D:spCD$OEM$$1DriversASPIinclude
D:spCD$OEM$$1DriversIntelATAbak
D:spCD$OEM$$1DriversIntelNICWindows
D:spCD$OEM$$1DriversIntelNICWindowsDrivers
D:spCD$OEM$$1DriversIntelNICWindowsDriversIA32
D:spCD$OEM$$1DriversIntelSECWin2000
D:spCD$OEM$$1DriversIntelSECWin98
D:spCD$OEM$$1DriversIntelSECWinMe


With the winnt.sif entries like:

   OemPreinstall=Yes
    OemFilesPath=\"..$OEM$\"
    OemPnPDriversPath=\"DriversMatrox;DriversIntelNIC;DriversHercules\"
    DriverSigningPolicy=Ignore
    ;;NonDriverSigningPolicy=Ignore
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on March 24, 2003, 01:41:17 AM
In reply to:

How did you modify the
TXTSETUP.SIF and DOSNET.INF?
I have wanted to include drivers in the install so windows will detect them itself. I have been successful with IBM ServeRAID 4Lx but failed with 2 nic\'s, audio and usb.

Use OemPnpDriversPath for the audio, nics and usb. For the raid, well here is what I did for the intel drivers. Read the posts above about the txtsetup.oem file which contains all this info in a different form.

DOSNET.INF, added these lines at the end of the sections:

[FloppyFiles.3]

d1,IdeBusDr.sys
d1,IdeChnDr.sys

[Files]

d1,IdeBusDr.sys
d1,IdeChnDr.sys
d1,IPrtCnst.dll
d1,IdeChnDr.inf
d1,diactfrm.inf
d1,dmusic.inf
d1,dplay.inf
d1,dsound.inf
d1,dxnt.inf
d1,dxbda.inf
d1,dxdllreg.inf
d1,dxntunp.inf
d1,dxver.inf
d1,ksreg.inf



TXTSETUP.SIF, these sections have the following lines, I did not add all these lines. I give them only to show the order:


[SourceDisksNames.x86]
1   = %wkscd%,cdrom_ip.5,,i386
2    = %spcd%,cdromsp3.tst,,i386,1
3    = \"Intel Application Accelerator Driver\",idebusdr.sys,,i386,1
_1   = %wks1%,disk101,,\"\"
_2   = %wks2%,disk102,,\"\"
_3   = %wks3%,disk103,,\"\"
_4   = %wks4%,disk104,,\"\"
1_   = %wks1%,disk101,,\"\"
2_   = %wks2%,disk102,,\"\"
3_   = %wks3%,disk103,,\"\"
4_   = %wks4%,disk104,,\"\"

[SourceDisksFiles]

yahoo.bmp    = 1,,,,,,,,3,3      
zapotec.bmp  = 1,,,,,,,1,3,3
complus.flg  = 1,,,,,,,2,0,0,~clbcatq.dll
IdeBusDr.sys = 3,,,,,,4_,4,1
IdeChnDr.sys = 3,,,,,,4_,4,0,0
IPrtCnst.dll = 3,,,,,,,2,0,0
IdeChnDr.inf = 3,,,,,,,20,0,0
dxnt.inf     = 2,,,,,,,20,0,0
dxbda.inf    = 2,,,,,,,20,0,0
dxdllreg.inf = 2,,,,,,,20,0,0
diactfrm.inf = 2,,,,,,,,3,3
dmusic.inf   = 2,,,,,,,,3,3
dplay.inf   = 2,,,,,,,,3,3
dsound.inf   = 2,,,,,,,,3,3
dxntunp.inf  = 2,,,,,,,,3,3
dxver.inf    = 2,,,,,,,,3,3
ksreg.inf    = 2,,,,,,,,3,3

[HardwareIdsDatabase]
1394609E&10483 = \"sbp2port\"
GenDisk = \"Disk\",{4D36E967-E325-11CE-BFC1-08002BE10318}
GenOptical = \"Disk\"
GenCdRom = \"CdRom\"
SCSIWormSONY____CD-R___CDU920S__ = \"CdRom\"
GenFloppyDisk = \"flpydisk\"
PCIVEN_8086&DEV_244B&CC_0101 = \"IdeBusDr\"
PCIVEN_8086&DEV_1230 = \"intelide\"
PCIVEN_8086&DEV_7010 = \"intelide\"
PCIVEN_8086&DEV_7111 = \"intelide\"
PCIVEN_8086&DEV_2411 = \"intelide\"
PCIVEN_8086&DEV_2421 = \"intelide\"
PCIVEN_8086&DEV_7199 = \"intelide\"
PCIVEN_105A&DEV_4D33 = \"pciide\"
PCICC_0101 = \"pciide\"
I_Primary_IDE_Channel = \"IdeChnDr\"
I_Secondary_IDE_Channel = \"IdeChnDr\"
*PNP0600 = \"atapi\"

[SCSI.Load]
cpqarray = cpqarray.sys,4
IdeChnDr = IdeChnDr.sys,4
atapi = atapi.sys,4
ncrc710 = ncrc710.sys,4

[BusExtenders.Load]
pcmcia   = pcmcia.sys
IdeBusDr = IdeBusDr.sys
pciide   = pciide.sys

[files.pci]
pci.sys,4

[files.IdeBusDr]
IdeBusDr.sys,4

[files.pciide]
pciide.sys,4
pciidex.sys,4

[BusExtenders]
pcmcia   = \"PCMCIA Support\",files.pcmcia,pcmcia
IdeBusDr = \"Intel® 82801BA Ultra ATA Controller\",files.IdeBusDr,IdeBusDr
pciide   = \"PCI IDE Bus Driver\",files.pciide,pciide

[SCSI]

ipsraidn = \"IBM ServeRAID Adapter\"
IdeChnDr = \"Intel® Ultra ATA Controller\"
atapi    = \"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller\"
ini910u  = \"Initio Ultra SCSI Host Adapter\"



For reference, IdeBusDr.sys is a BootBusExtender and IdeChnDr.sys is a SCSI Miniport driver.
Title: Windows 2000 unnatended with drivers on CD
Post by: DeadHamster on March 24, 2003, 08:22:46 AM
jimmy, I noticed you integrated some drivers into the boot cd to skip the F6 screen without having to use MassStorageDrivers or OEMBootFiles.  I am also trying to do this, but having a bit of trouble.  I tried to integrate some recent adaptec drivers for various scsi cards by modifying where appropriate in [SourceDiskFiles], [scsi.load] and [scsi].  This worked fine in getting me past the text mode portion of the install, but when windows reboots and shows the splash screen, it BSOD\'s and gives me innaccesible boot device.  Any idea if I missed something?  I know I did not include the [HardwareIdsDatabase] portion because the adaptec txtsetup.oem did not have the entries.  Though I would have expected that to be a problem during text mode setup if it were going to be a problem at all.
Title: Windows 2000 unnatended with drivers on CD
Post by: DeeJay on March 24, 2003, 04:08:09 PM
Where does the svcpack.inf file go? In the i386 or in the svcpack directory? Does it work the same way for windows XP? I can\'t find the svcpack directory on my windows XP cd.
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on March 25, 2003, 12:36:03 AM
DeadHampster,

First are you sure its using your drivers to acces the drives during TextMode... On mine it says during boot, \"loading multi(0)disk(0)rdisk(0)partition(1) on IdeChnDr 0...\" or something like that right before it searches the drives.  Without the HardwareId, I dont see how it could select them. But it might just load everything in the list. Anyway you should definately include the hardwareID.

For GUI mode, Are your .sys files copied to system32Drivers? Check your drive to see if they are there. Check the SYSTEMServices key for your drivers to see if they look as they should. The key is setup up by windows from your entries in [SCSI] and [SCSI.load] at the very end of textmode when it says \'saving current configuration\'. It is used to boot from during guimode. Just a note, during CD-ROM boot, windows uses the SYSTEMServices key in SETUPREG.HIV in the I386 folder. It loads all the drivers including ones specified in TXTSETUP.INF. At the end of T-mode, the registry is then saved to the system32config folder as well as backups saved with the \'.sav\' extensions. so you can always see what happened at the end of T-mode by loading these hives.

If any of the driver filenames are the same as any windows drivers then you are out of luck (unless you can rename the files?). This is because it will check them against the windows catalog signature file (sp3.cat) for the windows driver with the same name and it will fail and the file will be replaced by sfc.exe if it even boots which it may not and might be your BSOD. One example is adpu160m.sys. It cant even be used in [MassStorageDrivers].

There are other possible reasons but these come foremost to my mind right now.
Title: Windows 2000 unnatended with drivers on CD
Post by: DeadHamster on March 25, 2003, 08:23:22 AM
Actually, I did get it working.  It will work through text mode even without the hardwareID\'s, but it dies when it gets to gui mode.  But, I forget to look in the .inf instead of the txtsetup.oem for the ID\'s, so I found them when I went in there for something else.  I got my adaptec 19160 integrated with no trouble, so now I will tackle updating the windows drivers to the latest version.  Thanks for the info though.

-DH
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal on April 04, 2003, 09:41:14 PM
jiimmy,

Do you have any links that discuss integrating Mass Storage Device drivers into the Win2k source files? I am wanting to find more reading on the topic.

And I think you mentioned but didn\'t discuss (unless I missed it) integrating hotfix updates directly into the source files?

Thanks for the great info.

- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal on April 07, 2003, 05:22:53 PM
I found info on the slipstreaming of hotfixes here:
http://www.bink.nu/bootcd/sliphf.htm (http://\"http://www.bink.nu/bootcd/sliphf.htm\")

I did have one question. After I edit the DOSNET.INF and TXTSETUP.SIF files to include my SCSI RAID card. Where do I put the actual files? in the root of i386? I did that, and during text mode setup, it says it can\'t find the SYS file for the SCSI.

Thanks,
- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal on April 09, 2003, 10:59:16 AM
QUOTE:
\"If any of the driver filenames are the same as any windows drivers then you are out of luck (unless you can rename the files?). This is because it will check them against the windows catalog signature file (sp3.cat) for the windows driver with the same name and it will fail and the file will be replaced by sfc.exe if it even boots which it may not and might be your BSOD. One example is adpu160m.sys. It cant even be used in [MassStorageDrivers]. \"

You might want to look at this page. It discusses how to force the file to be copied and used. That way you can use the new updated file.

http://www.jsifaq.com/SUBM/tip6400/rh6483.htm (http://\"http://www.jsifaq.com/SUBM/tip6400/rh6483.htm\")

- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal2 on April 12, 2003, 09:55:28 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
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal2 on April 16, 2003, 09:24:48 AM
Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

Thanks,
- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on April 16, 2003, 10:45:07 AM
[quote name=\'Jazkal2\' date=\'Apr 16 2003, 08:24 AM\']Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

Thanks,
- Jazkal[/quote]
 i am also looking for some tutorial for this... i've been trying this for 2 days now and it still doesn't work  /sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal2 on April 17, 2003, 08:23:49 AM
[quote name=\'Guest\' date=\'Apr 16 2003, 09:45 AM\']i am also looking for some tutorial for this... i've been trying this for 2 days now and it still doesn't work  /sad.gif\' class=\'bbc_emoticon\' alt=\':(\' />[/quote]
 I know how you feel, I've been trying it off and on when i have time, and I just can't get it to work. I've searched all over the Net, and this thread is the only source of information that I can find on this.

- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on April 21, 2003, 04:58:00 AM
I am looking for the same thing. I was trying to email jiimmy but his email is only accesible for registered users. I guess i am going to have to register  /biggrin.gif\' class=\'bbc_emoticon\' alt=\':D\' />

Anytway, i want to add mass storage drivers to the I386 directory because I want to make a universal cd that can be used with highpoint, promise and sillicon image controllers and both with and without bootdrives on those controllers.
Title: Windows 2000 unnatended with drivers on CD
Post by: Jens on April 28, 2003, 12:49:48 PM
For anyone of you who is able to understand german i can recommend the following site: http://www.winhelpline.info/daten/index.ph...hp?shownews=486 (http://\"http://www.winhelpline.info/daten/index.php?shownews=486\") for building your own winxp cd. Hope that will help you.  /wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal2 on April 28, 2003, 05:19:03 PM
[quote name=\'Jens\' date=\'Apr 28 2003, 11:49 AM\']For anyone of you who is able to understand german i can recommend the following site: http://www.winhelpline.info/daten/index.ph...hp?shownews=486 (http://\"http://www.winhelpline.info/daten/index.php?shownews=486\") for building your own winxp cd. Hope that will help you.  /wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />[/quote]
 For those of us (me included) that can't read German, try this google translation:

Google Translation - German to English (http://\"http://translate.google.com/translate?u=http%3A%2F%2Fwww.winhelpline.info%2Fdaten%2Findex.php%3Fshownews%3D486&langpair=de%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools\")

I'm still trying to understand the translation  /blink.gif\' class=\'bbc_emoticon\' alt=\':blink:\' />

- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: Jazkal2 on April 29, 2003, 12:16:51 PM
How SWEET it is . . .

I was finally able to figure it out with that german site as a guide. They didn't cover everything, but the combination of the site and this forum thread, I was able to get it to work.

I'm writing up a step by step guide that will cover everything from start to finish. I'll post a link once it's done.

This makes installing to a SCSI drive so much easier than messing with TXTSETUP.OEM files.

- Jazkal
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on May 01, 2003, 01:08:18 AM
In reply to:
>
> jiimmy,
>
>
>
> i found your description about implementing
> mass-storage drivers to a w2k cd for the unattended
> installation. I have modified the txtsetup.sif file
> but w2k hangs during TEXTMODE without displaying any
> error.
> I modified the following section of the txtsetup.sif
> file and copied the driver files *.sys to the I386
> folder.
> Deleted existing *.sy_ driver files.
>
> ************TXTSETUP.SIF**********************
> [SourceDisksFiles]
> ;dac960nt.sys = 1,,,,,,4_,4,1
> dac960nt.sys = 1,,,,,,_x,4,1
> mraid35x.sys = 1,,,,,,_x,4,1
> etc.
>
> [HardwareIdsDatabase]
> PCI\VEN_1069&DEV_0001 = \"dac960nt\"
> PCI\VEN_1069&DEV_0002 = \"dac960nt\"
> PCI\VEN_1069&DEV_0010 = \"dac960nt\"
> PCI\VEN_1069&DEV_0010&SUBSYS_00101069 = \"dac960nt\"
> PCI\VEN_1069&DEV_BA55&SUBSYS_BA551069 = \"dac960nt\"
> PCI\VEN_1011&DEV_1065&SUBSYS_00201069 = \"dac960nt\"
> PCI\VEN_101E&DEV_9010 = \"mraid35x\"
> PCI\VEN_101E&DEV_9060 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0438101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0466101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0467101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_0490101E = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_04671028 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11111028 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10C6103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10C7103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CC103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CD103C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11111111 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_11121111 = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_03A2113C = \"mraid35x\"
> PCI\VEN_8086&DEV_1960&SUBSYS_10CC103C&REV_09 =
> \"mraid35x\"
> etc.
>
> [SCSI.LOAD]
> dac960nt = dac960nt.sys,4
> mraid35x = mraid35x.sys,4
> etc.
>
> [SCSI]
> dac960nt = \"Mylex DAC1100/DAC960PG/PJ/PR/PT/PTL1/PRL
> Series Controller\"
> mraid35x = \"HP NetRAID-xSi RAID Controller Driver\"
> etc.
>


where in textmode is it hanging? after loading what driver? slow the cpu down if you have to to see it.

Did you delete any duplicate hardwareID references?

Are those drivers actually SCSI Miniports? or are they boot bus Extenders?

You know you can find all this information by installing the drivers and looking at the associated services key. Its all there.

maybe try getting just one hardwareID to work first? With repeatable tests like this elimination is usefull, at least i find it to be.
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on May 01, 2003, 02:06:18 AM
[quote name=\'Jazkal2\' date=\'Apr 16 2003, 10:24 AM\']Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

Thanks,
- Jazkal[/quote]
This may be helpfull...

I think the format for the [SourceDiskFiles] section is, in part:

filename = SourceDisk,,,,,,SourceDisk(Other),DestDir,,

SourceDisk and DestDir are found at the top of TXTSETUP.INF. You just copy the key for the appropriate directory in the [SourceDiskNames] and [WinntDirectories] sections. you get too CHOOSE. you can even create a new entry like i did above with \"Intel Application Accelerator\".

The DestDir is determined by where the file needs to go. Generally this can be found in an inf file. If you have to, install the drivers and find out where all the files go. Then enter the appropiated key for the directories from the [WinntDirectories] section. For Example \"4\" is System32\drivers.

As another note, If i remember, the DRVINDEX.INF file holds the names of all the windows base drivers, service pack drivers, etc.. These drivers are checked against the sp3.cat and what not and i dont think its necessary to modify this file.

** On second thought, removing lines from this file might serve some purpose...
 
If you have trouble loading the drivers during setup?.. could be many things. If the driver needs special registry settings then you need to enter them by hand in the SETUPREG.HIV file. The drivers i did worked fine without pre-entering the reg info so i just left it out, but this was just an IDE driver. You can check to see what the proper reg info is by installing the drivers and looking at the services key. But this info can also be found from the installation inf or more appropriately from a supplied txtsetup.oem, which contains all necessary info to boot with the drivers.  

In fact one check i used when getting mine to work was making sure that all the information that was in my txtsetup.oem file had somehow been entered into TXTSETUP.INF (or in SETUPREG.HIV i suppose). This may or may not be easy because the data formats are different. Now i remember i think I did at one point do a search on txtsetup.oem format to help parse it... yeah here it is. Check this out:

http://msdn.microsoft.com/library/en-us/in...tsetup_1wmq.asp (http://\"http://msdn.microsoft.com/library/en-us/install/hh/install/txtsetup_1wmq.asp\")
Title: Windows 2000 unnatended with drivers on CD
Post by: jiimmy on May 01, 2003, 07:14:41 PM
I just wanted to mention that i found WinstallLE extremely usefull for stuff like this (its on the win2k CD under VALUEADDrd Party).  It tracks files installed by software as well as any registry changes made. so it basically gives you everything the software needs to be \"installed\", so you can in theory slipstream anything in this fashion.  

For those interested, the windows registry setup is also located in TXTSETUP.SIF and its easy to modify.  Below is what I did to integrate the (modifiied) direct x infs:

Code: [Select]
[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
AddReg = diactfrm.inf,add.reg
AddReg = dmusic.inf,add.reg
AddReg = dmusic.inf,add.dx8reg
AddReg = dplay.inf,add.reg
AddReg = dsound.inf,DirectSound.AddReg
AddReg = dxntunp.inf,add.reg
AddReg = dxver.inf,D3D_Retail
AddReg = dxver.inf,add.reg
AddReg = ksreg.inf,PlugInRegistration
AddReg = ksreg.inf,DeviceRegistration
AddReg = dxver.inf,Win2K_Drivers32
AddReg = dxver.inf,BDA_InstallDevices
AddReg = dxver.inf,add.dxsetup

[HiveInfs.Fresh.RemoteBoot]
AddReg = hivesys.inf,AddReg.RemoteBoot

[HiveInfs.Upgrade]
DelReg = hivedef.inf,DelRegFirst
DelReg = hivesft.inf,DelRegFirst
AddReg = hivedef.inf,AddReg
DelReg = hivedef.inf,DelReg
AddReg = hivesys.inf,AddReg
DelReg = hivesys.inf,DelReg
AddReg = hivesys.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg.Upgrade
AddReg = hivesft.inf,AddReg
DelReg = hivesft.inf,DelReg
AddReg = hivecls.inf,AddReg
DelReg = hivecls.inf,DelReg
AddReg = hiveusd.inf,AddReg
AddReg = wsh.inf,AddReg.WSH
AddReg = dmreg.inf,DM.AddReg
DelReg = dmreg.inf,DM.DelReg

The only catch is that the inf parsing engine is not as \"smart\" as the normal win2k parser is (setupapi.dll i think). For example, it only substitutes variables in the keys and not in the values. and it is worse with quotes; the infs that came with directX would generate errors so they had be modified to get it to work. For directX, it was rather intractable so I made some batch files to automate it.

Here are some speculations of mine about the creation of the registry during setup:

When textmode first starts it loads the registry from SETUPREG.HIV which is in the bootsector, with all the other files listed in DOSNET.INF; when installing using the temporary drive option the bootsector is created in a folder name $WIN_NT$.~BT on the system partition. Setup then begins copying all the files specified in the [Files] section of DOSNET.INF to the temporary folder (something like $WIN_NT$.~LS). After copying the files it then adds the registry data specified in the [HiveInfs.Fresh] section of TXTSETUP.SIF. And then it saves the registry, as well as a backup, to the system32\config folder and there is your registry (So the hives with the .sav extension, which are the system backup, are just a copy of the registry at the end of textmode setup). Next time it starts it will boot from the temporary folder and load the registry from the config folder just like normal.

*** Actually, Im not sure what I was thinking in the last paragraph but I mixed something up and I want to correct it.

Textmode copies the files from the local distribution (or cd) as specified in TXTSETUP.SIF not DOSNET.INF. My bad. Among other things, DOSNET.INF describes whats in the distribution share or cd and is used by winnt32.exe /tempdrive to create the remote or local distribution (and bootsector image in the appropriate place).
Title: Windows 2000 unnatended with drivers on CD
Post by: Ausmith1 on May 06, 2003, 12:06:30 PM
OK, after reading the steps described in other posts I finally got one driver added to my Win2K Server CD, here is a very basic step by step of how I how I did it.
Plese keep in mind that what I got to work may not be the optimium way of doing it and that I may have included extra steps that are unnecessary, as I have to time to debug every possible scenario I will pare the process down to the mimimium steps required...

For this example I first created a slipstreamed SP3 Win2k Advanced Server ISO with the great Windows CD compiler script available @
http://berns.cae.wisc.edu/pages/wincdman.asp (http://\"http://berns.cae.wisc.edu/pages/wincdman.asp\")

In the following example we will add the VMWare SCSI drivers for a VMWare 4.0 Workstation

1) Obtain the latest version of the drivers from
http://www.vmware.com/download/downloadscsi.html (http://\"http://www.vmware.com/download/downloadscsi.html\")

2) Copy the expanded contents of the driver disk to \$OEM$\$1\Temp\Drivers\SCSI\VMWare

3) Add the path \"Temp\Drivers\SCSI\VMWare;\" to the WinNT.Sif file on floppy

4) Copy the file vmscsi.sys to \i386

5) Edit the file \i386\TxtSetup.Sif with the following changes taken from the txtsetup.oem & vmscsi.inf files

In the section [SourceDisksFiles.x86] add the line
vmscsi.sys = 1,,,4_,4,1,,1,4

In the section [HardwareIdsDatabase] add the line
PCI\VEN_104B&DEV_1040 = \"VMscsi\"

In the section [SCSI.Load] add the line
VMSCSI = vmscsi.sys,4

In the section [SCSI] add the line
VMSCSI = \"VMware SCSI Controller\"

6) Edit the file \i386\DrvIndex.Inf with the following changes

In the section [driver] add the line
vmscsi.sys

7) Edit the file \i386\HIVESYS.INF with the following changes

In the section [AddReg] add the lines
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\",\"ErrorControl\",0x00010003,1
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\",\"Group\",0x00000002,\"SCSI miniport\"
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\",\"Start\",0x00010003,4
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\",\"Tag\",0x00010003,259
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\",\"Type\",0x00010003,1
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters\",,0x00000012
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters\Device\",\"NumberOfRequests\",0x00800003,128
HKLM,\"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters\PnpInterface\",\"5\",0x00010003,1
HKLM,\"SYSTEM\CurrentControlSet\Services\EventLog\System\VMscsi\",\"EventMessageFile\",0x00020002,\"%SystemRoot%\System32\IoLogMsg.dll\"
HKLM,\"SYSTEM\CurrentControlSet\Services\EventLog\System\VMscsi\",\"TypesSupported\",0x00010003,7


Recompile the ISO file and you should now have a CD that will recognise the SCSI adapter in a VMWare 4.0 workstation session.

Notes: I'm not sure if steps 2, 3 & 6 are really necessary, I put them in just to be sure it would work...
Also in my winnt.sif file I added the following line in the [Unattended] section
DriverSigningPolicy=Ignore
See
http://support.microsoft.com/default.aspx?...b;EN-US;q250380 (http://\"http://support.microsoft.com/default.aspx?scid=kb;EN-US;q250380\")
for why this must = Ignore

I am still trying to get my Compaq Smart Array 5i drivers to work in this fashion, AFAIK I have everything entered correctly but the system BSODs as soon as it enters GUI mode... Anyone else got this card to work?
I have starting on adding the following cards to my boot CD
IBM ServeRAID 5i
LSI Logic SYMMPI SCSI/FC / Apple FC HBA (Same driver)
Emulex LP950
If I can get all of these to work then I be very happy /tongue.gif\' class=\'bbc_emoticon\' alt=\':P\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: muhi on May 07, 2003, 01:25:23 PM
During the windows installation, i have the choice to create partitions.  The next Phase is to format the new partitions with ntfs. After that, the setuproutine copies files into the harddisk without reboot.

During the setup, i would create two partitions.

The first one with Fat, for Dualbooting (100 MB, Primary Partition, active)
The second with NTFS (6 GB, Primary Partition, Systempartition)

Does anybody know a tool, that can format ntfs, wich is usable in batchfiles, and dont need reboot to have access to the partition, like the setuproutine in w2k/xp?
Title: Windows 2000 unnatended with drivers on CD
Post by: Ausmith1 on May 07, 2003, 01:34:07 PM
You could use WinPE and the DiskPart tool from MS.
It's not exactly what you are looking for I think but AFAIK it's the only tool that will easily create NTFS partitions...
Title: Windows 2000 unnatended with drivers on CD
Post by: krazykulguy on May 07, 2003, 05:51:11 PM
I see this thread is about unnatended installs, but it also has good information about how to intergrate the masstorage with out using txtsetup.oem on a floppy.

1.my goal is not a unnatended install but just to have my siliconimage SATA drivers on and listed just like other masstorage drivers on the defult list when I press F6. all because I don't have a floppy drive(or want one).

2.or just to get only past the massorage part of setup, forcing only that SATA driver to install and then let me continue the install nomaly. making the CD only good for this computer. and doing this with out a floppy.

can you please point me to some guides to do this. The only thing I did so far was to read a guide on how to slipstream sp1 on XP pro CD.

# 1 would be nice(so far looks very hard to do)
# 2 is what I most likely will do if it works with out a floppy.
Title: Windows 2000 unnatended with drivers on CD
Post by: Ausmith1 on May 08, 2003, 11:00:19 PM
I just found some interesting threads on Google about a Microsoft recommended solution for adding 3rd party drivers to the CD. Read @

http://groups.google.com/groups?q=txtsetup...sftngp10&rnum=1 (http://\"http://groups.google.com/groups?q=txtsetup.sif&hl=en&lr=&ie=UTF-8&oe=utf-8&selm=uLZWbm%24VCHA.1700%40tkmsftngp10&rnum=1\")

&

http://groups.google.com/groups?hl=en&lr=&...0.phx.gbl#link3 (http://\"http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&frame=right&th=72292c2957751060&seekm=u8Cc94UCDHA.2376%40TK2MSFTNGP10.phx.gbl#link3\")

It's pretty much just as jiimmy has described here before...
Title: Windows 2000 unnatended with drivers on CD
Post by: Ausmith1 on May 11, 2003, 02:01:11 PM
In the post I posted in this thread a few days ago I had some errors that will cause the bootable CD to not work, how exactly it worked on my system with these errors is not something that I have not figured out yet...
Anyway I figured out the right way of getting it to work and have posted the how-to on my web site @

http://patrick.naoise.com/articles/windows/bootablecd/ (http://\"http://patrick.naoise.com/articles/windows/bootablecd/\")
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on May 14, 2003, 08:12:47 AM
For making a Win 2000 installation without Internet Explorer and the Virus grabber Outlook Express etc.
http://home.earthlink.net/~vorck/ (http://\"http://home.earthlink.net/~vorck/\")

For making bootable cd's
http://www.nu2.nu/bootcd/ (http://\"http://www.nu2.nu/bootcd/\")

 /biggrin.gif\' class=\'bbc_emoticon\' alt=\':D\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: mrrolf on June 17, 2003, 10:03:51 AM
Hi all.

I'm trying to make a unattended w2k install cd.  I need to load a scsi driver in the textmode part.  After reading many articles and this thread, I feel confident that I can do this.  But I have a little twist on the install.  I need to have the Winnt.sif and scsi drivers on a floppy.  The drivers will change frequently, and I would like to only have one CD and use the floppy to store and update drivers on.
Here is what I've done so far (even though it doesn't work):

Winnt.sif---

[Unattended]
    UnattendMode=FullUnattended
    DriverSigningPolicy=Ignore
    OemPnPDriversPath=\"A:\\"
    OemSkipEula=Yes
    OemPreinstall=YES
    TargetPath=\WINDOWS
    Repartition=Yes
    UnattendSwitch=\"Yes\"
    WaitforReboot=\"No\"

[MassStorageDrivers]
    \"RAID SCSI Controller Driver\"=\"OEM\"

[OEMBootFiles]
    raid.cat
    raid.pdb
    raid.sys
    NODEV.INF
    OEMSETUP.INF
    TXTSETUP.OEM

<\snip>

Then I have all the driver files in my a:\ directory.

When I start the install, I get the error: \"File txtsetup.oem caused an unexpected error (18) in line 1041 of ...\"

I have changed txtsetup.oem over and over, and still get the same message.  I have even taken txtsetup.oem off the floppy and still get the same message.  I assume the install isn't finding txtsetup.oem.

Is there anyway to do an unattended install and have your 3rd party drivers on a floppy?

Thanks

Robbie
Title: Windows 2000 unnatended with drivers on CD
Post by: Dan on July 22, 2003, 04:36:13 PM
Whilst a little late (like 7 months). I think I have found a solution to the problem of getting Win2K to detect OEM Mass Storage Devices on setup.

You need to edit the default txtsetup.sif file in the \i386 dir before you write it to the CD. I think that this will only work for PnP drivers tho'

Modify as follows:

under:

[SourceDisksFiles] ;add
driver.sys   = 1,,,,,,_x,4,1

where driver.sys is the name of your OEM driver

under:

[SCSI] ;add
<driver>  = "Description pulled from TXTSETUP.OEM supplied by oem"

where <driver> is the name of your drivers (without the .sys)

under:

[SCSI.Load]  ;add
<driver>  = driver.sys

replace <driver> and driver.sys as above

under:

[HardwareIdsDatabase]  ;add
"PCI\VEN_........" = <driver>

this line (the bit beginning with "PCI\VEN") is also supplied by the txtsetup.oem from your oem

Lastly - copy your driver.sys file to the \i386 dir

See how you get on - this has worked for me on 2 different drivers so....

The only reason I say it needs to be a PNP driver is that you also need to add the drivers under the $OEM$\$1\ dir structure, so that it is automatically detected in GUI portion of setup (I think) - otherwise, you will get through text mode, but no further.

Regards,

Dan
Title: Windows 2000 unnatended with drivers on CD
Post by: Bredvig on July 28, 2003, 08:23:05 AM
This here link will solve a lot of your problems in solving your slipstreaming and adding of files problems.

This little program will enable you to :

Copy CD install(s) to temporary location.
Slip Stream service pack into installation.
Extract hot-fixes and service packs.
Remove irrelevant hot-fix files.
Integrate hot-fix files into CD install.
Recompile necessary cabinet files.
Extract the disk boot images (if multi-boot).
Edit the disk boot images (if multi-boot).
Remove setup prompt for CD-Key (if desired and possible).
Find any duplicate files (i.e. TEST.EX_ and TEST.EXE)
Compress any new files.
Create the ISO image.
Burn the CD with a working boot sector.


Really THE solution.

Best Regards

Thomas Bredvig
Title: Windows 2000 unnatended with drivers on CD
Post by: StRob on July 31, 2003, 04:37:33 PM
I have used Dan's solution and it seems to be the only one of the many I have tried that worked for me.

The only piece I needed to do a little differently was where he said
"
[SCSI.Load] ;add
<driver> = driver.sys

replace <driver> and driver.sys as above
"

I needed to do
<driver> = driver.sys, 4

The scsi I was using was the Adaptec Ultra 320 (ADPU320) and his solution worked wonder for me.  Thanks Dan.
Title: Windows 2000 unnatended with drivers on CD
Post by: Brad Willsey on August 23, 2003, 01:46:07 PM
[quote name=\'Bredvig\' date=\'Jul 28 2003, 07:23 AM\']This here link will solve a lot of your problems in solving your slipstreaming and adding of files problems.

This little program will enable you to :

Copy CD install(s) to temporary location.
Slip Stream service pack into installation.
Extract hot-fixes and service packs.
Remove irrelevant hot-fix files.
Integrate hot-fix files into CD install.
Recompile necessary cabinet files.
Extract the disk boot images (if multi-boot).
Edit the disk boot images (if multi-boot).
Remove setup prompt for CD-Key (if desired and possible).
Find any duplicate files (i.e. TEST.EX_ and TEST.EXE)
Compress any new files.
Create the ISO image.
Burn the CD with a working boot sector.


Really THE solution.

Best Regards

Thomas Bredvig[/quote]
 Did Anyone Else Notice there is no link?
Title: Windows 2000 unnatended with drivers on CD
Post by: Carl B on August 26, 2003, 11:42:53 AM
[quote name=\'Anonymous\' date=\'Dec 9 2002, 08:07 PM\']so how do you slipstream IE 6.1 on the setup CD as well?[/quote]
 Has this been answered, it would be a great help to have IE6.0 SP1 slipstreamed as well
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on August 28, 2003, 02:07:19 AM
@ Brad Wilsey,

Check this site
http://berns.cae.wisc.edu/pages/wincdman.asp (http://\"http://berns.cae.wisc.edu/pages/wincdman.asp\")

Have fun!
Title: Windows 2000 unnatended with drivers on CD
Post by: Lanthanide on September 20, 2003, 02:06:47 AM
Ok, the a: on my computer isn't working for some reason (no idea why), but that isn't important.

The important thing is that I need to reinstall windows XP using a RAID driver, specifically the ones that work on the Intel ICH5R south-bridge on my 865-based MSI board (Neo2).

This is difficult when pressing F6 to choose drivers from a floppy disk doesn't help, because it can't read the floppy disk.

So I've resorted to making a custom XP install CD that installs the drivers. However it doesn't seem nearly that simple - the drivers have to be configured after they've been installed. I've tried simply plonking them into txtsetup.sif, but it always freezes before loading XP properly for the first time.

I tried making an OEM cd install too, but that didn't work for some reason, and from what I've read above, it woudl -only- install the drivers that I specified, and I think I probably need more than just that (keyboard, mouse, etc?).

So, what I want to do is install my drivers and configure them once they're installed. Here's the contents of the txtsetup.oem file that comes with the drivers:



[Disks]
disk1 = "Intel Application Accelerator driver", iaStor.sys, \

[Defaults]
scsi = iaStor

[scsi]
iaStor = "Intel® 82801ER SATA RAID Controller"

;-------------------------------------------

[Files.scsi.iaStor]
driver = disk1, iaStor.sys, iaStor
inf    = disk1, iaStor.inf
catalog = disk1, iaStor.cat

;-------------------------------------------

[Config.iaStor]
value = "", tag, REG_DWORD, 1b
value = "", ErrorControl, REG_DWORD, 1
value = "", Group, REG_SZ, "SCSI miniport"
value = "", Start, REG_DWORD, 0
value = "", Type, REG_DWORD, 1

;-------------------------------------------------------
; Uncomment appropriate ID string by removing semi-colon
;-------------------------------------------------------
[HardwareIds.scsi.iaStor]
id = "PCI\VEN_8086&DEV_24DF&CC_0104","iaStor"



Now how do I modify this to fit into txtsetup.sif and I'm guessing I also need doskey.inf? And what about the .cat file, do I need to mess around with the service pack slipstream thing? Because the computer I'm doing this on has windows 98, so I can't slipstream the service pack in and don't have any .inf file to modify here, so what then?
Title: Windows 2000 unnatended with drivers on CD
Post by: Pit on October 20, 2003, 03:26:06 PM
[quote name=\'Bredvig\' date=\'Jul 28 2003, 07:23 AM\']This here link will solve a lot of your problems in solving your slipstreaming and adding of files problems.[/quote]

Oh great and where's the link!?  /blink.gif\' class=\'bbc_emoticon\' alt=\':blink:\' />

Pit
Title: Windows 2000 unnatended with drivers on CD
Post by: Mr.Pit on October 21, 2003, 01:50:36 AM
[quote name=\'Ausmith1\' date=\'May 6 2003, 11:06 AM\']OK, after reading the steps described in other posts I finally got one driver added to my Win2K Server CD, here is a very basic step by step of how I how I did it.
Plese keep in mind that what I got to work may not be the optimium way of doing it and that I may have included extra steps that are unnecessary, as I have to time to debug every possible scenario I will pare the process down to the mimimium steps required...

For this example I first created a slipstreamed SP3 Win2k Advanced Server ISO with the great Windows CD compiler script available @
http://berns.cae.wisc.edu/pages/wincdman.asp (http://\"http://berns.cae.wisc.edu/pages/wincdman.asp\")

In the following example we will add the VMWare SCSI drivers for a VMWare 4.0 Workstation

1) Obtain the latest version of the drivers from
http://www.vmware.com/download/downloadscsi.html (http://\"http://www.vmware.com/download/downloadscsi.html\")

2) Copy the expanded contents of the driver disk to \$OEM$\$1\Temp\Drivers\SCSI\VMWare

3) Add the path "Temp\Drivers\SCSI\VMWare;" to the WinNT.Sif file on floppy

4) Copy the file vmscsi.sys to \i386

5) Edit the file \i386\TxtSetup.Sif with the following changes taken from the txtsetup.oem & vmscsi.inf files

In the section [SourceDisksFiles.x86] add the line
vmscsi.sys = 1,,,4_,4,1,,1,4

In the section [HardwareIdsDatabase] add the line
PCI\VEN_104B&DEV_1040 = "VMscsi"

In the section [SCSI.Load] add the line
VMSCSI = vmscsi.sys,4

In the section [SCSI] add the line
VMSCSI = "VMware SCSI Controller"

6) Edit the file \i386\DrvIndex.Inf with the following changes

In the section [driver] add the line
vmscsi.sys

7) Edit the file \i386\HIVESYS.INF with the following changes

In the section [AddReg] add the lines
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","ErrorControl",0x00010003,1
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","Group",0x00000002,"SCSI miniport"
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","Start",0x00010003,4
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","Tag",0x00010003,259
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","Type",0x00010003,1
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters",,0x00000012
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters\Device","NumberOfRequests",0x00800003,128
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi\Parameters\PnpInterface","5",0x00010003,1
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System\VMscsi","EventMessageFile",0x00020002,"%SystemRoot%\System32\IoLogMsg.dll"
HKLM,"SYSTEM\CurrentControlSet\Services\EventLog\System\VMscsi","TypesSupported",0x00010003,7


Recompile the ISO file and you should now have a CD that will recognise the SCSI adapter in a VMWare 4.0 workstation session.

Notes: I'm not sure if steps 2, 3 & 6 are really necessary, I put them in just to be sure it would work...
Also in my winnt.sif file I added the following line in the [Unattended] section
DriverSigningPolicy=Ignore
See
http://support.microsoft.com/default.aspx?...b;EN-US;q250380 (http://\"http://support.microsoft.com/default.aspx?scid=kb;EN-US;q250380\")
for why this must = Ignore

I am still trying to get my Compaq Smart Array 5i drivers to work in this fashion, AFAIK I have everything entered correctly but the system BSODs as soon as it enters GUI mode... Anyone else got this card to work?
I have starting on adding the following cards to my boot CD
IBM ServeRAID 5i
LSI Logic SYMMPI SCSI/FC / Apple FC HBA (Same driver)
Emulex LP950
If I can get all of these to work then I be very happy /tongue.gif\' class=\'bbc_emoticon\' alt=\':P\' />[/quote]

Hi,

steps 2 and 3 are not necessary. Within step 4 copy also the drivers inf file.

In step 5 add also the inf file with vmscsi.sys = 1,,,,,,,20,0,0. If you do so, step 7 is also unnecessary!

If you want to install the OS not from CD but from LAN, you must add the sys and inf files to dossetup.inf.

Scanning txtsetup.sif and dosnet.inf for "ultra66" is an excellent way to see what must be done.

Pit
Title: Windows 2000 unnatended with drivers on CD
Post by: blue on November 13, 2003, 06:38:36 PM
well chaps, i started mucking around with this unattended install stuff in june - got my system sorted out. i wrote a guide and learned some crappy webdesign (!) so that i could post it up. took me bloody ages! boy is css traumatic. /wink.gif\' class=\'bbc_emoticon\' alt=\';)\' />
anyway - the link to the article is here:

http://www.fluctuation.co.uk (http://\"http://www.fluctuation.co.uk\")

hope it helps!
 thanks to everyone who posted stuff helping each other   /smile.gif\' class=\'bbc_emoticon\' alt=\':)\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on January 25, 2004, 02:14:40 PM
www.msfn.org

Check out the "Unattended Windows" section and be prepared to be throttled by the expertise.  /dry.gif\' class=\'bbc_emoticon\' alt=\'<_<\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: gortex on January 25, 2004, 03:18:48 PM
http://www.fluctuation.co.uk/projects/UI/0...02overview.html (http://\"http://www.fluctuation.co.uk/projects/UI/02overview.html\")
Title: Windows 2000 unnatended with drivers on CD
Post by: sauron on January 30, 2004, 06:28:49 PM
[quote name=\'Mr.Pit\' date=\'Oct 21 2003, 12:50 AM\']In step 5 add also the inf file with vmscsi.sys = 1,,,,,,,20,0,0. If you do so, step 7 is also unnecessary![/quote]
Do you mean vmscsi.inf = 1,,,,,,,20,0,0? Cause I thought only inf files go to inf directory (20 = winnt\inf)

Also, I've another question. I've been able to slipstream 3rd party driver this way and boot up just fine. However, the device manager only shows "SCSI RAID" instead of the adapter name. I also couldn't look at the property of the driver saying something like "there is no driver loaded" eventhough I've verified from the kernel debugger that the driver is indeed loaded and associated with the device node.

I suspect this might just a simply labeling mistake on the hardware PnP entry or something. If I reinstall the driver again using the same local inf and sys file, then I get the correct label. Anybody might know if I miss anything here?
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on February 04, 2004, 07:03:05 PM
I am also trying to create a window 2000 bootable CD with the necessary RAID controller drivers. I am currently using the same files , Winnt.sif, txtsetup.sif and dosnet.inf, that Jimmy spoke about.  I am still getting the BSOD error Inaccessible_boot_device. I would like to get out to see what is being created on the hard drives, but don't know how to create a bootable diskette to get there. Please help!
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on February 05, 2004, 12:44:29 AM
I assume Jiimmy rem'd out the lines so that you could see an example but not think that his lines would work.  What exactly are the drivers you need?  Each device will be setup differently.  You need to give more info before people can help.
Title: Windows 2000 unnatended with drivers on CD
Post by: Guest on February 09, 2004, 10:25:29 AM
I am in process of creating a totally automated install of Windows 2000 server. I have run into problems doing the install with two different motherboards (Intel SE7501HG2 and SE7501BR2) as noted below. I started with the first server, ...HG2, and got tired of beating my head on it, so I went over to another system (SE7501BR2) that has a different RAID controller, a320raid.sys driver. I have the exact same issue.  I've found that the issue is from two lines in my winnt.sif file; OEMPreInstall=Yes and OEMPnPDriversPath="???". It also happens when I use the OEMFilesPath= "???" line.
Issue:   When these lines are in the script, I get an error while in TextMode during the Windows 2000 unattended install: Error, Cannot copy file raidsrc.sys ... esc to skip, ...
I pressed esc and then I get the BSOD with an error stating Inaccessiable boot device.
Now the gottcha here is that the exact same thing happens to a different system with a different raid controller.
The first system is an intel motherboard (SE7501HG2)with a PCI SCSI RAID 5 Contoller (SRCZCR)(raidsrc.sys).
The second system is an intel motherboard (SE7501BR2) with the built in RAID Controller (a320raid.sys).
Now, before you get to the "if it hurts, don't do it" line, let me explain what happens.
I remove both lines, OemPreInstall=yes and OEMPnPDriversPath="???",
  1.  TimeZone is set incorrectly
  2. None of my $OEM$/$1 directory structures are copied to the servers hard drive, therefore none of my GUIRunOnce lines work.
  3.  The [Components], [Networking], [NetAdapters], [Identification], [Params.Adapter1]... (ie all adapter configuration) is ignored.

FYI, This script works perfectly on a "non raid" server.

My guts are telling me that the issue may be in Intel's oemsetup.inf or their txtsetup.oem...maybe the overwrite of a OEMPnPDriverPath ...
Any Ideas thoughts or comments would be greatly appreciated.

Below is a copy of my winnt.sif

[Data]
    AutoPartition=1
    MsDosInitiated="0"
    UnattendedInstall="Yes"
[Unattended]
    UnattendMode=ReadOnly
    OemPreinstall=Yes
    OemSkipEula=Yes
    NoWaitAfterGUIMode=1
; 10
    Repartition=Yes
    TargetPath=\WINNT
    DriverSigningPolicy=Ignore
;    NT Upgrade = No
    OemFilesPath="$OEM$\$1\Drivers\raid"
    OEMPnPDriversPath="drivers\RAID;install\drivers\network;"
[GuiUnattended]
    OemSkipWelcome=1
    AdminPassword=????
    OEMSkipRegional=1
    TimeZone=35
; 20
    Autologon=Yes
    AutoLogonCount=2
[GUIRunOnce]
    Command0="c:\install\Software\Abr60\abr60.bat"
    Command1="c:\hotfixes\hotfixes.bat"
;    Command2="c:\install\Software\Registry\regentry.bat"
;    Command2="c:\install\Software\MSXML\msxml.bat
;    Command3="c:\install\Software\Registry\security.bat"
[LicenseFilePrintData]
   Automode="PerSeat"
[UserData]
    FullName="????"
; 30
    OrgName="????"
    Computername="????-TEST"
[Display]
    BitsPerPel=32
    Xresolution=800
    YResolution=600
    Vrefresh=75
[RegionalSettings]
    LanguageGroup=1
; 40
    Language=00000409
[Components]
    cdplayer=off
    certsrv=off
    certsrv_client=off
    certsrv_server=off
    charmap=off
    chat=off
    cluster=off
    deskpaper=off
    dialer=off
    fp_extensions=off
; 50
    freecell=off
    iis=on
    iis_common=on
    iis_dbg=off
    iis_doc=on
    iis_ftp=on
    iis_htmla=off
    iis_inetmgr=on
    iis_nntp=off
    iis_nntp_docs=off
; 60
    iis_pwmgr=off
    iis_smtp=off
    iis_smtp_docs=off
    iis_www=on
    indexsrv_system=off
    inetpub=on
    licenseServer=off
    media_clips=off
    minesweeper=off
    mousepoint=off
    mplay=off
; 70
    msmq=off
    mswordpad=on
    netcis=off
    netmeeting=off
    objectpkg=off
    paint=on
    pinball=off
    rec=off
    reminst=off
; 80
    rstorage=off
    solitaire=off
    templates=off
    TSClients=off
    TSEnable=off
    vol=on
    WMS=off
    WMS_Admin=off
    WMS_SERVER=off
; 90
[Networking]
    InstallDefaultComponents=Yes
[NetAdapters]
;Need one for each adapter then a separate [params.?] for each
    Adapter1=params.Adapter1
;**    Adapter2=params.Adapter2
[Identification]
    JoinWorkgroup="workgroup"
[params.Adapter1]
; 100
;InfID key must match a valid PNP ID in the system. For examle,
;a valid PNP ID might look as follows: InfID = "pci/ven_0e11&dev_ae32"
;**    INFID=IBA 4.1.04 Slot0100
    INFID=*
;**[params.Adapter2]
;InfID key must match a valid PNP ID in the system. For examle,
;a valid PNP ID might look as follows: InfID = "pci/ven_0e11&dev_ae32"
;**    INFID=IBA 4.1.04 Slot0108
[NetClients]
; 110
; Installs the client for MS Networks
    MS_MSClient=params.MS_MSClient
[Params.MS_MSClient]
[NetProtocols]
    MS_TCPIP=params.MS_TCPIP
[params.MS_TCPIP]
    DNS=No
    UseDomainNameDevolution=No
    EnableLMHosts=Yes
; 120
    AdapterSections=params.MS_TCPIP.Adapter1
;**    AdapterSections=params.MS_TCPIP.Adapter1,params.MS_TCPIP.Adapter2
[params.MS_TCPIP.Adapter1]
    SpecificTo=Adapter1
    IPAddress=192.168.1.1
    SubnetMask=255.255.255.0
    DefaultGateway=192.168.1.254
    DHCP=No
    WINS=No
; 130
    NetBIOSOptions=0
;**[params.MS_TCPIP.Adapter2]
;**    SpecificTo=Adapter2
;**    IPAddress=??
;**    SubnetMask=??
;**    DefaultGateway=??
;**    DHCP=No
;**    WINS=No
;**    NetBIOSOptions=0
; 140
[NetServices]
; Installs the file and print services
    MS_SERVER=params.MS_SERVER
   

Below is a copy of the SE7501BR2 OEMSetup.inf file

;-------------------------------------------------------------------------------
;
; OEMSETUP.INF - This INF installs HostRAID driver for suported Adaptec PCI
;       SCSI devices for Windows 2000
;
; Copyright © 2003 Adaptec Incorporated
;
;-------------------------------------------------------------------------------

[Version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_PROVIDER%
CatalogFile="a320raid.cat"
DriverVer=03/04/2002

; Last DriverVer=08/09/2001

[SourceDisksNames]
1 = %FLOPPY_DESCRIPTION%,,,\

[SourceDisksFiles]
a320raid.sys= 1,,

[ControlFlags]
;ExcludeFromSelect=

[Manufacturer]
%ADP%= ADAPTEC

[ADAPTEC]
;
; All U320 HostRAID device IDs (AIC-7902s and ASC-39320Ds)
;
%PCI\VEN_9005&DEV_809F.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_809F
%PCI\VEN_9005&DEV_8090.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_8090
%PCI\VEN_9005&DEV_8091.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_8091
%PCI\VEN_9005&DEV_8092.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_8092
%PCI\VEN_9005&DEV_8093.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_8093
%PCI\VEN_9005&DEV_8094.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_8094
%PCI\VEN_9005&DEV_809E.DeviceDesc% = HostRAID_Inst,PCI\VEN_9005&DEV_809E

[HostRAID_Inst.nt]
[email protected]
DelReg = LegacyScsiportValues

[HostRAID_Inst.nt.Services]
AddService = a320raid, 0x00000002, HostRAID_Service_Inst, Miniport_EventLog_Inst

; StartType             ErrorControl
;   0x0 (SERVICE_BOOT_START)       0x0 (SERVICE_ERROR_IGNORE)
;     0x1 (SERVICE_SYSTEM_START)      0x1 (SERVICE_ERROR_NORMAL)
;   0x2 (SERVICE_AUTO_START)       0x2 (SERVICE_ERROR_SEVERE)
;   0x3 (SERVICE_DEMAND_START)       0x3 (SERVICE_ERROR_CRITICAL)
;   0x4 (SERVICE_DISABLED)
;
;   ServiceBinary
;      %12%  is equivalent to %windir%\system32\drivers on Windows 2000
;-------------------------------------------------------------------------------

[HostRAID_Service_Inst]
ServiceType    = 1      ; SERVICE_KERNEL_DRIVER
StartType      = 0      ; SERVICE_BOOT_START
ErrorControl   = 1      ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\a320raid.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg

[pnpsafe_pci_addreg]
HKR,"Parameters\PnpInterface","5",0x00010001,0x00000001

[LegacyScsiportValues]
HKR,Scsiport,BusNumber
HKR,Scsiport,LegacyInterfaceType
HKR,Scsiport,SlotNumber

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,0x00010001,7

[DestinationDirs]
DefaultDestDir = 12            
                               
;-------------------------------------------------------------------------------
;
; [Strings]
;
;-------------------------------------------------------------------------------
[Strings]
INF_PROVIDER="Adaptec"
ADP="Adaptec"
FLOPPY_DESCRIPTION="Adaptec HostRAID U320 Driver Ver 1.00 For Windows 2000/XP"
              

; Adaptec SCSI Controllers supported by this driver.
;
; All U320 HostRAID device IDs (AIC-7902s and ASC-39320Ds)
;
PCI\VEN_9005&DEV_809F.DeviceDesc = "Adaptec AIC-7902 HostRAID driver"
PCI\VEN_9005&DEV_8090.DeviceDesc = "Adaptec ASC-39320 HostRAID driver"
PCI\VEN_9005&DEV_8091.DeviceDesc = "Adaptec ASC-39320D HostRAID driver"
PCI\VEN_9005&DEV_8092.DeviceDesc = "Adaptec ASC-29320 HostRAID driver"
PCI\VEN_9005&DEV_8093.DeviceDesc = "Adaptec ASC-29320B HostRAID driver"
PCI\VEN_9005&DEV_8094.DeviceDesc = "Adaptec ASC-29320LP HostRAID driver"
PCI\VEN_9005&DEV_809E.DeviceDesc = "Adaptec AIC-7901A HostRAID driver"


Below is a copy of the Txtsetup.oem

#-----------------------------------------------------------------------------
#                     Copyright © Adaptec Inc. 2001
#-----------------------------------------------------------------------------
#
# General format:
#
# [section]
# key = value1,value2,...
#
#
# The hash ('#') introduces a comment.
# Strings with embedded spaces, commas, or hashes should be double-quoted
#

[Disks]
d1   = "Adaptec HostRAID U320 Driver Ver 1.00 For Windows 2000/XP", \hraidsk1, \Win2000
d2   = "Adaptec HostRAID U320 Driver Ver 1.00 For Windows NT 4", \hraidsk1, \Nt4

[Defaults]
scsi = ADAPTEC_U320RAID_W2K

[scsi]
ADAPTEC_U320RAID_W2K = "Adaptec HostRAID U320 Driver Ver 1.00 For Windows 2000/XP"
ADAPTEC_U320RAID_NT4 = "Adaptec HostRAID U320 Driver Ver 1.00 For Windows NT 4"

[Files.scsi.ADAPTEC_U320RAID_W2K]
driver  = d1,a320raid.sys, a320raid
inf     = d1,oemsetup.inf
catalog = d1,a320raid.cat

[Files.scsi.ADAPTEC_U320RAID_NT4]
driver  = d2,a320raid.sys, a320raid
inf     = d2,oemsetup.inf

[Config.a320raid]
value = "", Group, REG_SZ,    "SCSI Miniport"
value = "", Start, REG_DWORD, 0
value = "", Tag,   REG_DWORD, 1
value = "", Type,  REG_DWORD, 1
Title: Windows 2000 unnatended with drivers on CD
Post by: superdave on February 20, 2004, 11:22:44 PM
http://www.fluctuation.co.uk/projects/UI/0...stribution.html (http://\"http://www.fluctuation.co.uk/projects/UI/08hack2kdistribution.html\")
Title: Windows 2000 unnatended with drivers on CD
Post by: Craig on March 26, 2004, 01:02:12 PM
So so i can understand that $oem$ process, if i wanted to run a script called cpy.vbs, how would i put that in the run once section and what would ther $oem$ look lile. Thanks.
Title: Windows 2000 unnatended with drivers on CD
Post by: mclinksc on May 08, 2004, 04:42:46 AM
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=288344 (http://\"http://support.microsoft.com/?kbid=288344\")

Note 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 (tm) 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 (tm) 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 (tm) 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 (tm) 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 (tm) 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 (tm) 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 (tm) 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
Title: Windows 2000 unnatended with drivers on CD
Post by: mclinksc on May 10, 2004, 06:58:17 PM
[quote name=\'Jazkal2\' date=\'Apr 16 2003, 08:24 AM\']Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

Thanks,
- 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=288344 (http://\"http://support.microsoft.com/?kbid=288344\")

Note 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  /biggrin.gif\' class=\'bbc_emoticon\' alt=\':D\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: mclinksc on May 10, 2004, 07:09:46 PM
[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=288344 (http://\"http://support.microsoft.com/?kbid=288344\")

Note 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   /biggrin.gif\' class=\'bbc_emoticon\' alt=\':D\' />
Title: Windows 2000 unnatended with drivers on CD
Post by: mclinksc on May 12, 2004, 06:09:12 PM
[quote name=\'Anonymous\' date=\'Dec 22 2002, 09:31 AM\']Hmmm.. Anyone wanna help?[/quote]
[font=\"Arial\"]Read My  Topic : Bootable W2K PRO slipstream no F6 key.
Let me know if you need help with it. It really works. /blink.gif\' class=\'bbc_emoticon\' alt=\':blink:\' /> [/font]
Title: Windows 2000 unnatended with drivers on CD
Post by: tabularasa on May 13, 2004, 02:31:08 PM
Quote
[Componants]accessopt = off
;paint = off
cdplayer = off
charmap=off
cluster = off
freecell = off
fp_extensions = off
indexsrv_system = off
minesweeper = off
;media_clips = off
;media_utopia = off
pinball = off
solitaire = off
chat = off
dialer = off
rec = off

Where can i get a full list of these componants you can intall?  I've gotten my install CD pretty tweaked, with Raid drivers, silent software installs, and drivers.  I would like to hand pick each windows componant to install with the winnt.sif file..

Anyone know where this list is?
Title: Windows 2000 unnatended with drivers on CD
Post by: tabularasa on May 13, 2004, 02:45:45 PM
Why did my post not show up?  

I asked where i could get a list of winnt.sif [Components] that could be used.
Title: Windows 2000 unnatended with drivers on CD
Post by: Vandaahl on June 10, 2004, 05:42:57 PM
after 4 days i found a nice sollution without messing with any inf files
i run the installation with command ; winnt /s:\i386 /u:unattended.txt

btw unattend.txt is renamed by the textmode part to winnt.sif

the i386 dir is in the root of a hard disk
in that dir;
$oem$


in the $oem$ dir;
$$
$1
C
Textmode

in the C dir HOTFIXES dir and PNPdrivers (dir)

files:
txtsetup.oem  (the same as in the textmode dir)
cmdlines.txt
oem.bmp

in the textmode dir drivers for my promise ultra100tx2 controller
i edited txtsetup.oem like this;


cmdlines.txt
-----------------------------------

[Commands]
".\regedit /s .\function.reg"
".\HotFixes\deton\setup.exe"
".\HotFixes\soundMAX\setup.exe"
-----------------------------------------------------------


------------------------------------------------------------------------------------------------
[Disks]

d3 = "Promise Ultra Series Driver Diskette", \ultra,""

[Defaults]

scsi = Ultra100TX2_nt5

[scsi]

Ultra100TX2_nt5 = "Win2000 Promise ULTRA100 TX2 (tm) Controller", Ultra



[Files.scsi.Ultra100TX2_nt5]
driver = d3, Ultra.sys, Ultra
inf    = d3, Ultra.inf
catalog = d3, Ultra.cat

[HardwareIds.scsi.Ultra100TX2_nt5]
id = "PCI\VEN_105A&DEV_4D68","Ultra"



[Config.Ultra]

value = "", Tag, REG_DWORD, 1
---------------------------------------------------------------------------------------------

the trick is the "" at the end of the first line
its the only thing i edited (i also took out the XP NT4 win2k3 stuff)


unattend.txt
-------------------------------------------------------------------------------------


[MassStorageDrivers]
    "Win2000 Promise ULTRA100 TX2 (tm) Controller"= "OEM"
    "IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
    Ultra
    ultra.sy_
    ultra.sys
    ultra.cat
    ultra.inf
    Txtsetup.oem

-----------------------------------------------------------------------------------------------

hmmm
 kindof a messy post ,sorry bout that

this worked for me
on a corporate win2k with sp4 slipstreamed in it
Title: Windows 2000 unnatended with drivers on CD
Post by: vandaahl on June 10, 2004, 05:44:06 PM
after 4 days i found a nice sollution without messing with any inf files
i run the installation with command ; winnt /s:\i386 /u:unattended.txt

btw unattend.txt is renamed by the textmode part to winnt.sif

the i386 dir is in the root of a hard disk
in that dir;
$oem$


in the $oem$ dir;
$$
$1
C
Textmode

in the C dir HOTFIXES dir and PNPdrivers (dir)

files:
txtsetup.oem  (the same as in the textmode dir)
cmdlines.txt
oem.bmp

in the textmode dir drivers for my promise ultra100tx2 controller
i edited txtsetup.oem like this;


cmdlines.txt
-----------------------------------

[Commands]
".\regedit /s .\function.reg"
".\HotFixes\deton\setup.exe"
".\HotFixes\soundMAX\setup.exe"
-----------------------------------------------------------


------------------------------------------------------------------------------------------------
[Disks]

d3 = "Promise Ultra Series Driver Diskette", \ultra,""

[Defaults]

scsi = Ultra100TX2_nt5

[scsi]

Ultra100TX2_nt5 = "Win2000 Promise ULTRA100 TX2 (tm) Controller", Ultra



[Files.scsi.Ultra100TX2_nt5]
driver = d3, Ultra.sys, Ultra
inf    = d3, Ultra.inf
catalog = d3, Ultra.cat

[HardwareIds.scsi.Ultra100TX2_nt5]
id = "PCI\VEN_105A&DEV_4D68","Ultra"



[Config.Ultra]

value = "", Tag, REG_DWORD, 1
---------------------------------------------------------------------------------------------

the trick is the "" at the end of the first line
its the only thing i edited (i also took out the XP NT4 win2k3 stuff)


unattend.txt
-------------------------------------------------------------------------------------


[MassStorageDrivers]
    "Win2000 Promise ULTRA100 TX2 (tm) Controller"= "OEM"
    "IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"

[OEMBootFiles]
    Ultra
    ultra.sy_
    ultra.sys
    ultra.cat
    ultra.inf
    Txtsetup.oem

-----------------------------------------------------------------------------------------------

hmmm
 kindof a messy post ,sorry bout that

this worked for me
on a corporate win2k with sp4 slipstreamed in it
Title: Windows 2000 unnatended with drivers on CD
Post by: technicalplanet on December 09, 2005, 04:37:05 PM
Dan is the man! I read about 5000 other posts and sites with no good results. Dan has it here for real! I LOVE YOU! the only thing to change is under:

[SCSI.Load]  ;add
<driver>  = driver.sys,4

[quote name=\'Dan\' post=\'10870\' date=\'Jul 22 2003, 01:36 PM\']Whilst a little late (like 7 months). I think I have found a solution to the problem of getting Win2K to detect OEM Mass Storage Devices on setup.

You need to edit the default txtsetup.sif file in the \i386 dir before you write it to the CD. I think that this will only work for PnP drivers tho'

Modify as follows:

under:

[SourceDisksFiles] ;add
driver.sys   = 1,,,,,,_x,4,1

where driver.sys is the name of your OEM driver

under:

[SCSI] ;add
<driver>  = "Description pulled from TXTSETUP.OEM supplied by oem"

where <driver> is the name of your drivers (without the .sys)

under:

[SCSI.Load]  ;add
<driver>  = driver.sys

replace <driver> and driver.sys as above

under:

[HardwareIdsDatabase]  ;add
"PCI\VEN_........" = <driver>

this line (the bit beginning with "PCI\VEN") is also supplied by the txtsetup.oem from your oem

Lastly - copy your driver.sys file to the \i386 dir

See how you get on - this has worked for me on 2 different drivers so....

The only reason I say it needs to be a PNP driver is that you also need to add the drivers under the $OEM$\$1\ dir structure, so that it is automatically detected in GUI portion of setup (I think) - otherwise, you will get through text mode, but no further.

Regards,

Dan[/quote]