What is Etherboot

Etherboot is a free software package for booting x86 PCs over a network. In principle this could be any network technology that TCP/IP runs on that supports broadcasting. In practice, the bandwidth required means it's only practical over LANs and some WANs. Etherboot is useful for booting PCs diskless. This is desirable in various situations, for example: Normally Etherboot is used to load Linux, FreeBSD or DOS. However the protocol and boot file formats are general, so there is no reason why it could not be used to load arbitrary images to a PC, including other OSes.

The components needed by Etherboot are


The online and probably most recent version of this page.

Source distribution

Contributing to Etherboot

Etherboot is a volunteer project done in my spare time. Many kind people have contributed in various ways, see the acknowledgement list. You can help in various ways:


NILO is the successor project to Etherboot.

Mailing list

There is a mailing list for all network booting issues. This is the best place to ask your questions as there are many experienced users reading this list. You need to be on the list to be able to post. To subscribe, send mail to with the one line in the body: subscribe netboot. Or you may try clicking here. Newer browsers will automatically fill in the mail for you and you only have to click on Send. If not, then type in the words subscribe netboot yourself.

An archive of the mailing list is available here.

Other links

Netboot is another package for booting PCs diskless. Some of the software provided in the Etherboot package actually come from Netboot. Netboot is maintained by Gero Kuhlmann.

Linux Terminal Server Project is an open source project to create the administration tools that will make setting up a diskless workstation easier.

Marty Connor operates the Thinguin web site which offers Etherboot ROMs and information about various thin client technology issues.

GRUB is a project that is developing a unified bootloader and has some network booting capabilities.

A HOWTO on turning older PCs into X-Terminals

Steve Noble has written some notes on setting up thin clients.

Sparcs don't use Etherboot or Netboot but here is a web page that shows you how to make an X-terminal out of a Sparc talking to a Linux server.

A collection of jumper settings for old network cards

A web page about networking software for DOS and Win3.x

Jerzy Tarasiuk has written some notes about how Novell (IPX) network boot ROMs work.

Linux Remote-Boot mini-HOWTO: Configuring Remote-Boot Workstations with Red-Hat Linux, DOS, Windows 3.1 and Windows 95 talks about booting from a commercial boot ROM product but a lot of the information is useful to Etherboot and Netboot also.

Australian residents can purchase EPROMs from me.

From Germany, Günter Knauf sells EPROMs.

Cetus Technology offer diskless workstations and servers.

Dynamic Results offer diskless workstations, Etherboot PROMs and related services.

Automated Control Products use Etherboot in their thin client factory automation products.

Netaudio is a neat way of redirecting audio to another computer on the network, especially a diskless X-terminal.

Recent versions of mtools have a floppy daemon which gives remote access to a floppy drive.

Booting the Bull Netstation

Serving SSH sessions shows how to configure a (possibly diskless) Linux/Unix host so that users can directly ssh to a remote hosts from the login prompt.

Bootix make commercial TCP/IP boot ROMs.

3Com - MBA Utility Disks and Flash Upgrades

History of Etherboot

In Linux circles Netboot appeared first. According to the docs Jamie Honan was the person who coded up the first version and specified the format of the tagged image files. This version used assembler code taken from packet drivers to interface to the hardware, only Western Digital (now SMC) NICs in the first instance. It also required a DOS environment to compile. Later on Gero Kuhlmann took over the development of Netboot and made tremendous improvements to it. Among other things he created a harness that would simulate just enough of a DOS environment so that unmodified packet driver binaries could be used in a boot ROM. This allows any NIC on the market that has a packet driver to be used immediately. He also migrated the development to a Linux (Unix) platform.

Etherboot was ported from FreeBSD by Markus Gutschke. He made it compile under Linux and added code to support tagged images in addition to NFS boot. Since tagged images are a more general mechanism and requires less boot rom code, this has become the preferred loading method. Markus has also coded most of the additional features between 2.0 and 3.0, such as additional bootp tags, ANSI screen escapes, etc.

Ken Yap came to Etherboot a bit later. His original objective was to produce a 16 bit version that could be used to netboot ELKS and other OSes on older CPUs. He has done much of the structural rearrangement of the Etherboot code.

Netboot and Etherboot have their strengths and weaknesses. Netboot supports a wider range of NICs because packet drivers are available for most cards. On the down side, Netboot is not autoprobing for ISA cards because the packet drivers require that the I/O address, IRQ and possibly the memory address be specified at ROM creation time. Thus a ROM is specific to a particular card configuration. Netboot ROM images are larger and would need a NIC that will accept large ROMs, or some arrangement to put the ROM code somewhere else in the memory address space. There is a design for a FlashROM card that's included with Netboot if you are handy with hardware. Etherboot has a smaller footprint and some compressed versions will even fit in 8 kB which all NICs support, as far as I know. Thus it will have a better chance of fitting in a NIC's boot ROM socket. Etherboot will autoprobe so the same ROM can be used in all configurations of a NIC. The cards that Etherboot supports are listed here. The support utilities are pretty much common to both distributions. So take your pick.

If your card is not supported by Etherboot, there might be a packet driver for it and you can use Netboot. But maybe you want an Etherboot driver. The possibility of creating new drivers depends very much on access to NICs and the hardware documentation for them. Unfortunately, writing a hardware driver is many times harder than writing an ordinary program. First the hardware specifications must be digested, then a testbench with the NIC must be set up. If the program crashes, there are no debugging tools so it's often back to printf statements. If you are still willing to give it a try, ask the mailing list and you will get advice on how to proceed.

A frequently asked question is: Can Linux NIC drivers be used by Etherboot? Unfortunately no, because the software framework of Linux and Etherboot are very different, due to their different origins and the very limited execution environment that boot ROM must operate in. However Linux drivers are often used as a source of reverse engineering information for NICs.

Spambot poison

Comments to Ken Yap.

Last modified 2000-03-15