Etherboot
Etherboot (
http://www.etherboot.org) is a free software project with the goal of creating BootROM images. The project supports nearly 250 models of network cards, at speeds of 10mbit, 100mbit, and Gigabit. The Etherboot project is supported by a very active development community that is constantly adding support for new cards.
The Etherboot BootROM images are fairly small, usually 16kb or 32kb in size. They are normally meant to be burned into an EPROM, but can also be configured to be loaded from a floppy disk, hard disk, or CD-ROM or used as a Network Bootstrap Program (NBP) for a
PXE BootROM.
Loading the Etherboot image from a floppy is a very popular way to get started with network booting. It lets you try different BootROM images without needing to use an EPROM programmer or buy a pre-made BootROM. Once you've found the correct BootROM image, you can then burn the image to an EPROM chip, continue to boot from floppy disk, install the Etherboot to a CD, or install Etherboot to a hard drive.
A very popular website for obtaining Etherboot BootROM images is
http://www.Rom-o-Matic.net. This site allows you to select the model of your network card and the format of the file. You can set various Etherboot options and then click the "Get ROM" button, and a custom BootROM image will be generated for you in a matter of seconds. You can save that image, and copy it to a floppy or burn it to an EPROM.
Etherboot is composed of two parts. The first part is the BootROM image. It contains the network card driver, the
DHCP client, and the
TFTP client. The second part is called first32, which is a Linux kernel loader. first32 knows how to load the Linux kernel into memory, how to set up the initrd, how to prepare the kernel command line arguments, and finally how to start the kernel running.
For Etherboot to load a kernel, the kernel must be combined with first32 and the initrd and stored in a single file. This processes is referred to as tagging the kernel and produces a layout shown in Figure 1. This is done with mknbi-linux, available on the Etherboot web site.
+--------------+
| first32 |
+--------------+
| |
| |
| Linux Kernel |
| |
| |
+--------------+
| |
| |
| initrd |
| |
| |
+--------------+
Figure 1. Layout of a tagged kernel image
--
JimMcQuillan - 06 Dec 2004
Universal boot floppy / hard drive / CD image
It seems that Rom-O-Matic.net is for generating images for individual drivers. If you are making a bootable floppy, you have a huge amount of available of space, so why not put on all the drivers?
BuildingAllEtherbootDrivers has detailed instructions for compiling your own universal boot floppy.
Thinstation contribs has a pre-compiled, universal boot image for floppy, CD-ROM, and hard disk. Note:
network_boot_floppy+cd+hd_540.zip seems to be newer than
BootDisk522b.zip.
All-drivers Etherboot floppy is another universal boot floppy. It differs from the above in that you can 1) boot straight from the floppy, or 2) wipe your hard drive and install Etherboot to your hard drive with either all the drivers in Etherboot v.5.4.0, or only the driver for the installed NIC. The floppy has several edit/remaster options as well.
Etherboot loading Etherboot
Jason Pattie has
documented how to overcome a problem with older Etherboot bootroms. LTSP v3.0 sometimes needs kernel command line args to be passed via
DHCP's option-129. Old Etherboot bootroms don't handle this properly, but it is possible to use the old Etherboot bootrom to load a newer Etherboot image, which in turn will load the Linux kernel, passing the options to the kernel.
Related Topic