PXE-booting OpenBSD is easy and well documented. Unfortunately, it is not the case when more than just one OpenBSD install has to be made available through PXE. Using PXELINUX for multiplexing purposes has potential but the documentation is scarce, unsuccessful, or require patching the PXE loader.

One trick which works is to boot from a floppy disk image, using memdisk.

Adding the following to one’s pxelinux.cfg/default would do the trick just fine, and allow to start installing OpenBSD everywhere in a pinch!

LABEL openbsd53.i386
  MENU LABEL Open^BSD 5.3 i386
  KERNEL memdisk
  APPEND initrd=openbsd/5.3/i386/floppy53.fs

It’s probably not the nicest way to do it, but it is quick to get going, and works well.

Update: Or not… The floppy53.fs image boots fine, but is limited, starting with no DHCP support.

A bit more research revealed that recent-ish versions (>3.72) have a PXE boot chainloader, found as modules/pxechain.com in the source. It can simply be use to chainload OpenBSD’s pxeboot(8).

LABEL openbsd53.i386
  MENU LABEL Open^BSD 5.3 i386
  KERNEL pxechain.com
  APPEND ::/openbsd/5.3/i386/pxeboot

To smooth the process further, a /etc/boot.conf(8), can be created (within the TFTP root), to instruct pxeboot(8) which kernel to boot. Unfortunately, the file doesn’t seem to be searched for within the path of pxeboot(8), but from the root of the TFTP, which preclude the possibility of, e.g., supporting multiple architectures.

boot openbsd/5.3/amd64/bsd.rd

Now it works!

Update: memdisk works well to boot FreeDOS!

LABEL freedos
MENU LABEL FreeDOS
KERNEL memdisk
APPEND initrd=/fdboot.img

See also: More details on setting up PXE with DNSMASQ.

2 thoughts on “Booting OpenBSD installation from PXELINUX

Leave a Reply