logo
background
 Home and Links
 Your PC and Security
 Server NAS
 Wargames
 Astronomy
 PhotoStory
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Building a diskless Compute Node

Diskless Nodes
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.

Overview

A central 'server' will act as a 'hard disk' store for all of the processing 'Nodes'. Since the Nodes don't have hard disks of their own, they will use a 'DOS boot' floppy to fetch a compressed Windows 98 Operating System 'image' from the 'server'. DOS will load this 'image' into a RAM Disk on the Node and then the Node is 'cross booted' from DOS into Windows. Everything (especially the seti work-units and thus the 'work in progress') is held on the 'server' - so if power is lost you will still have the work done so far ! The only really clever bit is the 'cross booting' .... this is based on the fact that Windows 98 running from a compressed RAM Disk is unable to detect that there is no actual hard disk present ...

NOTE. To stay legal EACH NODE requires it's own Microsoft License - whilst I worked for a Company that threw away the Windows 98se Licences that came with their Desktop machines (and paid MS for Windows NT instead), you may have to buy w98se on eBay at anything from £20 to £50.

Hardware

You will need one Windows 98se machine to act as 'Boot Floppy' maker (it is just about possible to use a 'target' node to make the boot floppies, but this can be a real pain (especially if you have removed the DOS files from the 'node' in order to reduce 'wasted' space :-) ).

You will need a PC to act as your Network "Server"** (source of 'shared' folders) and to 'burn' CD's (you don't have to have a CD burner - it just makes life easier - below I assume you have one - if not, then substitute 'pile of floppy disks' or 'shared (network) drive' as required.)

**NOTE Since you are basically going to be using simple File Sharing (in a Net BEUI based network), you don't actually need a real Windows NT4 (or 2000) Server, however if you have one, it helps. The 'nodes' will have no hard disks of their own, so EVERYTHING must be held on the network 'shares' resident on the 'server' hard disk. This suggests you had better think of using a RAID MIRROR configuration (available only via Server software) otherwise the first hard disk crash is going to be VERY painful !

You will need a big pile of kit to act as the 'Nodes' :-

Node Hardware should be as near 'the same' as possible.

Image Especially try to ensure all your Network cards are the same (3com 3c509 ISA cards are cheap :-)). You will have to get each 'node' booting up in DOS and a lot of different cards means a lot different DOS boot floppies. It's much easier if you can just duplicate the first 'working' floppy for use with the other Nodes.

NB - the newer 3com905c PCI cards support direct Network booting (BOOTP). It MAY be possible to use this 'feature' to eliminate the need for (boot) Floppy Disk drives, on the other hand you will then definitely require a NT or 2000 Server (since 2000 Professional lacks support for BOOTP devices). If anyone out there manages this, please write in !

Try to obtain (near) identical motherboards

The ideal type are ones with built in Video** (this saves the cost of Video cards (and the pain of trying to find 'all the same') when all you actually need the video for is monitoring boot up and occasional checking of actual operation).

**Clever people can get rid of the need for video & monitor and do everything remotely (using some sort of Telnet window) - however this seems to need TCP/IP (as opposed to Net BEUI) and it's all a bit beyond me.

NOTE - yes, sharing main RAM with Video will 'cost' you some memory and maybe some SETI processing time (although I've never been able to measure any time loss).

The CPU Type/speed and Memory can vary

These have little effect on set-up, although even running a cut down Windows from a 'compressed RAM disk', you need an absolute minimum of 96Mb physical RAM. To do any 'real' work (especially if you have on-board video, which 'steals' from free RAM) you might as well fit 128Mb. If you have lots of spare RAM, you can fit the motherboard with 256Mb and skip a whole lot of aggro creating the 'minimum footprint' Windows 98se (see below). The only exception is if you decide to go the 'Hard Disk' (as opposed to 'Floppy Net boot') route. In that case 64Mb (or even 32Mb) will be OK.

NB. You will need a Hard disk when setting up your very first 'node' (it only needs to be 500Mb and can be re-used afterwards).

Collect together the Software you will need

1) The absolute most up-to-date option of Windows 98 = the 'se' (i.e. 98se). Microsoft have 'fixed' NT (and hence 2000) so it can't be launched from DOS and can't be run 'diskless'. And as for Windows 'Me' - well Microsoft has gone out of it's way to crap all over your attempts to run diskless (even to the extent of modifying Command.com so it refuses to run if no HD: exists (so put that Me CD up for auction on eBay (or in the dustbin) right now :-)).

