Why use PXELINUX
You may have a running Linux server supporting network boot via PXELINUX, because it allows a nice selection menu of bootable images, and want to add a NetBSD kernel to the menu.
In an experimental environment, this would allow to boot diagnostic tools like memtest, Linux kernels like GRML, a variety of Linux installers, and also to install NetBSD without removable devices.
However, if the networked machine is already dedicated to NetBSD, using pxeboot_ia32.bin directly to boot a NetBSD kernel for repairs or boot a diskless workstation with NetBSD would be better.
Using PXELINUX to chain boot
PXELINUX can not only boot Linux kernels, but also a boot sector. Thus, we can instruct PXELINUX to load the NetBSD netboot loader pxeboot_ia32.bin, which then can load a NetBSD kernel.
The only tricky thing is where to put which files. The two files needed are e.g. on a bootable CD-ROM.
- copy pxeboot_ia32.bin to the same directory where pxelinux.0 resides. The DHCP config file may contain filename="/lts/i386/pxelinux.0", then copy pxeboot_ia32.bin to e.g. /tftpboot/lts/i386/
- copy the kernel, e.g. netbsd-INSTALL.gz, to the directory denoted option root-path "/opt/ltsp/i386" in the DHCP config file, possibly renaming it to the default netbsd.
- Edit the pxelinux.cfg/default (or any other file there) e.g. like this
# NetBSD label netbsd kernel pxeboot_ia32.bin
In case of a NetBSD installation, proceed as in Example installation, using probably FTP, HTTP or NFS as installation source.
- The kernel(s) can and should stay gzipped
- Unless an installation kernel is used, it will try to NFS-mount the root-path from the DHCP config file as root and assume it is writable, i.e. try to be a diskless workstation, see link below
- For NetBSD 5, use NETBSD_INSTALL_FLOPPY.GZ as installation kernel