booting zipslack over nfs overview, part 3 of 4

Gregory Nowak greg at
Sat Nov 8 22:58:50 EST 2003

If you want to remove or install any packages, you should chroot to
/tftpboot/, and do so now. 

Now, you are ready too cook up your own kernel. Here are the options
essential for boot strapping the kernel and the rest of the system via
tftp, and then nfs.

# General setup

# Networking options

# Network File Systems

You will want to of course, also include support for your network
card, and any other hardware.
Also note that I've run across info somewhere (can't remember where), which claims that 2.6.x kernels will depend on on an external means of getting dhcp info, so the method outlined in this setup may not work in the future.

Once you've built your bzImage, and moved your modules into /tftpboot/, it's time to prepare your bzImage to be network-bootable. 
First, you will want to make your bzImage mount the root fs in read-only mode. To do that, we will use the rdev command as follows

rdev -r bzImage 1

Next, you will need to set the root device to /dev/nfs. Before we do that though, you have to create /dev/nfs on the machine on which you are preparing the kernel (not in the zipslack distro you currently have in /tftpboot). The /dev/nfs device is a character device, with major number 0, and minor number 255. Create it with the following command.

mknod /dev/nfs c 0 255

Now, you will want to set the root device with rdev as follows.

rdev bzImage /dev/nfs

You may delete the /dev/nfs device.

There is 1 final step to make your kernel network-bootable. This last step adds an etherboot header to your kernel.
In order to do this, you will want to download, unpack, and build the mknbi utilities from Once there, choose the download link, choose 1 of the mirrors, and search for "Mknbi utilities".

Once you've built mknbi, use the following command to add an etherboot header to your bzImage.

mkelf-linux --output=vmlinuz --ip=dhcp bzImage 

You may now copy the resulting vmlinuz to /tftpboot/

Next, you will need to make an etherboot image for your dumb terminal's network card. Rom-O-Matic provides a nice etherboot web interface. If you are lucky enough to have access to an eprom burner, you can make an image that you can burn directly onto a rom, or you may make a floppy image, which you can then dd to a floppy disk. This floppy disk would then be used to boot your client. The interface to Rom-O-Matic should be self-explanatory and you can accept the default additional options. 

At this point, you should be finished with the client preparations, now it's time to prepare your server.

Since dhcpd can provide both dhcp and bootp services, I chose to have it do that, rather then running dhcpd and an additional bootp server.
You will want to create a /etc/dhcpd.conf file (the dhcpd.conf(5) man page is helpful here), and start dhcpd in your server's boot scripts somewhere (I start mine in /etc/rc.d/rc.local). 

Free domains: or mail dns-manager at

More information about the Speakup mailing list