But, Ha, Ha, it's the usual Microsoft 'joke' that only works if you have Windows already installed on the 'target' PC ... (the reason why a Windows created 'NET 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 due to hard disk problems, and the ONE tool Microsoft gives you that wil boot-up a system with a non-booting hard disk (and then save any files you can recover to a network share) and it relies on a PERFECTLY WORKING hard disk drive == this is NOT impressive :-) ).
Much better is to take the NET components from Window NT4 - or just go find 3com's DOS boot disk set .. (which is by far the best option). NB - if 3com think these files are Licence Free (or covered by your Win98 Licences) I'm prepared to go along with them ....
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 Novell 'server' it's a bit pointless - anyway, all the foregoing has assumed Net BEUI & 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.
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, COMMAND.COM)
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 DRVSPACE.000 from the network, the SCANDISK /MOUNT command ONLY works if the DRVSPACE driver has ALREADY been loaded. 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 A: ?
Root will contain DRVSPACE.000 (of course) plus Drvspace.bin, Drvspace.ini(**),
IO.SYS & MSDOS.SYS
It's not a bad idea to include a copy of COMMAND.COM on root just in case Drvspace fails to load (without command.com you won't know what's done wrong).
(**) NOTE - you MUST create a DRVSPACE.INI (on the uncompressed 'drive') 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, if your Floppy 'physical' disk has been assigned F:, then on F: create DRVSPACE.INI containing :-
ActivateDrive=F,A0
AutoMount=1
MaxFileFragments=120
MaxRemovableDrives=2
LastDrive=E
2) Create a 'NET' sub-folder (assuming this is where Protocol.ini says the net files are, as 3com's one does) and copy over the files needed :-
3) 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
DRVSPACE.BIN, .SYS & .INI
XMSDSK.EXE (for RAM disk setup)
SCANDISK.EXE (for 'mounting' RAM disk as C: ..)
PATCH.REG (this is actually copied from the server during the boot-up .. see NOTES below)
4) In the \NET sub folder (for Net BEUI operations) :-
ADMINIST.PWL (if you auto-log in as administrator)
ELNK3.DOS (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 ..)
NOTES
Ideally use the 3com NET file (440kb) - if you have the MS NET (348kb) you will
have problems later connecting to your 'server' via Net BIOS (which I never solved - yet another MS
'dongle' 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 "computername=" in the [Network] section is NOT the same as the one you wish to use in Windows later !
[If you use the same 'computer name' in the DOS boot portion, Windows will halt during the start-up process with a 'Duplicate network name in Protocol 1' error (which you will then have to manually click 'OK' in order to continue) - this doesn't stop operations but does prevent unattended start-up :-) ]
MSDOS.SYS
=========
[Paths]
WinBootDir=C:\WINDOWS
WinDir=F:\WINDOWS
HostWinBootDrv=F
[Options]
BootGUI=0
Network=1
Logo=1
Autoscan=0
;BootWarn=0
CONFIG.SYS
==========
DEVICE=A:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
DEVICEHIGH=A:\WINDOWS\IFSHLP.SYS
LASTDRIVE=M
Note on LASTDRIVE
To minimize RAM usage 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 Z:' when LASTDRIVE is set to M !).
PATCH.REG
This is required if you have more than one motherboard sharing the same Windows 'image' or, most likley the case during initial set-up, a Node is using the 'default' Windows image (when this Windows is launched, it will whatever (default) 'machine name' was chosen during the original set-up .. since each Node must have a unique name, each boot floppy fetches it's own "patch.reg" from the server and changes the default name to one specific to it's own Node).
Once you have a Node running oK, you can copy the known good running Windows image back to the Server (for future use by that node only), after which, that Nodes Windows image will be unique and no patch is required. You could then comment out that part of the autoexec.bat file dealing with patch.reg and make the floppy 'read only'.
What's in AUTOEXEC.BAT ?
=======================
Plainly enough to boot the node from the network 'server' and then cross boot windows
...)
OK, here's mine (this example for 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
:RamOKSET 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 usefull later on (it's preserved across the Windows boot..)
prompt=$p$g
path=a:\dos;a:\;a:\netrem now start the network
NET start basic /yes
net use m: \\%server%\images HOMErem check map 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
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:\ /srem 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
:CopyOKrem get the correct registry tweak ... (required during initial use of sharded image)
rem this is the only reason why the floppy can not be made 'read only'
copy m:\reg%N%.reg a:\patch.regif exist a:\patch.reg goto patchOK
echo
echo *************************************************
echo ** Error! no Registry patch **
echo *************************************************
echo
goto END
:patchOKrem OK, that's it, kill the network link (must do now, so Windows drivers can load later)
net use * /delete /yes
net logoff /yesrem restore the 'hidden' / 'system' file attributes (only MS knows why ...)
attrib c:\Drvspace.000 +H +s
attrib c:\io.sys +H +srem 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 /MOUNTrem .. 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\commandrem 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.regrem .. 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
ends.
Sept. 2001-2002.