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.
Thanks, it helped me a lot.
You saved me alot of time , thanks man