PXEing NetBSD

See PXE Setup for overall instructions. This is NetBSD specific.

Prepare

Without the X sets

mkdir -p /tftpboot/netbsd/
rsync -avz --delete-after --exclude 'binary/sets/x*.tgz' rsync://rsync.fr.netbsd.org/NetBSD-daily/netbsd-9/201909190800Z/amd64/ /tftpboot/netbsd/amd64/

Chaining pxelinx.0 to pxeboot_ia32.bin (WORKS)

cd /tftpboot/
ln -s netbsd/amd64/installation/misc/pxeboot_ia32.bin
ln -s netbsd/amd64/binary/kernel/netbsd-INSTALL.gz netbsd.gz
vi /tftpboot/pxelinux.cfg/default

label netbsd install
    kernel pxeboot_ia32.bin

Enable

It is good to keep amd64/binary/sets/ as this is the default path used by sysinst. And it also avoids playing with dhcpd.conf, inside the subnet stanza (this is the trick to differenciate the hardware BOOTP requests from the NetBSD pxeboot_ia32.bin BOOTP requests,

     if substring (option vendor-class-identifier, 0, 17)
       = "NetBSD:i386:libsa" {
         if filename = "netbsd" {
             filename "tftp:netbsd/amd64/binary/kernel/netbsd-INSTALL.gz";
         }
     }

Otherwise manually at the NetBSD boot prompt

boot tftp:netbsd.gz

Tweaking pxeboot_ia32.bin, but this is unfortunately possible only from within a NetBSD system,

#installboot -v -e -o bootconf,modules pxeboot_ia32.bin
#vi boot.cfg

Shooting Troubles

iPXE 1.0.0 does not let the NetBSD boot loader use TFTP again, once loaded tru PXE. Nor does the Ubuntu installer fully show up, but I did not troubleshoot the latter so far. Anyway one cannot fully test this with VirtualBox nor QEMU

ssh -l root PXE-SERVER "/usr/sbin/tcpdump -n -e -i xenbr0 -s0 -w - not tcp port ssh" | wireshark -k -i -

Obsolete - memdisk/floppy

Obsolete method, using memdisk against the floppy installer (DEPRECATED),

wget ftp://ftp.fr.netbsd.org/pub/NetBSD/NetBSD-5.0.2/i386/binary/kernel/netbsd-INSTALL_FLOPPY.gz
#TODO what is the last release providing floppy?

vi /var/lib/tftpboot/pxelinux.cfg/default

label NetBSD install floppy
kernel memdisk
append netbsd-INSTALL_FLOPPY.gz

FAILS - multiboot

Otherwise, attempting multiboot (FAILS)

cp -i /usr/lib/syslinux/modules/bios/libcom32.c32 /var/lib/tftpboot/
cp -i /usr/lib/syslinux/modules/bios/mboot.c32 /var/lib/tftpboot/

vi /var/lib/tftpboot/pxelinux.cfg/default

label NetBSD multiboot
com32 mboot.c32
append netbsd7/amd64/binary/kernel/netbsd-INSTALL.gz

but this is what I get,

Invalid Multiboot image: neither ELF header nor a.out kludge found

Resources


Nethence | Pub | Lab | Pbraun | SNE Russia | xhtml