Debian iPXE Boot

Hier gibt es einen guten Guide auf deutsch, wie man seinen eigenen iPXE Server mit Debian aufsetzt. Es ist aber ein paar Versionen hinten dran, deswegen fasse ich das nochmal zusammmen. Um ein neues Netboot Image zu erstellen muss man es zuerst herunterladen.

Die aktuellen Images findet man unter debian.org, unter Network install. Auf dem FTP Server muss man den netboot Ordner auswaehlen und die Datei netboot.tar.gz herunterladen.

Die Datei wird in den TFTP Ordner entpackt:

tar xzvf netboot.tar.gz -C /srv/tftp
chown nobody:nogroup -R /srv/tftp

Dann muss man noch die preseed.cfg zur initrd.gz hinzufuegen. In dieser Datei steht die Konfiguration der Installation des Betriebssystems. Danach wird das initrd.gz wieder zu einem Archiv gepackt.

mkdir initrd
cp initrd
cat /srv/tftp/debian-installer/amd64/initrd.gz | gzip -d | cpio -i
cp /path/to/preseed.cfg ./
find | cpio -o --format=newc | gzip -9c > ../initrd.gz
cp ../initrd.gz /srv/tftp/debian-installer/amd64/

Der letzte Schritt ist das Anpassen der syslinux.cfg um auch die automatisierte Installation zu starten. Sie liegt unter /srv/tftp/debian-installer/amd64/boot-screens/syslinux.cfg:

# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path debian-installer/amd64/boot-screens/
include debian-installer/amd64/boot-screens/menu.cfg
default debian-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 0
DEFAULT stretch

LABEL stretch
        kernel debian-installer/amd64/linux
        append vga=normal initrd=debian-installer/amd64/initrd.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical preseed/file=/preseed.cfg IPAPPEND 2

Danach sollte die neuste Version von Debian zum installieren bereit stehen.