Using rom-o-matic, or compiling Etherboot yourself, you will be able to generate different file types, depending on your needs.
Those file types shall be explained here:
These files are meant to be used on floppy disks. If you obtained such a file, copy it to a floppy: Under Linux,
cat etherboot.zdsk > /dev/fd0
will mostly do the trick. Programs for windows are also available; raw disk access is an add-on-feature on windows, which
rawrite can be used for. RedHat has an explanation of rawrite usage.
Those files can also be used to run Etherboot inside VMware. Bochs and qemu might also work.
Binary ROM images are meant to be burned into a ROM chip, which then is set into the ROM socket on a network card.
Those files can also be patched into a Mainboard BIOS, at least for Modular Award and AMI BIOSes this has been done successfully.
The advantages of adding EtherBoot into a mainboard BIOS:
Read this article to find out how to patch Etherboot into a Mainboard BIOS.
Information about using .zrom files in VMware and bochs is also available.
A Codebreakers-Journal article describes the whereabouts of Option ROMs in the PC boot process.
Those files are meant to be burnt onto a CD-ROM. Although very small (what a waste of disk space), there might be situations where PCs can reasonably be booted from CD-ROM instead of floppy disk, to run Etherboot later.
The difference between those two lies in the mechanism of disk access (and details are to be found in the source, if you really need to know). Try one, if it does not work with your BIOS, try the others. ** A recommendation of the method rather expected to work would be nice.
Those files are meant to be loaded by any of those bootloaders. To the bootloader, it will look like a Linux kernel, so just go ahead as you would with inserting another kernel file into your bootmanager configuration.
Marty Connor wrote an explanation on how to use .zlilo files on a floppy:
First, you need a formatted floppy. I would recommend doing: fdformat /dev/fd0H1440 Which will low-level format a standard double-sided 1.44M floppy disk. If your floppy is already DOS formatted, you can probably skip this step. Next, you can do: mformat -f 1440 a: Which puts a DOS filesystem on the floppy ( and makes sure the floppy geometry is known :) ). Next, let's use SYSLINUX to make the floppy bootable: syslinux /dev/fd0 After this step, you have a bootable floppy, but nothing to boot. Let's fix that. First we'll need something to boot. Make a .zlilo file using rom-o- matic.net or, since you're writing a driver, something like: make bin/mynic.zlilo Let's put it on the DOS floppy, using an 8.3 format name: mcopy bin/mynic.zlilo a:mynic.zli Now, we just need to tell SYSLINUX to boot our image. For that, you need a file called "syslinux.cfg" on the floppy. So first, create a text file in emacs, vi, or whatever your favorite text editor is, and put the following three lines in it: DEFAULT mynic.zli LABEL mynic.zli KERNEL mynic.zli Save the file as syslinux.cfg. Now, copy the file to the floppy with: mcopy syslinux.cfg a: You can do: mdir a: to see the contents of your floppy: Volume in drive A has no label Volume Serial Number is 063C-F9DA Directory for A:/ ldlinux sys 8236 2006-06-21 10:43 mynic zli 25162 2006-06-21 10:50 mynic.zli SYSLINUX CFG 57 2006-06-21 10:58 syslinux.cfg 4 files 33 512 bytes 1 422 336 bytes free You now have a bootable DOS formatted floppy that you can put into your test machine, and it should load and run your .zlilo formatted Etherboot image. One of the nice things about this is that when you want to update your floppy, you can just do: mcopy mynic.zlilo a:mynic.zli and the floppy is ready to go. It makes for easy testing. Of course, if your testing machine has a hard drive, you can use GRUB or LILO to load an Etherboot .zlilo (or .lilo) image. LILO needs to be run again if you copy a new image onto the media, because it stores the disk location of the file. GRUB and SYSLINUX find it by name, so just putting it in the right place with the right name is enough. I hope this message is helpful. It probably should be on the Etherboot wiki or in an FAQ. (anybody want to do that? :) Corrections and suggestions to this recipe are welcome. I am sure there are other ways to achieve the same effect. In particular, if the syslinux.cfg file contained: PROMPT 1 TIMEOUT 30 DEFAULT mynic.zli LABEL mynic.zli KERNEL mynic.zli SYSLINUX would display a "boot: " prompt for 3 seconds before booting, and allow you to type in a filename instead of "mynic.zli". This might be useful for testing alternative images without deleting the original one. Please let us know how things go, or if we can offer other suggestions to make your development task easier. Regards, / Marty /
An EtherBoot initial load from USB flash media is quite staightforward provided of course that your BIOS can boot from USB in the first place. A modern machine will probably be able to do this.
Your BIOS should really be able to boot from any sensible arrangement of partitions and boot sectors, but it might insist that a ZIP DRIVE geometry be used.
Once Linux is running with USB storage support, an inserted USB key will appear as a SCSI drive and be called something like /dev/sda, /dev/sdb, /dev/sdc,… in the following guide, the key is referred to as /dev/sda.
Be certain which device name refers to your flash key as this device is about to be irrevocably erased
Module Size Used by sd_mod 19472 0 usb_storage 35588 0 libusual 14864 1 usb_storage uhci_hcd 25100 0 usbcore 141956 4 usb_storage,libusual,uhci_hcd
sda: sda1 sd 2:0:0:0: Attached scsi removable disk sda
dd if=/dev/zero of=/dev/sda bs=1k count=128
sfdisk /dev/sda [ENTER for defaults then (w)rite partition table]
Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 1021 1022- 124683+ 83 Linux /dev/sda2 0 - 0 0 0 Empty /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty
sfdisk /dev/sda -A1
root@shark(/flash)# ls ldlinux.sys r8169.zli syslinux.cfg
root@shark(/flash)# cat syslinux.cfg default r8169.zli
An older machine may insist on a geometry which appears to your BIOS as a standard ZIP drive having 64 heads and 32 sectors per track. The number of cylinders depends on the capacity of the drive. A ZIP drive boots from partition 4.
mkdiskimage -4 /dev/sda 0 64 32
.zpxe files are meant to be loaded BY a PXE ROM, so that Etherboot can replace the PXE functionality. Please read also A method to work more than one stage of PXE with stupid DHCP servers.
.com files are straightforward: Boot DOS, execute etherboot.com (except that DOS only has 8.3 filenames…). You will have to find out though wether etherboot works with EMM386 loaded, for example.