Jump to content

W2K3 Bootstrap install without CDROM ?


Odin

Recommended Posts

I'm looking for some advise on how I can go about bootstrapping the install process for Win 2003 (standard or web edition) without using the bootable CDROM method.

I currently have a working PXE network boot setup with a IP based KVM with a number of rack based servers for which local CDROM access would be a problematic means to start a refresh install.

I am able to sucessfully get a system into a state where they have a smallish (2Gb) Win98SE VFAT partition and the end of the disk with a cope of the entire Win2003 Std Edn CD on there.

I am able to bootup and run C:\I386\WINNT.EXE and this appears to start the process of copying files into

C:\$LDR$

C:\$WINNT.LOG

C:\$WIN_NT$.~BT

C:\$WIN_NT$.~LS

C:\INF000.SWP

C:\INF001.SWP

C:\NTDETECT.COM

C:\NTLDR

However it appers to have skipped the F6 to load 3rd party drivers, F8 to accept license and the partition setup parts you get from the bootable CD method.

I would like to experience the whole setup experience just like the CD install if possible. Does anybody know how ?

Is the fact my base DOS version if from Win98SE causing me any problems ?

Your advise and thoughts appreciated. Thanks.

Link to comment
Share on other sites


Thanks for the reference, still looking through for a suitable resource, but everything seems CDROM based or just floppy boot disks.

There are two approaches to my problem I can see:

1) One based on someone with a better understanding than me of the Win2003 bootable CD / install process, that could possily help explain how to kickstart that process without actually booting from a CD.

2) Work around the problem from the other angle and somehow present the computer with a working CDROM driver that is able to load from an ISO image over TFTP.

Infact this approach really interests me (for other useful situations).

That is create an MSCDEX like driver that uses BIOS calls to the ethernet card, just like PXE/BOOTP does to make simple requests to a TFTP server for blocks of data out of the real ISO image stored on the server.

This idea seems completely possible within a 64Kb driver to run under DOS.

Link to comment
Share on other sites

Ok i have learnt much about the setup process with Win2003.

I have managed to boot into SETUPLDR.BIN via PXE, it then tries to contact a PXE server on port 4011 after loading a few files over TFTP.

But I'm sure by tomorrow I shall crack it.

Link to comment
Share on other sites

I did crack it. Basically for those interested, the Win2003 RIS unattended network install process works like this:

PXE Boot the sytem directly into Win2003 SETUPLDR. I use PXELINUX to trampoline this, since that allows me to have a PXE boot menu (menu.c32) to decide what I want to load and do.

Files (with md5sums):

d30318675bfe947b5635b4f0a093c92  binlsrv.py
2afc0e70ab1c581192a1bb34d52a5edd  infparser.py
b26d94dc7ec3f3d771482482fb4e8b73  ntdetect.com
8fedbc02ae02d700c60082ec42be5ac0  NTLDR
4c137e64f0045e81985c8971c273d7db  txtsetup.sif
4882e72ae46a1eea0d65c3b9e63c5830  winnt.sif
9a233c8f0af77bec3484bce62ee612b0  X86PC/pxelinux/pxelinux.cfg/default
48c4a984692a432401ad425f59108a0a  X86PC/pxelinux/pxelinux.0
md5sum: X86PC/pxelinux/os: Is a directory
md5sum: X86PC/pxelinux/os/win2003: Is a directory
71258dc24a2719d41e479b8568539f06  X86PC/pxelinux/os/win2003/startrom.0
8fedbc02ae02d700c60082ec42be5ac0  X86PC/pxelinux/os/win2003/NTLDR
b085f12bb1e907cca68791d8f100bec7  w2k3std/i386/winnt.exe

NTLDR is actually SETUPLDR.EX_ expanded, renamed and fixed from the ris-install.tar.gz package.

startrom.0 is I386/STARTROM.N1_ expanded and renamed.

In order to boot from PXELINUX its config entry looks like:

label Win2003 Standard Edition [INSTALL]
       kernel os/win2003/startrom.0

In the winnt.sif file use the sample out of the ris-install.tar.gz package and edit. The

[data]

OriSrc = "\\SERVER\SHARE\w2k3std\i386"

<..snip..>

[setupData]

SetupSourceDevice = "\Device\LanmanRedirector\SERVER\SHARE\w2k3std"

<..snip..>

I found the SERVER made little difference in the entire install process as it always tries to connect to the file sharing (SAMBA/CIFS) of the TFTP host, regardless of what you set the server name to. The SHARE name is important for 2nd stage of the install, but the subdirectory "w2k3std" is used as the TFTP prefix.

Then on your TFTP server copy the whole install CD contents to "w2k3std", I also renamed every single file under there to be lowercase. I then configured the TFTP server (tftp-hpa) to always convert any UPPERcased request filenames to lowercase before looking on the file system. I also set it up to convert backslash to forward slash.

Then make the TFTP root directory available to share on the SHARE you set in winnt.sif.

The next thing you have to do is get RIS compatible Ethernet card driver available and installed into the I386 directory as *.SYS files and accompanying *.INF files. The example INF files I have seen seemed to be Unicode txt files no plain ASCII. This is because the simple BIOS call base NDIS ethernet card driver switches for the propert ethernet card driver (I suppose for performance reasons).

Now you should be ready to run startrom.0 via PXELINUX. This will load NTLDS, ntdetect.com, ready the SIF and look for some optional INF files, all via the TFTP root directory looking for the names in the cases I specified above.

Then once SETUPLDR started, it will send out a request on port 4011 UDP (PXE port with plug-n-play hardware information request, its bcaiscally asking the server if the driver for this systems ethernet card is available inside the installation catalog). See the ris-install.tar.gz package for information on the python infparser.py and binlsrv.py tools. You basically run one to parse and scan the INF files to produce a catalog cache file and then run the binsrv.py to act as a TCP server on port 4011 to answer the installation request.

If SETUPLDR is happy you will get the usual F6 for 3rd party drivers. It will continue to load all the remaining files it needs via TFTP using your subdirectory prefix from winnt.sif before "i386\blah.fo_" maing "\w2k3std\i386\blah.fo_".

Once the 1st stage install has completed you will be presented with F8 for licence agreement, then partition setup and format. Once the new C: system drive has been formatted (on the 1st disk) it will then start copying files into it, to allow for rebooting into the 2nd stage install (the GUI part).

I can't remember if this copying was done via TFTP or from the network share CIFS volume. Maybe next time when i do back I will note it down.

You are then rebooted.

This time you dont PXE boot you bootup on C: that it just created. Before the GUI actually starts (while the Windows Server, on black screen is displayed) the system will be reading files via network share CIFS volume. It seems to keep trying forever at this point, that is, if you dont have the files or server setup the install just keeps re-trying to connect and get the file without displaying any kind of error to the installation operator.

From here its pretty straight forward.

I have one final problem with my method above.... my system drive is E: even through its located as the first partition on the first drive. This is because of my FAT C:\ staging partition that is on the second drive, first partition.

Since I delete the staging partition from the system after the install, how do you make it do what I'd expected in assigning the new drive C: and moving my FAT to E:.

Hope this is is use to others who want to be able to do floppy and CDROM less remote installations and get the same experience you get from the bootable CDROM to allow you to partition using SETUPLDR.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...