There have been some changes in how PXE booting works with the release of FreeBSD 9.0. So I wanted to share some of what needs to be done to boot FreeBSD 9.0 via PXE.
The quick notes for people that have done PXE booting on prior versions of FreeBSD is:
This is where the DHCP server, NFS Server and PXE Boot server will live. They could all easily live on different machines.
# mkdir /usr/public/freebsd90-amd64
# mdconfig -a -t vnode -f FreeBSD-9.0-RELEASE-amd64-disc1.iso
# mount_cd9660 /dev/md0 /mnt
# cp -R /mnt/* /usr/public/freebsd90-amd64
# umount /mnt
# mdconfig -d -u 0
# vi /usr/public/freebsd90-amd64/etc/fstab
/usr/public/freebsd90-amd64 -ro
# pkill -HUP mountd
# mkdir /usr/public/tftp
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /usr/public/tftp
inetd_enable="YES"
# /etc/rc.d/inetd start
# cp /usr/public/freebsd90-amd64/boot/pxeboot /usr/public/tftp
host fbsd9pxe { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.45; next-server 192.168.1.10; filename "pxeboot"; option root-path "/usr/public/freebsd90-amd64/"; }
dhcpd_enable="YES"
/usr/local/etc/rc.d/isc-dhcpd start
Modify the IP addresses and the MAC Address as needed for the environment in dhcpd.conf.
If everything went well you should be presented with the Installer ready to go.