Home and Links
 Your PC and Security
 Server NAS
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Building the Node boot floppy

Node floppy boot
Please note - this 'How To' is how I built a multi-node Win98se based diskless DC farm ("SETI Wall") for running 'SETI Classic'. Regretfully, major changes are required to network boot a 'true' 32bit operating system (such as Windows XP), as required to support SETI BOINC (which does not run under Win98). Below is thus mainly of 'historical' interest, although my later page on Supporting BOINC and changes in technology may still be of some interest.

How to create the floppy boot disk

Well, Windows 98 lets you create a 'Windows Boot Disk with network support', so this would seem like a good start ?

But, ha, ha, it's the usual Microsoft 'joke' ... since this 'Boot Floppy' ONLY works if you have Windows already installed on the 'target' PC !

The reason why a Windows 98 created 'Network boot floppy' fails is that it attempts to access the 'Registry' files it fondly imagines can be found on the 'target' PC before it will run. What a joke ! There you are, panicking because your PC won't boot, most likely due to hard disk problems, and the ONE tool Microsoft gives you that will supposedly boot-up a system with a non-booting hard disk (and maybe let you save any files you can recover to a network share) and it relies on a PERFECTLY WORKING hard disk drive = this is NOT very impressive !

Instead you need to start with a NET Boot floppy made by Windows NT4, or, better, just go find 3com's 3c90x "Etherlink" set (3 floppy disks). If these are hard to find, by all means start with my SETI Wall boot floppy files. Note you still need to start with an empty but bootable (SYS'd) floppy disk which must be formatted and made bootable by Windows 98.

The NET.EXE you need is 440kb (450,342 bytes) in size. Microsoft's NET.EXE (348kb) distributed in Windows 98 fails to 'map' a network drive after booting (and I assume the Windows 95 NET.EXE (368kb) has the same problem).

NB if 3com think these files are free of Microsoft Licence limitations (or you are covered by your Win 98 Licences) I'm prepared to go along with them ....

What don't we need on the Boot Floppy ?

What don't you need ? well (from DOS Network files placed onto the disk by Microsoft NT) you can remove the following 'bloat ware' :-
SETUP.EXE (which doesn't work on machines without a HD anyway), EXPAND.EXE, README.TXT and RASCOPY.BAT (& maybe some others ..)
You can also delete NWLINK.EXE, unless you really need IPX (SPX isn't supported by the DOS vsn. of Microsoft's NW Link protocol, so unless you have a Novel 'Server' it's a bit pointless - anyway, all the foregoing has assumed NetBEUI & I'm not changing now).
You can use such a disk as the basis of the 'real' diskless workstation boot floppy.

NOTE - even after removing all of Microsoft's crap there is still not going to be enough space on the floppy for the 'must haves' (DRVSPACE for one) - but you will need to use compression (DRVSPACE) on the diskless node RAM disk so this means you must load the DRVSPACE drivers during floppy boot DOS operations - so you might as well take advantage of this and compress the whole floppy from 'step 1'.

Even with a compressed floppy, I never managed to find enough space to include TCP/IP drivers - but since I don't need to boot my nodes from the Internet, Net BIOS is more than good enough :-)

Of course, if the Nodes will need to use TCP/IP after they are booted into Windows, you can include it in the Windows 98 RAM Disk 'image', however, if you use a single image for all nodes, this will make it more difficult to 'personalise' each individual node (although see later re: PATCH.REG).

NB. You will soon discover that you can ONLY prepare such floppies on a Windows 9x PC (neither Windows NT nor 2000 understand drvspace compression).

1) SYS the floppy from Windows (98se) to ensure you get the correct vsn. DOS (this creates IO.SYS, MSDOS.SYS

Next use 'Compression' on the floppy to set it up for DRVSPACE operations ...

This step is vital to ensure that the DRVSPACE drivers are actually loaded during the floppy boot phase (for use latter with the compressed RAM disk).

The problem is, with no Hard Disk (and no RAM disk at boot time), the DRVSPACE driver will ONLY be loaded if you have a compressed boot floppy. Later, after copying the Windows containing DRVSPACE.000 from the network, the SCANDISK /MOUNT command will ONLY work if the DRVSPACE driver has ALREADY been loaded = and the only way I've managed to get DRVSPACE to load is by booting from a 'compressed' floppy.

What's on the 'uncompressed' (root of floppy) ?

The 'raw' floppy will contain DRVSPACE.000 (this file contains the 'compressed drive' DOS files) plus Drvspace.bin, Drvspace.ini(**), IO.SYS & MSDOS.SYS

If space allows, it's not a bad idea to include a copy of COMMAND.COM on the (uncompressed) root of the floppy, just in case Drvspace fails to load (since, without command.com, you won't know what's gone wrong).

**NOTE - you MUST have a DRVSPACE.INI (on the uncompressed root of the floppy) to ensure that DRVSPACE.00n (and drive letters) are mounted (and allocated) - DRVSPACE will NOT load if this INI file can not be found !

For example, on your setup PC, if (after compressing A:) your Floppy 'physical' disk has been assigned F:, then on F: create a DRVSPACE.INI containing the following :-

ActivateDrive=F,A0 AutoMount=1 MaxFileFragments=120 MaxRemovableDrives=2 LastDrive=E

What's on the 'compressed' floppy ?

1) In root of the compressed drive :-

