I’ve been network booting SPARC systems for a while now, ever since my last run in with a faulty floppy drive on a SPARCstation 2. NetBSD makes it easy – the standard installation includes a diskless client filesystem which can simply be extracted onto the boot server. It wasn’t quite so straightforward with FreeBSD, so here are a few pointers…

My boot server is running NetBSD 3.1 and I booted FreeBSD 6.2, so if you’re using different software you may need to make some adjustments. YMMV.

  1. On the boot server, configure rarpd(8) as usual, adding the entry for your machine’s MAC address to /etc/ethers. For example (for a machine called test02):
    08:00:20:b2:2f:b6 test02
  2. Extract the FreeBSD base fileset to the appropriate location on your boot server (for example, /export/install/fb62_sp64).
  3. Extract the FreeBSD GENERIC kernel fileset to boot/ in your diskless filesystem.
  4. Within your diskless root, symlink boot/GENERIC to boot/kernel (boot/GENERIC is a directory that contains the kernel and its modules).
  5. Put boot/loaders from the diskless filesystem into your tftp root directory and symlink it to your machine’s IP address in hex. For example, the filename for 192.168.1.92 is C0A8015C.
  6. Export your diskless root filesystem via NFS and add the necessary dhcpd.conf stanza. For example:
    host test02.pimp.org.za {
    hardware ethernet 08:00:20:b2:2f:b6;
    fixed-address 192.168.1.92;
    option host-name "test02";
    option root-path "/export/install/fb62_sp64";
    }
  7. Boot your machine – “boot net” from the PROM should do it.

A few tips:

  • It’s normally a good idea to update the machine’s OpenBoot PROM to the latest release. Old PROMs often have subtle bugs.
  • Extracting FreeBSD filesets is simple:
    cat 6.2-RELEASE/base/base.* > /tmp/base.tar.gz
    tar -xzvpf /tmp/base.tar.gz -C /export/install/fb62_sp4

Update: Fixed incorrect command to extract sets (thanks John Messenger!)

  • Share/Save/Bookmark