2) If you have less than 256Mb RAM you will need '98lite' (to generate a small enough Windows 'image'). With 256Mb you should encounter few problems manually 'cutting down' Windows to fit onto a compressed RAM disk (you can expect approx 2x compression - so a 200Mb RAM Disk == 400Mb Windows !)

3) Part of the 'cutting down' using 98lite will be to eliminate MSIE & use the Windows 95 desktop 'Explorer' = so you also need (almost any) Windows 95 disk (I believe your Windows 98se Licence also covers using parts of Windows 95 on the same machine).

4) The 'XMSDSK Ram Disk' - this is a shareware RAM Disk - this is vital since it can be used to create a C:\ RAM disk from the top of RAM ... I've not found anything else that will do the same trick

Especially don't waste your time trying to use Microsoft's poor excuse of a RAM disk - it's been deliberately 'castrated' to prevent what we are about to do (for example, it won't create a 'C:' RAM disk nor does it seem to work above 32Mb).

5) The Network card(s) DOS Drivers. For the 3c509, you need the 3com 3c905_dos DOS disk which includes the 3c5x9cfg.exe configuration utility. This utility lets you can set the card into 'non-plug&play' mode and thus stop it changing it's I/O Address and Interrupt every time you turn it on ('Plug & Pray' can be a disaster for DOS networking, although from what I can discover, the 3c905c DOS drivers ARE able to cope OK).

On April 12, 2010, Hewlett-Packard completed the acquisition of 3Com. Since the HP acquisition, 3Com has been fully absorbed by HP and no longer exists as a separate entity.

6) TWEAKUI (yes, the NT version works on Win98) - so you can set-up the Windows 'image' to auto-logon itself to the network (there is no point in putting together an 'unattended boot up' DOS floppy if the Windows system then just sits there waiting for you to 'log-on' before it starts doing anything !).

7) and finally, the software you intend to run (eg. the seti386 'command line' client).

Putting it all together.

After booting into Windows, you will need at least 32Mb RAM of free RAM just to run Windows 98 (remember - this has to be without a swap file !).You also need enough RAM to run your application - for example, SETI will need about 16Mb on top of the Win98 RAM. So subtract 48Mb from your physical RAM and what's left can be used to for the RAM Disk. Typically, using 98lite and with UltraPack compression (and some free space) you will need to put aside about 40Mb for a compressed RAM disk (equiv. to '80Mb' at 2:1 compression). RAM is so cheap, it is only worth squeezing Windows if you physically can't fit enough RAM onto the Motherboard. So aim to fit 96Mb if SIMM (or 128Mb if DIMM).

NB. don't forget that motherboards with on-board Video will be taking DISPLAY memory out of the RAM you fit (use the board's BIOS to limit what the Video can use - 4Mb will give you fine SVGA). Thus we need 32 (w98) +16 (seti) +40 (RAM disk) +4 (vga) = 92, so 96 will give you enough free space to prevent Windows 'choking' when it finds you have turned off 'virtual memory' and it no longer has a 'swap file'.

General outline of what we have to do.

1) Set-up the Hardware (Network = non-plug&play, motherboard BIOS set to 'Legacy IRQ' for Network card etc.). This is your first 'node' so it will start off with a Hard Disk and CD drive.

2) Install Win98 to a HD: using 98Lite 'micro' setting (no MSIE, Win95 desktop)

3) Install NetBUEI networking only (remove all other protocols - they take up space) & set-up your mapped drive 'shares' to the 'Server'.

4) Install TWEAKUI & configure for auto-log-in

5) Minimise the HD: C:\Windows 'footprint' (can include moving some Windows support files, such as most of \INF folder, onto a Network 'share').

6) Compress the HD: image, check that the PC boots & logs-in !

7) Copy the C: 'compressed' image (from 'physical drive') to your network 'share'.

8) Now prepare the 'network boot' floppy - it will have to be 'compressed' (so that the DRVSPACE drivers are forced to load at DOS boot time).

9) Remove the HD & CD and use the compressed Boot floppy to boot your Motherboard as a 'Diskless Workstation'.

10) Tidy up the running system (configure unique machine name etc), and copy the compressed files back to Network share for future unattended boot.