COMMAND.COM HIMEM.SYS IFSHELP.SYS (this 'dummy' driver 'reserves' space in the low 640kb for the Windows net drivers) EMM386.EXE XCOPY, XCOPY32, XCOPY32.MOD CONFIG.SYS AUTOEXEC.BAT
XMSDSK.EXE (for RAM disk set up) SCANDISK.EXE (for 'mounting' RAM disk as C: ..) PATCH.REG (this is actually copied from the server during the boot-up .. see NOTES below)

2) Create a \NET sub-folder (for Net BEUI operations) and add the following files :-

ADMINIST.PWL (if you auto-log in as administrator) ELNK3.DOS (DOS Driver for the 3com 3c509) NDISHLP.SYS NET.EXE NET.MSG NETH.MSG (actually, NET works OK without this file, but don't expect any /? help !) PROTMAN.EXE & PROTMAN.DOS PROTOCOL.INI SHARES.PWL (created when you set up a shared drive) SYSTEM.INI (yes, you must have a copy here as well as on C: ...) WFWSYS.CFG (who knows why this is needed ..)
You must have the 3com version of NET.EXE (440kb). If you use the Microsoft version (348kb) you will have problems later connecting to your 'server' via Net BIOS (which I never solved = yet another MS 'dongle' check perhaps ??).

Use the NET PASSWORD command to create your .pwd password files - and then add these to the floppy.

In the System.ini file, make sure the "Your_computer/name=" in the [Network] section is NOT the same as the one you wish to use in Windows later !

[If you use the same 'Your_computer/ name' in the DOS boot portion, Windows will halt during the start-up process with a 'Duplicate network name in Protocol 1' error. To continue you will then have to manually click 'OK' = and whilst this doesn't crash Windows or the network but it does prevent unattended start-up :-( ]

Contents of the system (.SYS), and control (.REG, .BAT) files


[Paths] WinBootDir=C:\WINDOWS WinDir=F:\WINDOWS HostWinBootDrv=F [Options] BootGUI=0 Network=1 Logo=1 Autoscan=0 ;BootWarn=0


Note on LASTDRIVE: To save a few more bytes of RAM during the DOS boot phase, LASTDRIVE can be set lower, HOWEVER don't forget Lastdrive when you choose to 'map' drive letters for network use ! (there's no point in trying 'net use m:' (see below) if you have set LASTDRIVE to E !).

This is required if you have more than one motherboard sharing the same Windows 'image' or, most likely the case, during the initial set-up, when a Node is using the 'default' Windows image.

When the Windows 'image' is launched, by default, it will have the 'machine name' that was chosen during the original set-up .. since each Node must have a unique name, either we need to make lots of unique Windows images OR we can have the boot floppy fetch it's own "patch.reg" from the server and have that change the default name to a specific one for each Node.

If Server disk space allows, once you have a Node running OK, you can copy it's 'known good running Windows image' back to the Server for future use by that node only. In this way that nodes' Windows image will be unique and no patch.reg will be required. You could then comment out that part of the autoexec.bat file dealing with patch.reg and make the floppy 'read only'.

Plainly this needs to boot the node by creating the RAM disk, fetching the compressed Windows (which must be no more than 30Mb in size) from the 'server' share (which I called 'images') and then cross boot into windows.

You should create your own, however you can follow this example for my "Node number 12" (setting the Node number makes a boot floppy unique to that Node) :-

rem change the seti Node number, Set N= , before using each new floppy
Set N=12 rem @echo off rem set up RAM drive, 36Mb (36000 kb) as C: from Top of mem. XMSDSK.EXE 36000 c: /t /y if errorlevel=3 goto RamOK echo echo ************************************************* echo ** Error! RAMDRIVE could not be found ** echo ************************************************* echo goto END :RamOK SET netcard=elnk3.dos SET protocol=protocol.ini set server=server set share=seti-%N% set account=administrator set logondomain=HOME set machname=seti-%N% rem - %MACHNAME% is useful later on (it's preserved across the Windows boot..) prompt=$p$g path=a:\dos;a:\;a:\net rem now start the network NET start basic /yes net use m: \\%server%\images HOME rem check drive mapped OK if exist m:\%share%\*.* goto mapOK echo echo ************************************************* echo ** Error! \\%server%\%share% failed to map ** echo ************************************************* echo goto END :mapOK rem get the right time from the Server NET time \\%server% /set /yes rem now remove any system/hidden bits & then do the copy attrib m:\%share%\*.* -s -h /s XCOPY m:\%share%\*.* c:\ /s rem sanity check (do we have at least some files ?) if exist c:\*.* goto CopyOK echo echo ************************************************* echo ** Error! Windows files failed to copy ** echo ************************************************* echo goto END :CopyOK rem get the correct registry tweak for node N ... (required during initial use of shared image) rem this is the only reason why the floppy can not be made 'read only' copy m:\reg%N%.reg a:\patch.reg if exist a:\patch.reg goto patchOK echo echo ************************************************* echo ** Error! no Registry patch found ** echo ************************************************* echo goto END :patchOK rem OK, that's it, kill the network link (must do it now, so Windows net drivers can load later) net use * /delete /yes net logoff /yes rem restore the 'hidden' / 'system' file attributes (only MS knows why ...) attrib c:\Drvspace.000 +H +s attrib c:\io.sys +H +s rem OK the biggie - does c: exist ? will DOS find a valid file system ? let's go see ... c:\ rem OK if we get here we have a c: - now let's mount the compressed Windows .... SCANDISK /MOUNT rem .. now reset the path (so DOS can find command.com, ScanDisk & Win) SET COMSPEC=c:\COMMAND.COM PATH = c:\;c:\windows;c:\windows\system;c:\windows\command rem OK, we now have access to regedit etc. on the compressed drive .. rem .. so make the Registry patch (to get correct m/c name from this floppy) cd c:\windows regedit /L:system.dat /R:user.dat a:\patch.reg rem .. now lets go = bye bye DOS, hello Windows ! rem (during test, use the /d:f switch to prevent 32bit disk drivers loading) WIN.com :END

My boot floppies

For comparison use, here is an example of a 'raw' (non-compressed) boot floppy
Here is the compressed boot floppy.

Note - it's not good enough to just copy the above files onto a newly formatted floppy disk - the floppy has to be made BOOTABLE (using a Windows 98 computer) first, and then COMPRESSED, as per instructions above

Click "Next>>" (navigation bar left) for Supporting BOINC and changes in technology since this was written.

Next page :- Reducing the boot image - (system size)