I’ve been having a great time working with PXE booting machines lately. First I got debian to boot off of a PXE server for an install, then I figured out how to mount a linux root filesystem over NFS from a PXE boot, and now I’m doing my first FreeBSD install over a PXE boot.

The FreeBSD PXE boot configuration seemed quite vague, but it was actually quite simple. Once I get everything clear I’ll write up some instructions for all this in the wiki.

Ack - I take it back! While pxeboot was easy to get going, I just could not get FreeBSD to install correctly. Finally I was able to figure out what was going on. pfSense (my DHCP server) provides two options for pxe booting - server and filename. For filename, I put pxeboot, and pxeboot would load and automatically try to load its root from nfs:/pxeroot. I had put the contents of a full install CD at an NFS shared /pxeroot directory, and so FreeBSD would boot up and present me with a shell. I’d then run “sysintall” and go through the motions. Upon reboot, nothing had happened. Huh?

Finally I RTFM some more and decided to go a different route. I copied boot/mfsroot.gz to the /var/lib/tftpboot/freebsd directory and gunzipped it, and also copied boot/kernel there. ( I also changed /etc/default/tftpd-hpa to use /var/lib/tftpboot/freebsd as its root path. )

Since I still couldn’t figure out what was up with /pxeroot, I simply symlinked /pxeroot to /var/lib/tftpboot/freebsd, where I had the following items:

dr-xr-xr-x 5 root root     4096 2009-01-28 20:53 boot-r-xr-xr-x 1 root root  7903785 2009-01-29 13:49 kernel-r--r--r-- 1 root root  4423680 2009-01-29 13:50 mfsroot-r--r--r-- 1 root root   223232 2009-01-29 12:40 pxeboot

When I pxebooted with this, it brought me right to the installer menus and I’m going through it now.

Thanks to:

http://people.freebsd.org/~dwhite/pxeboot.html and many others I forgot to link here.