Etherboot is a free software package for building boot ROMs to boot
computers over a TCP/IP network. It makes use of DHCP (or bootp)
and TFTP during booting. Etherboot contains its own drivers for
several commonly used network cards, along with the ability to build
ROM images for them, as well as .COM programs that can be run from
DOS. The LTSP uses Etherboot for booting their workstations.
Netboot is the original free software network boot code designed
for making boot ROMs. It makes use of the "packet"
network drivers included with many network cards to build a ROM
image that can boot from the network. While this approach does
allow it to cover a large range of network cards it is at the mercy
of the quality of the packet drivers included with the network card
(often marginal since the packet drivers are not extensively used
these days), and in some cases the packet drivers are far too big to
be usable (in one case the packet driver file was nearly 64MB, about
4 times what will fit in a boot ROM). If the network card you are
attempting to boot will not work with Etherboot, Netboot might be
NILO is the successor project to Etherboot. It is attempting to
create a product that can be put into a network card boot ROM which
will support the PXE standard. At present it isn't really ready for
use, but looks very promising.
The Linux Terminal Server Project (LTSP) provides a Linux distribution
(for want of a better term) that is customised towards network
booting multiple diskless workstations using Etherboot. They have
a series of RPM files available including pre-compiled kernels,
X servers, and a base package including all the necessary files
for a root file system, along with a central configuration file.
Their distribution is set up to work with a read only NFS file system,
and they make use of symlinks into a ram disk for things that need to
be updated. These features make it quite feasible to network boot
a dozen or more diskless workstations from a single configuration.
Their site also includes a lot of very useful information on how to
boot diskless workstations from the network, as well as notes from the
various talks they have given on the concept. One of their sponsors
DisklessWorkstations.com is able to provide
ready to use boot roms to work with the LTSP software.
The Diskless Nodes HOWTO describes how to set up a diskless computer
that boots over the network, using a boot rom and a root NFS file
system (exported read/write). This technique described in the HOWTO
is close to the example configuration described in this article. It
includes a useful description of how the network booting process
works down to identifying individual machines.
pxelinux, by H Peter Anvin, is distributed with the syslinux package,
and at present is in BETA form. It provides a second stage boot
loader that works in the PXE (Preboot Execution Environment) to give
a configurable boot loader that can load a Linux kernel (and
optionally a ram disk image) via TFTP. The current BETA versions
work reliably with only a few quirks; the most annoying one found
with the hardware in the example in this paper was that pxelinux's
messages wouldn't display on the PCI video card making diagnosis
difficult. They did display properly on the built in video, so this
may be a hardware specific problem. pxelinux requires the use
of a slightly customised TFTP server available from the
same kernel.org mirror sites as syslinux/pxelinux.
BpBatch is a PXE second stage boot loader that is very configurable
and able to perform a wide variety of tasks prior to booting an
operating system including partitioning and formatting a hard drive,
making it suitable for use as the basis of a replication server. It
also has considerably support for interacting with the user in the
form of menus (text and graphical) and fairly extensive scripting
support. By default BpBatch is set up to cache files it downloads
from the network on a local hard drive partition (only downloading a
new copy if the original changes), but it is apparently possible to
disable this for a truly diskless system. While the source to
BpBatch is not available, the package itself is available for free
PXE is a part of the Intel lead Wired for Management
initiative. PXE provides a programming environment for code to
execute prior to loading an operating system accessing services over
the network and on the local machine. Increasing numbers of PCs are
being supplied with support for PXE built in, and there are several
second stage boot loaders that make use of PXE.
The Network Audio System provides a network transparent, client
server audio system, and was originally developed at NCD. It can
be used to "pipe" the audio from an application to another
machine for output.
A somewhat experimental Linux kernel modification (for 2.3/2.4
kernels) which will transparently forward attempts to open a
/dev/audio (and other audio character devices) to
another machine across the network.