NB. Make sure you copy the Windows 'image' (and FD) often ! This is both so you can go back to a 'previous' version and for use with the next diskless workstations.

You will need to make some small changes to each boot floppy (each node must have it's own 'name' etc) - this must be done on the Windows 98 PC (because NT etc. don't understand DRVSPACE compression).


Detailed explanation (for a diskless 96 to 128Mb system).

1) Purchase '98pro' on-line from the 98lite.com web site.
Find & download your network card DOS config utility (eg. from 3com site).
Find & download the XMSDISKRam disk driver (I encourage you to pay the 'shareware' fee - this RAMDISK is central to the system and the author deserves some reward).

Download TWEAKUI NT / 2000 from Microsoft (or elsewhere) - yep, it's what you need for Windows 98 ! (NB - last I looked it was Licence free).

2) USING YOUR WINDOWS 98 PC, prepare a DOS boot floppy with the basic DOS utilities.
You need this to prepare the temp. fitted hard disk for initial '98 image'.

Initially, you should be able to get all you need onto 1.4Mb - later we will have to prepare a 'compressed' floppy - (both for more space and to 'fool' Windows in letting us cross boot to the compressed RAM disk ... see later)

NOTE you can't use the Windows98se 'Make a Start-Up disk' function (from Add/Remove programs) to make the boot floppy - this is because a 'Win98se start-up disk' is a stupid 'hybrid' that holds some files in compressed form - and thus it has to create a (Microsoft) RAM drive during boot-up (to unpack these files onto = the logic of this escapes me ! just what you need when trying to fix a 'broken' system - half your DOS support files end up in what might be 'suspect' RAM and your CD drive just disappearing from D: ..). This silly trick caused me lots of trouble later on when I came to prepare the diskless node boot disk... but at the same time, you MUST use a Windows 98 PC to make the floppy - BECAUSE NO OTHER MICROSOFT OPERATING SYSTEM CAN DEAL WITH COMPRESSED BOOT FLOPPIES - and you won't be wanting the dreaded 'Incompatible DOS version' error ...

So - use Windows 98se to 'Format' a blank floppy with the 'Copy System files' option. Then add additional files manually [from the Windows\Command folder = you need at least SYS, FORMAT, FDISK, HIMEM, EMM386 plus MSCDEX with some 'flavour' of CDROM.SYS (eg. OAKCDROM.SYS)].

A more detailed discussion of what goes onto the boot floppy can be found on the next page.

With a bit of luck, your network card DOS utility will also fit (otherwise it can go onto the 'root' of the set-up CD-R (i.e. where you can get at it from DOS). If you have space you could add SMARTDRV for use ONLY during the Windows98 set-up phase - but DON'T be tempted to try & use it later, it gets very confused with compressed disks !

3) Prepare a CD-R containing your 'downloaded' files (98pro & it's licence 'password' file, TweakUI and the Network card config. utility. (if it didn't fit on the boot floppy).

You will also need both your Windows 98se disk (or at least the win98 cabs folder) and a Windows 95 disk containing the Win95 'desktop' - any Windows 95 disk EXCEPT 'osr2.5' will do (ie. 95, 95a 'osr1' or 95b 'osr2')

4) Boot using the Floppy.
FDISK your HD: into no more than one 500Mb** active partition. Then FORMAT (FAT16) and SYS your new C:

There is no point in making a bigger C: - of course you can use a 2Gb partition (and even create additional multiple partitions) on a large disk if you like watching Windows waste your time 'checking C: D: E: ...' during the install process :-)

**A smaller drive may cause problems with space during Windows install.

4a) Cross boot to HD: (to check you SYS'd it OK) and use the Network DOS utility to set-up the network card for non-plug&play (ie. force fix the I/O and IRQ).

Do it now - later on we will be relying on mapped network shares - not a good time to discover that your network card has just disappeared and Windows is showing the 'New Hardware' wizard (which isn't going to find very much since you moved all those space wasting INF files onto the (now no longer reachable) network share ...)

If you are using the 'standard' 3com 3c509 (or other ISA card) the 'standard' for DOS use is IRQ 10, I/O base 300. After setting the card (using the diag. utility), hit 'reset' (or power off) and during POST go into the BIOS set-up to change the motherboard mode to 'non-plug&play OS' and set the network card IRQ (10) to 'Legacy ISA'.

NB. If you are using a PCI card, be a bit careful - some motherboards will only allow a sub-set of IRQ's at each PCI card slot - you will need to make sure your Network card is in the right slot !

4b) If the motherboard supports APCM 'Power saving' modes (most new ones do) decide now if you want to turn them off (in the BIOS). But be careful :-)

