About EtherBoot
Etherboot is a software package for creating ROM images
that can download code over an Ethernet network to be executed on
an x86 computer. Many network adapters have a socket where a ROM
chip can be installed. Etherboot is code that can be put in such a
ROM. Etherboot is normally used for for booting PCs diskless. This
is useful in various situations, for example:
- An
X-terminal.
- Clusters of compute servers.
- Routers.
- Various kinds of remote servers, e.g. a tape drive server
that can be accessed with the RMT protocol.
- Machines doing tasks in environments unfriendly to
disks.
- A user
platform where remote partitions are mounted over the network and
you are willing to accept the lower speed compared to
disk.
- Maintaining software for a cluster of equally configured
workstations centrally.
Etherboot can boot computers faster than from a disk
because there are no delays in spinning up disks, etc. A moment's
calculation will show that even with a 10Mbit Ethernet, sending a
500kB kernel will take only a couple of seconds typically. With
100Mbit Ethernet it gets even better.
Compared to booting from solid-state devices, e.g. Flash
disks, Etherboot has the advantage of centralising software
adminstration, the tradeoff being the dependence on a server. This
can be partly alleviated by providing redundant servers.
Etherboot can work with RAM disks, NFS filesystems, or
even local disks, if desired. It's a component technology and can
be combined with other technologies to do things the way you
want.
Etherboot is usually 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.
Etherboot is Open Source under the GNU General Public
License Version 2 (GPL2).
The
components needed by Etherboot are
- A
bootstrap loader, usually in an EPROM on a network card, or
installed in the flash BIOS, but could be put anywhere in the
address space the BIOS probes in. For testing this could be put on
a floppy disk or a hard disk partition. Some configurations may
even be always run from a floppy disk (e.g. temporary testing
setups or pedagogic uses).
- A DHCP
or bootp server, for returning an IP address and other information
when sent a MAC (Ethernet card) address.
- A tftp
server, for sending the kernel images and other files required in
the boot process. Alternatively, Etherboot can boot from an NFS
mount.
- A
Linux or FreeBSD kernel.
- Optionally, a NFS server, for providing the disk
partitions that will be mounted if Linux or FreeBSD is being
booted.
- Optionally, a RAM disk contained in the loaded image. This
can be the initial RAM disk if desired.
- Software tools for building the download image, and tools
for debugging.