VOGONS


First post, by davidrg

User metadata
Rank Member
Rank
Member

Recently I've been playing a lot with networking old PCs (DOS 3.2+, OS/2 1.3+, Windows 3.x, 9x, NT 3.5-XP) using NetWare and, briefly so far, a NetWare Emulator (Mars NWE - same kind of thing as Samba). I use NetWare currently because I like it and because the 32bit DOS client only uses 4KB of conventional memory if it can't automatically load high so I'm fine to have the network client always loaded. Plus its something a bit different from the usual Windows NT / Samba / FTP.

Lately I've been exploring something I've never done before: network booting. I don't have any particular use for running diskless PCs - this is really just for fun and learning. I've posted a few screenshots of this over on the What retro activity did you get up to today? and it was suggested I make a thread so some of this info isn't buried. So here are a few notes (mostly what I posted over there) plus links to some more in-depth notes I've been making while exploring. A few weeks ago I did MS-DOS, perhaps in a few weeks I'll attempt OS/2, but right now I'm playing with diskless Windows 95:
img-91.png
(the floppy drive pictured isn't actually there, the drive is unplugged and the floppy controller disabled in the BIOS and yet it shows in windows regardless)

Network Cards and Boot ROMs
For network booting you need a network card with a Boot ROM installed. Boot ROMs are specific to at a minimum the ethernet chip used, if not the model of card, as the Boot ROM needs to contain enough of a network driver to send out packets to download a floppy disk image. Boot ROMs were usually an optional (paid-for) extra and some companies such as LanWorks made a business out of selling Ethernet Boot ROMs for a variety of cards.

Finding cards with a boot ROM is probably fairly hard today - for most people the Boot ROM would just be this annoying thing that slows down starting from a hard disk (or even prevents it all together). Thankfully Realtek and AMD at least provided boot ROM images for download - if you've got a compatible card all you need is an EPROM and an EPROM Programmer. I've started making a list of boot ROMs as I find them over here and I've tried the AMD PCnet one with VirtualBox (works fine). I've not yet managed to get the Realtek ones working with 86box. For Windows 95 however I'm using real hardware - a 133MHz Pentium with 64MB of RAM and a LanWorks BootWare ROM installed in an SMC EtherEZ (8416) NIC.

Boot Protocols & Server Software
A Boot ROM on its own won't do much without a server for it to talk to. There are a few protocols Boot ROMs used in the 80s and 90s which will affect what server software can be used:

  • Novell IPX: This is the oldest you'll probably see and its what the original Novell Ethernet cards (eg, NE2000) use as well as at least some BootWare ROMs. This firmware includes an IPX stack and a NetWare client - the boot rom broadcasts a find nearest server packet, connects to the nearest NetWare server and downloads SYS:LOGIN\NET$DOS.SYS. For these ROMs you'll need either NetWare or something that looks close enough - like Personal NetWare. Mars NWE and Microsoft File & Print Services for NetWare would probably work too.
  • RPL: Originally an IBM thing. Windows NT, NetWare and Personal NetWare support this and there is an implementation for Linux too. In the mid-90s Novell provided a Boot ROM that manufacturers could combine with their network drivers (NetWare Ready Firmware) which is what the AMD and Realtek ROMs use (probably why they're able to provide them for download - no royalties to pay). The Novell RPL Boot ROMs support multiple images when booting from a NetWare server - you get a list of disk images to pick from on startup.
  • PXE: This is the one used today. It works over TCP/IP. Retro systems likely won't support this so I've not bothered with it.

Diskless DOS
Booting DOS is pretty trivial. The basic process is:

  • Make sure your server is configured for the boot protocol in use. For NetWare and RPL that means setting up the RPL server. For NetWare and the old-style IPX Boot ROMs there is nothing to do.
  • Create a network boot floppy. When you boot from this disk it should automatically start your network client (Novell NETX or VLM client for NetWare, or the Microsoft LanMan/SMB client for Windows Networking/Samba) and be ready to login
  • Image the floppy disk and put it in the right place on the server. For NetWare this means running the DOSGEN utility and copying the resulting NET$DOS.SYS disk image over to SYS:LOGIN\

The server will then hand this network boot floppy image to network booting systems where it becomes a temporary A drive. Once the network client has started up and taken over control of the network card the boot image disappears and all further startup has to be done over the network. I've made a pile of screenshots showing the full process using NetWare 4.11 - Windows NT should be broadly similar. You've got to do all the same kinds of things, you'll just use more GUI to do them.

Windows 95
Windows 95 is another matter. The overall process is more complex and poorly documented. To start with you need the original retail or Service Pack 1 (95A) release - Windows 95B (OSR2/2.5) is not supported (nor is Windows 98). 32bit (PCI, MCA, EISA) and Plug'n'Play network adapters are also not supported, officially you need an ISA NIC. LanWorks does provide a workaround (near the bottom of the page). I don't know if this workaround is specific to LanWorks boot ROMs or if it works for PCI NICs in general.

The process for getting all this going is a bit more involved than simply making a bootable floppy disk but it is at least mostly GUI-driven even when you're using NetWare. I've made a pile of screenshots and notes notes showing the process getting it going. I expect the experience doing this with Windows NT 4.0 is probably pretty similar.

Actually booting to the desktop required a lot of trial & error. The documentation isn't great and there are bugs that never got fixed. The installer sometimes for reasons unknown to me didn't generate the network boot image. The program that finds the machine directory and loads the registry can emit a selection of undocumented and unhelpful error messages. Now I've got one last mysterious problem: Windows really wants a floppy drive on first boot and the machine I'm doing this on has a faulty floppy drive which is causing problems. Windows is only trying to copy a bunch of network bits to the floppy drive and I'm not really sure why - all the stuff its copying is already on the remote boot disk image. I guess windows thinks its being floppy booted? I'm not currently sure how to get around this besides giving it what it wants - a floppy disk in a floppy drive it can write some garbage to. The floppy drive can be removed once its booted to the desktop for the first time so its not a big deal (or wouldn't be if I had a working floppy drive handy).

Once its up and running performance is surprisingly good. I was expecting it to be obviously slow - especially with a 10Mbps NIC but it doesn't really seem much slower than running from a local disk. Booting takes about 24 seconds from "Starting Windows 95..." to the GUI and another 10 seconds to the desktop (most of which is it running my huge login script). The 64MB of RAM in my test machine probably helps quite a lot - I expect it will get a lot slower if it has to start using the network swap file. Actually running windows 95 diskless is a bit odd. There is no GUI login screen - you get a text-mode login about half-way through windows startup. The splash screen disappears, you login, and the splash screen comes back. When the GUI appears the login script runs to map drives, etc. To log off you've got to reboot. There is also no way to shut-down the system - when you try instead of getting the "now it is safe to turn off your PC" screen the computer just reboots.

Next up I might try removing half the RAM and installing Microsoft Office or Visual C++ to see what its performance is really like - wordpad isn't exactly much of a stress test! It should also let me see just how easy (or hard) it is to install stuff in this kind of setup. I've read already that Internet Explorer 4.0 will not install (possibly why OSR2/2.5 isn't supported) and I imagine a lot of other things may struggle with there being no C drive.

Other Notes - DOS Networking & NetWare
As I've been going through exploring NetWare I've been making a lot of notes and taking a lot of screenshots as it will probably be a long time before I go through doing a lot of this stuff again. A few of the potentially more interesting topics are:

Reply 1 of 17, by chinny22

User metadata
Rank l33t++
Rank
l33t++

Very nice write up!
Setting up a few servers for network booting is still something that I want to do at some point, give some of my old server something to do and make life easier for OS reinstall's.
Something like Netware 4.11 for dos and maybe Win9x or maybe windows server for that. but know i need a netware server somewhere on my network 😀

Not sure I'll ever try for fully diskless OS install like this though its still interesting to see it setup. I for one will be interested if you continue with other OS's (I did do a Netware/WFW setup as part of a TAFE course many years ago)

In a similar boat I was playing around with NT3.51 and SMS server to push out software, got as far as discovering it does not work without WINS protocol installed then real life got in the way and the project has stalled, for now.
NT3.51 Just turned 25 Today!

Reply 2 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Thank you very much.

What's about the 3COM cards, like the beloved 3C905C-TX or 3C905C-TX?
Have you plans to test it too? It has an integrated bootrom.

Is there a BIOS Option like "Report No FDD to Windows 95" in your diskless Windows 95 workstation?

Reply 3 of 17, by doogie

User metadata
Rank Member
Rank
Member

This is awesome! Great write-up on the subject. I've made heavy use of network resources to maintain and manage software on a variety of setups.

On PXE: depending on how retro we're talking, I suppose, it does work! I guess the line in the sand essentially would be PCI slots.

My retro LAN uses Windows Server 2003 R2 (which is, as you say, boring, but has pretty broad compatibility with a number of operating systems). NICs are always Intel PRO/1000 GT cards. Local storage on retro machines is usually just a small-ish SSD; no optical or floppy.

I use PXELinux to do the initial lightweight menu, which then stubs out to boot floppy images (for installing DOS or Win9x), or to RIS (Windows 2000/XP), or even to WDS (Vista-onward). Memtest86, Clonezilla and such are in that list as well.
File sharing is currently only CIFS, so DOS memory requirements are pretty obscene. I'd like to be able to address this for sure (EtherDFS perhaps?).

Thanks again for the NetWare insights. I did not have to manage those systems back in the day so it is very interesting to me.

Reply 4 of 17, by davidrg

User metadata
Rank Member
Rank
Member
chinny22 wrote on 2022-03-07, 11:07:
Very nice write up! Setting up a few servers for network booting is still something that I want to do at some point, give some o […]
Show full quote

Very nice write up!
Setting up a few servers for network booting is still something that I want to do at some point, give some of my old server something to do and make life easier for OS reinstall's.
Something like Netware 4.11 for dos and maybe Win9x or maybe windows server for that. but know i need a netware server somewhere on my network 😀

Not sure I'll ever try for fully diskless OS install like this though its still interesting to see it setup. I for one will be interested if you continue with other OS's (I did do a Netware/WFW setup as part of a TAFE course many years ago)

In a similar boat I was playing around with NT3.51 and SMS server to push out software, got as far as discovering it does not work without WINS protocol installed then real life got in the way and the project has stalled, for now.
NT3.51 Just turned 25 Today!

Yeah, I think network booting will be mostly useful for getting an OS installed to start with in the future - diskless Windows 95 is mostly just a bit of a novelty! I've got a single floppy disk that will install DOS 6.22 (uses a floppy emulator and loads the images off the network) and, if DOS is already installed, offers to copy the windows and NetWare client installers to C drive. Might be neat to see if I could turn that disk into a network boot image.

I've never played with SMS but I guess I have messed around with the Novell equivalent. The NetWare Application Launcher that comes with NetWare 4.11 eventually grew up to support application distribution. You take a snapshot of your PC, install the software, take another snapshot, and it figures out what changed, bundles it all up and loads it on to the server so it can be installed with a single click to other workstations. I tried using it to install SimCity 2000 and it seemed to work pretty well

Reply 5 of 17, by davidrg

User metadata
Rank Member
Rank
Member
Disruptor wrote on 2022-03-07, 14:28:
Thank you very much. […]
Show full quote

Thank you very much.

What's about the 3COM cards, like the beloved 3C905C-TX or 3C905C-TX?
Have you plans to test it too? It has an integrated bootrom.

Is there a BIOS Option like "Report No FDD to Windows 95" in your diskless Windows 95 workstation?

I queried my expansion boards database and it looks like I don't have any of the 3C905C-TX but I do have a 3C905B-TX (Fast EtherLink XL PCI) - do you know if that is the same? If so I might see if I can dig it out of the Great Box O' Cards on the weekend. I do have plans to try the Intel EtherExpress 16 as I've got a handful with flash chips installed. My research suggests by default they should have an old-style IPX rom loaded but I found what appears to be an update and a tool to flash an RPL ROM image to the card (a beta released to support larger servers).

As for BIOS Options, I looked around (this machine has an Award Software BIOS) but I couldn't find anything besides disabling the floppy controller entirely. I wonder if perhaps its showing up because the Boot ROM initially emulates a floppy drive to get things running. Perhaps Windows 95 is just remembering having seen that?

Reply 6 of 17, by davidrg

User metadata
Rank Member
Rank
Member
doogie wrote on 2022-03-07, 18:33:
This is awesome! Great write-up on the subject. I've made heavy use of network resources to maintain and manage software on a va […]
Show full quote

This is awesome! Great write-up on the subject. I've made heavy use of network resources to maintain and manage software on a variety of setups.

On PXE: depending on how retro we're talking, I suppose, it does work! I guess the line in the sand essentially would be PCI slots.

My retro LAN uses Windows Server 2003 R2 (which is, as you say, boring, but has pretty broad compatibility with a number of operating systems). NICs are always Intel PRO/1000 GT cards. Local storage on retro machines is usually just a small-ish SSD; no optical or floppy.

I use PXELinux to do the initial lightweight menu, which then stubs out to boot floppy images (for installing DOS or Win9x), or to RIS (Windows 2000/XP), or even to WDS (Vista-onward). Memtest86, Clonezilla and such are in that list as well.
File sharing is currently only CIFS, so DOS memory requirements are pretty obscene. I'd like to be able to address this for sure (EtherDFS perhaps?).

Thanks again for the NetWare insights. I did not have to manage those systems back in the day so it is very interesting to me.

EtherDFS is probably a good choice - apparently it uses around 4K of conventional memory and can be loaded high. I've not tried it myself (yet) but I've heard it really wants a FAT32 volume on the server for storing its files though I don't remember where I read that or what the reason for it was.

Another option could be Microsoft File & Print Services for NetWare if you can track down a copy. It certainly supported Windows 2000 server, maybe 2003 as well? It should make a Windows Server look like NetWare allowing you to use the Novell DOS clients. Mars NWE would also work - I've currently got an instance running on a spare Pi while I play around with it.

From my very lazy testing the 32bit DOS client (Client32: 386+, DOS5+) uses around 4K of conventional memory and will load high automatically if EMM386 is available, the older 16bit client (VLM: 286+, DOS3.1+, I've heard it works on the V20 too) uses around 13KB if loaded high but you can strip it down to the same footprint as the 32bit client if you're willing to sacrifice some features. If you're stuck on an 8088/8086 or MS-DOS 3.0 then you've got to use the antique NETX client which will grab around 47K if you can load the drivers high or around 76K if you cant.

Reply 7 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie
davidrg wrote on 2022-03-07, 19:26:

I queried my expansion boards database and it looks like I don't have any of the 3C905C-TX but I do have a 3C905B-TX (Fast EtherLink XL PCI) - do you know if that is the same?

No, it isn't. It uses different device drivers and onboard firmware.

davidrg wrote on 2022-03-07, 19:26:

As for BIOS Options, I looked around (this machine has an Award Software BIOS) but I couldn't find anything besides disabling the floppy controller entirely. I wonder if perhaps its showing up because the Boot ROM initially emulates a floppy drive to get things running. Perhaps Windows 95 is just remembering having seen that?

Perhaps you read in this topic: Phantom 'A' drive

Reply 9 of 17, by davidrg

User metadata
Rank Member
Rank
Member

If anyone wants to watch Windows 95 boot without any drives I got out my IP-KVM and made a screen recording. Video performance isn't great though - it feels much faster using it with a real screen, keyboard and mouse. But does demonstrate the weird pre-GUI login step, what the two windows folders look like (R:\Win95 is the shared windows folder, Q:\pc133 is the machine-specific windows folder), how long Excel takes to start, and how shutting down really just reboots:
https://www.youtube.com/watch?v=9mOgDrJwWP4

I've also managed to install Office 97 on it - turned out it wasn't too hard. I already had the CD on my server so I just ran setup /a to get it going. Setup asked for my organisation and for two directories to put stuff in. It seemed to know I was running a shared windows install. The first defaulted to a subdirectory of the shared windows folder and the other it wanted to put on some random network drive. The install took quite a long time as it was having to read files off the network and then write them back to the network. At the end it wanted to reboot but doing so resulted in a BSOD.

After rebooting there was no Office installed so I went exploring to see what it had actually done. The second folder it created seemed to contain a copy of the Office CD but running setup from there gave a different experience - this time it didn't ask for my organisation or CD Key - just my name. I could then choose to do a Network Install which completed fairly quickly and I had office available as soon as setup had finished - no reboot this time.

Performance wise the apps all seem to start fast enough - a little slower than from local disk but still plenty acceptable.

Internet Explorer 3 wouldn't install (invalid cluster size error). Visual C++ 4.0 wouldn't install (setup crashed). Visual C++ 5.0 refused to install because Internet Explorer wasn't installed. Probably Visual C++ 1.0 32bit or 2.0 would have worked but they're designed for NT 3.x so not much of a test.

Duke Nukem 3D worked fine though! And I guess any other DOS games that don't need to be run from DOS mode (which doesn't exist here) would be fine too. I'd be a little surprised if DirectX was willing to install on this so Windows games may have issues.

Reply 10 of 17, by davidrg

User metadata
Rank Member
Rank
Member

With Windows 95 working fine I decided to tackle OS/2, this time using VirtualBox. This VM isn't entirely diskless (it has a floppy drive and cdrom) but I don't think OS/2 would care if I removed them.

I tried OS/2 2.0 first with version 2.01 of the NetWare client but it turns out that combination (probably more so the client) only supports network booting with NE1000, NE2000 or NE2 network cards. Moved on to OS/2 2.1 and version 2.11 of the client - got a bit further with that. It would start network booting but crash with an error early on. There is very little information out there on network booting OS/2 from NetWare and nothing at all about the error I hit so I moved on to OS/2 Warp 3.

And OS/2 Warp 3 worked first try! The AMD PCnet driver is pretty flaky though - good chance it will crash during startup or shortly after reaching the desktop. This could be a VirtualBox bug or perhaps a newer version of the driver would fix the problem.
img-61.png
Weirdly it looks and works exactly like regular OS/2. It has a C: drive (which is really SYS:RPL2 on the server) and pretty much everything is where it was on the "template" computer. Unlike Windows 95 you could probably treat this as a regular OS/2 computer for the most part.

img-57.png
Like Windows 95 you have to login quite early in the startup process - before the OS/2 splash screen appears. You're not prompted for a username, just a password. The username is specified when the network booted workstation is initially setup so I guess the intention is one person per workstation. Once its all up and running you can still login to NetWare normally as any user you like but I don't think that affects who the operating system itself is running as - you'd be logged in to netware as yourself but the desktop belongs to whatever user logged in during startup. I guess OS/2 is really a single user operating system and this is just making it a bit more obvious.

img-28.png
Actually setting this up is surprisingly easy - I just followed the instructions in the manual and it worked! The whole thing is done using GUI tools. The basic process is:

  • Setup OS/2 how you'd like on a PC, install and configure the NetWare client
  • Use the NetWare client installer to copy C drive into SYS:RPL2 on the server
  • Use the NetWare client installer to configure remote boot workstations (pictured)
  • Create an RPL user on the server and sort out permissions on SYS:RPL2 and SYS:RPL2\USER - I did this all through NetWare Administrator on Windows but I could have run the 16bit version under OS/2.

I've not tried OS/2 Warp 4 but the NetWare client seems to be the thing thats actually making all of this work and Warp 3 and 4 use the same version of the client. So it seems like it ought to work. I'd probably give it a go but the client is hard-coded to SYS:RPL2. This means that you could have only one of OS/2 2.x or Warp 3 or Warp 4 on the server. OS/2 1.3 goes to a different directory on the server but I didn't try it because of the NE1000/2000/2 requirement.

If anyone wants to see how its done I made screenshots of the whole process in case I ever wanted to do it again. I think that pretty much completes my exploration of network booting all the things - DOS, OS/2, and Windows 95. Next I'll probably have a closer look at Mars NWE - try get long filenames working, find the missing DOS utilities if they're suitably licensed, and see if its usable on its own as a replacement for Samba or EtherDFS without a real NetWare server on the network.

If you want to see OS/2 network booting on video I got VirtualBox to record the process.

Last edited by davidrg on 2022-04-17, 07:42. Edited 1 time in total.

Reply 11 of 17, by bjwil1991

User metadata
Rank l33t
Rank
l33t

Now this is one interesting project.

Discord: https://discord.gg/U5dJw7x
Systems from the Compaq Portable 1 to Ryzen 9 5950X
Twitch: https://twitch.tv/retropcuser

Reply 12 of 17, by ThatIdiotCid

User metadata
Rank Newbie
Rank
Newbie

Wow! That's a blast from the past! Used to administer Netware 4.11 and 5.x machines. One thing I did notice, was that NT4 workstation was better behaved than Win 9x.

Other than that, I really enjoyed it. Especially compared to NT4 Server. NDS was miles better than that dopey domain model, and Zenworks was a lot of fun for inventory control and endpoint mgmt. I didn't like BorderManager or Groupwise all that much (and the less said about both Netware 5's Java-based Console One and the IPX-> IP translation servers the better), but I still miss Netware at times.

Reply 13 of 17, by ThatIdiotCid

User metadata
Rank Newbie
Rank
Newbie

I believe the last time I tinkered with it, was in GNS3, with the 4.11 server running in Vbox, with some NT workstation VMs acting as clients. (been a long time, though, since I left the server world behind 20+ years ago for Cisco, Juniper, and 802.11.

Reply 14 of 17, by Gopher666

User metadata
Rank Newbie
Rank
Newbie
  • PXE: This is the one used today. It works over TCP/IP. Retro systems likely won't support this so I've not bothered with it.

I love pxe, this old garbage RPL on the other hand 🤣. I don't even have one single network card or mobo which can do this. Anyway now that I set this up on my Novell server I realized with Vmware Workstation > AMD PCnet it's extremely easy to replace the BIOS with the RPL one so I would love to test it.

How about publishing your net$dos.sys here if you made it for the AMD PCNET card. I'm really not in a mood trying to make a shitty floppy image just to test this 😦

I found one for VIA and RTL8139 cards:

https://maques.hu/maques/rpl.htm

rboot.rpl Novell's rplboot.rpl file
via.sys (a net$dos.sys image for VIA Rhino [fetodi])
rtsodi.sys (a net$dos.sys image for Realtek RTL 8139x/810x)
dosgen.exe to create Novell like net$dos.sys
extract.exe to extract files from net$dos.sys (or any other diskimage) under DOS. (extract -x net$dos.sys)
rplfix.com for old RPL boot eproms. For more, see: rplfix.txt
rplodi.com you probably don't need this, but if booting fails after ipxodi.com, put this before it.

Reply 15 of 17, by davidrg

User metadata
Rank Member
Rank
Member

Attached are some boot images I pulled off my NetWare server. These are the same images I created as part of this process which will describe what all the files are: https://www.zx.net.nz/netware/client/dos-netboot/

I've got a few ROMs collected over here as well if you happen to have an EPROM writer, some EPROMs, compatible cards, and a strong desire to do this on real hardware: https://www.zx.net.nz/netware/client/rpl_rom.shtml (Unless vmware can emulate actual 16bit ISA NICs, real hardware is required for network booting Windows 95)

Attachments

  • Filename
    bootimg-examples.zip
    File size
    1.16 MiB
    Downloads
    44 downloads
    File license
    Fair use/fair dealing exception

Reply 16 of 17, by doshea

User metadata
Rank Member
Rank
Member
davidrg wrote on 2023-05-18, 02:38:

(Unless vmware can emulate actual 16bit ISA NICs, real hardware is required for network booting Windows 95)

Bochs and Qemu both seem to emulate NE2000 ISA cards and also support option ROMs. I think I've used all those functions of both at various times, but not for network booting Windows 95. I presume some other emulators can also be used?

Reply 17 of 17, by davidrg

User metadata
Rank Member
Rank
Member

yeah, they might work. I've tried 86box in the past and it didn't - the NIC emulations either didn't support an option ROM (AMD PCnet) or were too buggy and didn't work with ODI drivers whether under DOS or embedded into the option ROM (Realteak). It's also possible VirtualBox may have more NIC options than it exposes through the UI, though it would have to be something that Boot ROMs are readily available for - like an ISA PCnet or an ISA Realtek of some kind rather than NE2000.