i) Leave it on and you can come back to find the node is 'hibernating' or dropped the CPU clock by 75% 5mins after you left it (so your seti time shows '9234 hrs' :-) ). Better be careful of those BIOS settings.

ii) My 'el-cheapo' brand motherboards seem to allocate an IRQ irrespective of the APCM setting- this leads to a lot of 'Windows has found a new Device' Wizard running and 'Windows is ready to load drivers for Device = Unknown Device' so you might be better leaving it 'on'.

iii) If APCM is 'on', and you let windows 'turn off' the display, sometimes it won't turn it back on again :-) (see 7) = better say 'always on' and use the 'Blank' screen saver).

iv) There is NO WAY you can 'mix and match' motherboards with different APCM BIOS settings (the Windows node 'image' gets very upset if you change the motherboard power setting from 'on' to 'off' = even to the extent of giving you spurious errors such as 'Insufficient Buffer space' and 'Your BIOS connection limit has been exceeded' during boot up :-) ) ]

5) Insert the 98pro CD, run 98pro (enter the 'decode / password' key when prompted)

6) Go to the just now created c:\98install folder and run 98Lite.
When prompted, choose '98micro', 'N' for no system file checking.

Insert the '98 (and '95) disks when prompted...

7) Select 'Custom Config.' and configure the system (make sure you select 'Disk Compression Tools' and I recommend 'additional screen savers' (which includes the exceedingly useful 'Blank' Screen saver (honest - setting 'Blank' allows you to 'turn off' the display without worrying if it's ever going to 'turn on' again !).

8) Get the system up & running. Delete the 98install folder from the HD.
9) Set up Net BEUI networking (then remove all other protocols) & map a drive letter to your '98image' Server network share. Install TWEAKUI and set up auto logon.

'Install' your application files (SETI). Actually, to save space, typically you will be running your application program (& it's support files) from a network share. So set that up now (Map a driver letter, put the app. on the server, create a short-cut to the app. and add then add the program short cut to your w98 local 'Startup' folder (assuming you want it to launch every time the Node boots into windows) etc.

10) Turn off Virtual Memory, reboot & and delete the swap file !

11) Delete all the Modem '.INF' files (you are never, ever, going to need them)

If you need the space (and all your Hardware is identical), you can move all the rest of the INF files (except 'apps.inf') to another network share (this is one share that can be shared with all the other diskless nodes). Don't do it if your Hardware differs (INF files are needed to resolve those differences, usually BEFORE the network goes 'live' on the node). It's a good idea to have the Win98 folder (containing the Win98 CAB files) on the same share.

12) Empty the Recycle bin. NB. don't set Recycle to 'delete immediately' just yet.
You may need to recover some files later !
Compress C: & then (again, if you need the space) re-compress using 'UltraPak' mode.

13) Run the Compression Agent to move most of the free space out of C: (leaving about 4Mb).

14) Reboot to ensure all is OK (TWEAKUI should start up MS Networking, the shares should map and your application program should start after loading itself from one of the shares).

15) Now check the size of DRVSPACE.000 and make any further reductions if necessary. Your target RAM disk size (which will be approx = DRVSPACE.000) depends on how much physical RAM you have. You need to leave about 40Mb for Windows98 to run in plus however much your app. (seti) needs.

For minimum 'foot print' :-
Remove the following folders (many are, or should be, empty) from c:\windows\
'Cookies', 'Config', 'Help' (and the ftsrch.dll (full text search))
'History', 'Media', 'Spool', 'sysbackup'
'temporary internet files' (if present)

Remove the following folders from c:\windows\system
'color' (should be empty anyway)

On c:\, 'find' and delete -
all Windows\Help (HLP, CNT)
all sound files (WAV)
all images (BMP, etc. files).
all 3 'Logo*.sys' files

