Jump to content

- - - - -

Windows 2000 unnatended with drivers on CD

  • Please log in to reply
84 replies to this topic

#41 Jazkal2



  • Members
  • PipPipPip
  • 58 posts

Posted 16 April 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.

- Jazkal

#42 Guest_Guest_*

  • Guests

Posted 16 April 2003 - 09:45 AM

Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

- Jazkal

i am also looking for some tutorial for this... i've been trying this for 2 days now and it still doesn't work :(

#43 Jazkal2



  • Members
  • PipPipPip
  • 58 posts

Posted 17 April 2003 - 07:23 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 :(

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

#44 Guest_Guest_*

  • Guests

Posted 21 April 2003 - 03:58 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 :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.

#45 Guest_Jens_*

  • Guests

Posted 28 April 2003 - 11:49 AM

For anyone of you who is able to understand german i can recommend the following site: http://www.winhelpli...hp?shownews=486 for building your own winxp cd. Hope that will help you. ;)

#46 Jazkal2



  • Members
  • PipPipPip
  • 58 posts

Posted 28 April 2003 - 04:19 PM

For anyone of you who is able to understand german i can recommend the following site: http://www.winhelpli...hp?shownews=486 for building your own winxp cd. Hope that will help you. ;)

For those of us (me included) that can't read German, try this google translation:

Google Translation - German to English

I'm still trying to understand the translation :blink:

- Jazkal

#47 Jazkal2



  • Members
  • PipPipPip
  • 58 posts

Posted 29 April 2003 - 11:16 AM

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

#48 jiimmy



  • Members
  • Pip
  • 24 posts

Posted 01 May 2003 - 12:08 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.
> 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.

#49 jiimmy



  • Members
  • Pip
  • 24 posts

Posted 01 May 2003 - 01:06 AM

Could some one walk us through integrating an actual Mass Storage Device into the i386 source files? That would be very helpful.

- Jazkal

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:


#50 jiimmy



  • Members
  • Pip
  • 24 posts

Posted 01 May 2003 - 06:14 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:

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

AddReg = hivesys.inf,AddReg.RemoteBoot

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

#51 Ausmith1



  • Members
  • Pip
  • 13 posts

Posted 06 May 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 @

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

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

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

In the section [AddReg] add the lines
HKLM,"SYSTEM\CurrentControlSet\Services\VMscsi","Group",0x00000002,"SCSI miniport"

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
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 :P

#52 muhi



  • Members
  • Pip
  • 1 posts

Posted 07 May 2003 - 12:25 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?

#53 Ausmith1



  • Members
  • Pip
  • 13 posts

Posted 07 May 2003 - 12:34 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...

#54 Guest_krazykulguy_*

  • Guests

Posted 07 May 2003 - 04:51 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.

#55 Ausmith1



  • Members
  • Pip
  • 13 posts

Posted 08 May 2003 - 10:00 PM

I just found some interesting threads on Google about a Microsoft recommended solution for adding 3rd party drivers to the CD. Read @




It's pretty much just as jiimmy has described here before...

#56 Ausmith1



  • Members
  • Pip
  • 13 posts

Posted 11 May 2003 - 01:01 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 @


#57 Guest_Guest_*

  • Guests

Posted 14 May 2003 - 07:12 AM

For making a Win 2000 installation without Internet Explorer and the Virus grabber Outlook Express etc.

For making bootable cd's


#58 Guest_mrrolf_*

  • Guests

Posted 17 June 2003 - 09:03 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):



"RAID SCSI Controller Driver"="OEM"



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?



#59 Guest_Dan_*

  • Guests

Posted 22 July 2003 - 03: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:


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

where driver.sys is the name of your OEM driver


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

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


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

replace <driver> and driver.sys as above


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



#60 Guest_Bredvig_*

  • Guests

Posted 28 July 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