Netboot mini-howto


 
This is a basic howto for setting up a bootp server to netboot a Newworld PowerMac.
 
You will need to install two packages on the server, bootp and tftpd. To enable these make sure you have the following lines in /etc/inetd.conf:
 
bootps dgram udp wait root /usr/sbin/bootpd bootpd -d -i -t 120
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot

 
You need to have the -d switch so bootp will log unknown MAC addresses (see below). Older versions of bootp may require a number such as -d 1.
 
Be sure to create a directory /tftpboot (or change that part in /etc/inetd.conf)
 
Next you need to setup an /etc/bootptab, here is an example:

socrates:\
        hd=/tftpboot:\
        bf=yaboot:\
        ip=192.168.0.1:\
        sm=255.255.255.0:\
        sa=192.168.0.4:\
        ha=000502F1ABBB:

Change the hostname to match the IP address that will be given to the netbooted host, this is found in /etc/hosts. Change the IP addresses and netmask to match your site. sa= is the server IP address, ip= is the client IP address. Probably the easiest way to find the hardware MAC address is to leave it out and try and netboot the mac, then look in the server log files (/var/log/daemon.log on Debian) and look for an entry like this:
 
Sep 8 23:51:55 plato bootpd[15297]: unknown client Ethernet address 00:05:02:F1:AB:BB
 
Now you have the MAC address and can add it to the bootptab file as shown above.
 
Next you need to create a /tftpboot/yaboot.conf file, here is an example:

device=enet:
partition=0
timeout=50
init-message="Debian GNU/Linux Network boot"
default=linux

image=vmlinux-2.2.17
        label=linux
        root=/dev/hda3
        read-only

Change the root= entry to match your real root partition, or if your booting a ramdisk replace root= and read-only with initrd=root.bin and initrd-size=8192. You can also boot the system using an NFS export as a root filesystem, to do this remove read-only from the above yaboot.conf and change use root=/dev/nfs for a root partition.
Finally copy a precompiled uncompressed kernel image to /tftpboot along with a copy of yaboot, then run:
 
chmod 444 /tftpboot/*
chmod 755 /tftpboot

 
That should do it, boot the mac while holding down the `n' key again and you should get a yaboot prompt.

NFS root

This section was contributed by Brad Midgley
 
Another way to take advantage of netbooting is to have everything, including disk access, run over the network. It's not optimal, but it's a great way to work with GNU/Linux without disturbing your hard drive.
 
I back up my laptop (clam) verbatim to ant:/tftpboot/172.16.2.5/ so I can easily netboot a recent working backup. It was extremely useful recently after I had toasted my system :(
 
Also, NFS root is a great way to work if you are running an unstable kernel -- no fsck after a crash! (what? Linux crash?)
 
all this configuration is on the server (ant):
 
/tftpboot/vmlinux which must have been compiled with...

 networking options
  IP: kernel level autoconfiguration
  IP: BOOTP support
  file systems/network file systems
  NFS file system support
  Root file system on NFS

Setup your yaboot.conf like above, using root=/dev/nfs.
 
/etc/exports contains:
 
/tftpboot/172.16.2.5 172.16.2.5(rw,no_root_squash)
 
I am using dhcpd instead of bootpd. Your dhcpd must support the bootp protocol if you choose to use a dhcp daemon. In this case I have the softlink /172.16.2.5/yaboot pointing to usr/lib/yaboot/yaboot.
 
/etc/dhcpd.conf contains:

 host clam {
        filename "/172.16.2.5/yaboot";
        server-name "ant";
        next-server ant;
        hardware ethernet 00:50:E4:D0:39:30;
        fixed-address 172.16.2.5;
        }




 
Ethan Benson, erbenson@alaska.net
 
http://www.alaska.net/~erbenson/doc/netboot.html
 
Last update: 2000-11-27