Now for the big files... the following can go
C:\windows\winhlp32.exe (you have already dropped all the .hlp files it might have 'read')
C:\windows\win386.swp - the swap file left over after turning off virtual memory
C:\windows\clrviddc.dll (some stupid streaming video support file)
C:\windows\msms001.vwp (audio Codec params)

Now lots of small files.
c:\windows\fonts = remove all EXCEPT those the 2 required by Windows itself (Marlett & Lucida Console) (and any required by your app.)

c:\windows\inf = you can remove everything except 'apps.inf' (after this you won't be able to change your Hardware, except by using a copy of the INF folder on your network share, which is ONLY possible if you can get the node to 'log-in')

All the multimedia support files can go - for example, in Control Panel, go to Multimedia, Devices and DELETE all the Video & most of the Audio devices ..)
(you already got rid of MODEMxxx in 11 above, but there are a few more unwanted 'just in case you have the Hardware' support crap that can go -
Mvoice, msvideo, msvfw32, lmrt.dll, rasapi32 (the dial up modem support dll)
Look for other Multimedia crap that can go - JOYSTICK for example ...
After removing the MM drivers, the MMM & Modem Control Panel applets can go
(c:\windows\system\mmsys.cpl & modem.cpl)

The following device drivers (c:\windows\system)
All MCI*.drv (more multimedia drivers) & midimap

All the 'DirectX' 'games' support crap (Dsound, Draw, ddraw16, dhelp)

C:windows\system32\drivers is mainly full of multimedia crap - most of it can go

The entire Windows\COMMAND\ folder can go (but, 'bye bye DOS support').

Various other files can go - try searching for all files over say, 200kb, sort by size and see what their 'properties' suggest they might be used for (any that say 'DirectX' whatever can usually be 'deleted' (to the Recycle bin)). Don't get to carried away or you will be re-installing Windows a lot :-)

16) After 'deleting' above, Defrag. C:, re-compress, move empty space out of compressed vol. & then re-boot to make sure the system is running - if not, you are going to need to restore some file(s) from the Recycle Bin :-)

17) When all is OK, you can Empty Recycle & now set it's 'Properties' to 'Do not move to recycle, delete immediately'. Then delete the 'Recycled' (bin icon) from the root of C:.

18) If not already done, use TWEAKUI to setup auto log-in and then reboot as a final check that all is working (ESPECIALLY check the Network shares !).

19) Defrag. & re-compress using UltraPack. Move empty space out of C: (again, leaving about 4Mb space).

Make a final check on DRVSPACE.000 - if it is less than 30Mb that's about the best you are going to do (otherwise revisit (15) above).

20) Copy the entire contents of the 'host' drive (i.e. the one that contains the "Drvspace.000" file) onto the network 'share'. Add ifshlp.sys, Scandisk.exe (and scandisk.ini) to this 'share'. Adding command.com might also be a good idea.

At the end of the DOS boot sequence we will change the 'PATH=' to C:. At that point having ifshlp.sys on the root of c: seems to be vital to ensuring that Windows can install the 32bit version of your Network card driver.

Scandisk is needed to 'mount' the compressed Drvspace.000 (as the new C:). Adding command.com is 'just in case' (i.e. when :-) ) something goes wrong (after setting 'PATH=') and stops Windows actually launching.

Prepare the node for 'diskless' operation by removing the Hard Disk (and CD) drives.

Note - if you need access to the CD when running 'diskless', this can be done by setting the CD drive to 'Master' and specifying the CD Drive letter = D when loading the CD driver. You have to do this since otherwise when DOS boots it will assign the CD drive as 'C:', before you have a chance to set-up the RAM Disk.

How to build the boot floppy

21) Now prepare a Compressed boot floppy for Diskless Workstation use .
a) Starting with the basic DOS boot floppy, first Compress it in UltraPack mode.
b) Then add XMSDISK& the NET sub folder, the DOS (LANMAN) network drivers and SCANDISK.
c) Prepare the Autoexec.bat file (so that it creates a RAM disk, logs-on to the Network, copies the 98image DRVSPACE.000, halts the network, uses SCANDISK \MOUNT to mount the RAM disk as C: switches to c:\, does any .REG tweak needed (to make this node unique) and then cross-boots with a final 'WIN' !).


Click 'Next>>' on the Nav. Bar (left) for detailed instructions on "How to create the boot floppy"
22) Insert Floppy and boot !

Next page :- Node boot - (floppy)

[top]