7

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.

Andrew
  • 7,772
  • 3
  • 34
  • 43
  • 1
    Ok, I *think* I need MEMDISK from syslinux... I might ditch this or turn it into a community wiki thread... – Andrew May 14 '10 at 00:04

4 Answers4

6

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)

Chris S
  • 77,337
  • 11
  • 120
  • 212
  • I'm a BSD noob - do you have any resources describing how it usually netboots? – Andrew May 18 '10 at 04:53
  • That pretty much answers it then - pfSense most probably doesn't have NFS support in the kernel. I'm happy for someone to prove me wrong though. – Andrew May 21 '10 at 02:34
2

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.

Andrew
  • 7,772
  • 3
  • 34
  • 43
  • Wow! I was searching for this just yesterday, an hour before you posted this. Is it possible to load ISOs over http? I've seen this mentioned on the [FreeBSD forums](http://forums.freebsd.org/showpost.php?p=124860&postcount=2) – Stefan Lasiewski Feb 15 '12 at 00:51
  • @StefanLasiewski I think I've done it with Ubuntu using the netboot part of the ISO, but it required splitting things between /tftpboot for the PXE config and /var/www for the data (ISO mounted inside there perhaps?) - TFTP is a lot neater for us. – Andrew Feb 15 '12 at 02:32
1

It turns out this is a regression in FreeBSD 9.1. This used to work fine:

LABEL FreeBSD-8.1-i386
    MENU LABEL FreeBSD 8.1 i386
    kernel memdisk
    append initrd=freebsd/FreeBSD-8.1-RELEASE-i386-bootonly.iso iso raw

But this doesn't anymore:

LABEL FreeBSD-9.1-amd64
    MENU LABEL FreeBSD 9.1 AMD64
    kernel memdisk
    append initrd=freebsd/FreeBSD-9.1-RELEASE-amd64-memstick.img raw
artifex
  • 1,634
  • 1
  • 17
  • 22
anarcat
  • 740
  • 1
  • 9
  • 18
0

I don't use FOG but I was able to boot pfSense from pxelinux.

  1. first I mounted pfSense LiveCD ISO and copied the files. cp -r pfsenseiso/* os/pfsense/
  2. make sure you have that path shared via NFS somehow. I use these options ro,async,no_subtree_check,insecure,no_root_squash
  3. added root-path to dhcpd.conf with a NFS mountpoint(afaik pxelinux doesn't utilize root-path)

dhcpd.conf

    option root-path "10.3.128.10:/opt/data/tftpboot/os/pfsense";

4. chain load FreeBSD pxeboot found in the pfsense ISO(this pxeboot utilizes root-path).

pxe config

    LABEL pfsense
      MENU LABEL pfSense installer
      PXE http://10.3.128.10:8080/os/pfsense/boot/pxeboot

You are all set and you can boot and/or install pfsense via pxe.

Raboo
  • 93
  • 4