I'm using FOG as a TFTP / PXE server and would like to be able to boot a FreeBSD LiveCD (specifically pfSense, but it could be any LiveCD, really); I've found HOWTOs for booting a "netboot" BSD but they all seem to use a BSD server. So:
- Is it possible to PXE boot BSD from a Linux server?
- Is it possible to PXE boot a BSD LiveCD?
- Is it possible to PXE boot a Linux LiveCD?
My main motivation is to be able to boot small LiveCD images (e.g. < 100MB) that I may only use once and don't want to burn a physical CD for.
I don't know FOG, but it should work just fine if the image can boot from NFS (which is probably going to be the sticking point for the rolled releases like pfSense). You should be able to follow the basic instructions in the handbook and get it working.
I'd also consider just running a virtual machine to test these things out. QEmu runs great on fBSD.
Edit: If you're familiar with the parts, here's a Quick and Dirty FreeBSD PXEBoot Guide.
If you're not so familiar, then the Handbook's Diskless Operation section is more of a walk through.
A brief overview of the steps:
You set your computer to PXE boot from it's network card. This is usually a bios option.
Set DHCP Options on your DHCP server to tell PXE where to find FreeBSD's loader (pxeboot).
The DHCP Options also tell the Loader where to find the root file system (an NFS share).
The loader mounts the NFS Root File System, finds the Kernel, and boots normally from there.
(Note, the kernel needs to support booting from an NFS share, which is not normally compiled in)
Two years later, generic instructions for booting PXE booting ISOs from FOG exist:
The MEMDISK wiki also has instructions for booting ISOs; I've successfully used the ISOHYBRID technique to load PartedMagic (i.e. load it as a disk image), but the ISO technique should be applicable to e.g. FreeBSD also.
It turns out this is a regression in FreeBSD 9.1. This used to work fine:
But this doesn't anymore:
I don't use FOG but I was able to boot pfSense from pxelinux.
cp -r pfsenseiso/* os/pfsense/
ro,async,no_subtree_check,insecure,no_root_squash
dhcpd.conf
4. chain load FreeBSD pxeboot found in the pfsense ISO(this pxeboot utilizes root-path).
pxe config
You are all set and you can boot and/or install pfsense via pxe.