Nethence Documentation Lab Webmail Your IP BBDock  


Those documents are obsolete, please use the Nethence Documentation instead.

HomeUnixWindowsOracleObsoleteHardwareDIYMechanicsScriptsConfigsPrivate

NetBSD PXE install server
 
http://pbraun.nethence.com/unix/sysutils_bsd/netbsd.html
http://pbraun.nethence.com/unix/sysutils_bsd/netbsd-amazon-ec2.html
http://pbraun.nethence.com/unix/sysutils_bsd/netbsd-pxe.html
http://pbraun.nethence.com/unix/sysutils_bsd/netbsd-update.html
 
introduction
We are going to use both, SYSLINUX's PXELINUX, and NetBSD's pxeboot.
 
Note. there's a 'pxe' package available for NetBSD but it has nothing to do with pxelinux nor netbsd's own pxeboot provided binary.
 
dhcp configuration
cd /etc/
cp -i /usr/share/examples/dhcp/dhcpd.conf .
cp dhcpd.conf dhcpd.conf.dist
chmod u+w dhcpd.conf
vi dhcpd.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.199;
next-server 192.168.1.1;

# This section allows dhcpd to respond with different answers
# for the different tftp requests for the bootloader and kernel.
if substring (option vendor-class-identifier, 0, 20)
= "PXEClient:Arch:00000" {
filename "pxelinux.0";
#filename "pxeboot_ia32.bin";
} elsif substring (option vendor-class-identifier, 0, 17)
= "NetBSD:i386:libsa" {
if filename = "boot.cfg" {
filename "tftp:boot.cfg";
} else if filename = "netbsd" {
filename "tftp:netbsd70x64/binary/kernel/netbsd-INSTALL.gz";
}
}
}

dhcpd -t -cf /etc/dhcpd.conf
vi rc.conf
dhcpd=YES dhcpd_flags="-q"
/etc/rc.d/dhcpd restart
 
tftp configuration and NetBSD repository
cd /etc/
cp inetd.conf inetd.conf.dist
vi inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
/etc/rc.d/inetd restart

mkdir -p /tftpboot/
cd /tftpboot/
mkdir NetBSD-7.0/
echo $PKG_PATH
pkg_add rsync
rsync -avz rsync://rsync.fr.netbsd.org/NetBSD/NetBSD-7.0/amd64/ NetBSD-7.0/amd64/
Ref. https://www.netbsd.org/docs/network/netboot/tftpd.html
 
pxelinux configuration
Fetch the latest syslinux tarball and deploy the needed parts of it,
cd /tftpboot/
wget --no-check-certificate https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
tar xzf syslinux-6.03.tar.gz
find syslinux-6.03 | grep pxelinux\.0$
cp syslinux-6.03/bios/core/pxelinux.0 .
cp syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 .
cp syslinux-6.03/bios/com32/libutil/libutil.c32 .
cp syslinux-6.03/bios/com32/menu/menu.c32 .
 
netbsd pxe configuration
cp -vp /usr/mdec/pxeboot_ia32.bin /tftpboot/
installboot -v -e -o bootconf,modules /tftpboot/pxeboot_ia32.bin
vi /tftpboot/boot.cfg

default=1
timeout=10
clear=1

banner=Welcome to the NetBSD PXE Installer
banner===============================================================================
banner=
banner=ACPI (Advanced Configuration and Power Interface) should work on all modern
banner=and legacy hardware. However if you do encounter a problem while booting,
banner=try disabling it and report a bug at http://www.NetBSD.org/.

menu=Drop to boot prompt:prompt
menu=Install NetBSD/amd64 7.0:boot tftp:netbsd70x64/binary/kernel/netbsd-INSTALL.gz
menu=Install NetBSD/amd64 5.2:boot tftp:netbsd52x64/binary/kernel/netbsd-INSTALL.gz
menu=Install NetBSD/i386 5.2:boot tftp:netbsd52x32/binary/kernel/netbsd-INSTALL_FLOPPY.gz
ref. http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-166/Creation-d-un-serveur-de-demarrage-PXE-sous-NetBSD-pour-installer-NetBSD
also worth interesting (older releases),
menu=VESA:rndseed /var/db/entropy-file;vesa 1024x768;boot netbsd
 
You are ready to go, you should be able to PXE boot from now on. But you will also need either an FTP, HTTP or NFS service to fetch the binary sets.
 
Setting up the HTTP service
echo $PKG_PATH
pkg_add thttpd
cd /etc/rc.d/
cp -i /usr/pkg/share/examples/rc.d/thttpd .
cd /etc/
vi rc.conf
thttpd=YES
cd /etc/
ln -s ../usr/pkg/etc/thttpd.conf
cp thttpd.conf thttpd.conf.dist
vi thttpd.conf
dir=/tftpboot
chroot
/etc/rc.d/thttpd restart
check in a browser,
http://192.168.1.1/
 
References
http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-166/Creation-d-un-serveur-de-demarrage-PXE-sous-NetBSD-pour-installer-NetBSD
 

Last update: Jan 24, 2016