Installationen über PXE
Diese Seite dient als Anleitung zur Einrichtung eines Servers sowohl für automatisierte Linux-Installationen als auch dem booten von Live-, Test- und Installations-Medien über das Netzwerk.
Benötigte Pakete
Zur Ergänzung einer standard Debian-Installation werden folgende Pakete (und deren Abhängigkeiten) nachinstalliert:
tftpd-hpa nfs-kernel-server syslinux memtest86+
Konfiguration
IP des Installations-Servers (debian-jessie VM auf [[1]]: 192.168.10.51
Einrichten von NFS und TFTP
Sicherheit spielt beim Einbnden von NFS hier keine Rolle, da keine kritischen oder interessanten Daten auf dem Server gespeichert werden (sollten). Daher wird NFS mit den einfachstmöglichen, unsichersten Einstellungen konfiguriert. /etc/exports
/pxeboot/nfsroot *(rw,no_root_squash,async,insecure,fsid=0,no_subtree_check)
Beim TFTP-Server muss der Pfad angepasst werden. Damit wir mehr Informationen vom TFTP-Server im Syslog erhalten, starten wir ihn standardmässig mit der Option "--verbose". Wenn der Server fertig konfiguriert ist, können wir diese Option wieder entfernen. /etc/default/tftpd-hpa
TFTP_DIRECTORY="/pxeboot/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--verbose --secure"
Einrichten von DHCP und PXE
Damit Rechner, die über das Netzwerk gestartet werden, auch wissen, woher sie den Bootloader (pxelinux) laden sollen, muss der DHCP-Server auf den TFTP-Server verweisen. In unserem Fall ist der DHCP-Server im pfSense-Router. In der DHCP-Konfiguration ist lediglich die IP-Addresse des TFTP-Servers (192.168.10.51) einzugeben, damit die Clients sich dort anmelden um den Bootvorgang fortzusetzen. Die Konfiguration von PXE und dem Bootmenü ist später im Artikel beschrieben.
Verzeichnisstruktur :
- /pxeboot
- Wurzelverzeichnis für die gesamte Struktur
- /pxeboot/tftpboot
- Unterverzeichnis für die ganzen Dateien, die per TFTP an den Client geschickt werden
- memtest86+.bin
- /pxeboot/tftpboot/common
- Dateien, die von mehreren Installations- und Livesystemen benutzt werden.
- Kopiert aus /usr/lib/syslinux/modules/bios:
- cmenu.c32, ldlinux32.c32, libcom32.c32, libmenu.c32, libutil.c32, menu.c32, vesamenu.c32
- Hintergrundbild
Debian Jessie (vorinstalliert, über Netzwerk startfähig
- /pxeboot/tftpboot/debian8
- initrd.gz (initial ramdisk), vmlinuz-3.16.0-4-586 (Kernel)
- Kernel (32-bit, ohne PAE für bestmögliche Kompatibilität mit den meisten Geräten, wichtig v.A. für Computer mit Pentium M Prozessoren) und initrd von mit deboostrap installiertem Changeroot.
Lubuntu 15.04 netinstall
- /pxeboot/tftpboot/lubuntu-15.04
- initrd.gz (initial ramdisk), linux (Kernel)
Debian Jessie netinstall
- /pxeboot/tftpboot/debian-installer
- Entpacktes Netboot Image aus dem Debian Repository
Syslinux Bootmenü
- /pxeboot/tftpboot/pxelinux.cfg
- Dateien zur Konfiguration des Boot-Menüs
- /pxeboot/tftpboot/pxelinux.cfg/default
MENU TITLE Boot Menu PROMPT 0 DEFAULT vesamenu.c32 TIMEOUT 100 MENU BACKGROUND tuxbutton.png LABEL BootLocal localboot 0 TEXT HELP Lokal installiertes System booten ENDTEXT LABEL Debian Jessie no PAE MENU LABEL Debian Jessie 32-bit non-PAE (login/pw: root/root) TEXT HELP ENDTEXT KERNEL debian8/vmlinuz-3.16.0-4-586 APPEND root=/dev/nfs initrd=debian8/initrd.img-3.16.0-4-586 init=/sbin/init ip=dhcp rw nfsroot=192.168.10.51:/pxeboot/nfsroot/debian8 LABEL memtest86 MENU LABEL Memtest86+ TEXT HELP Memtest86 ausführen ENDTEXT LINUX memtest86+.bin LABEL Lubuntu 15.04 netinstall MENU LABEL Lubuntu 15.04 netinstall TEXT HELP Lubuntu 15.04 Installieren ENDTEXT KERNEL lubuntu-15.04/linux APPEND root=/dev/nfs netboot=nfs nfsroot=192.168.10.51:/pxeboot/nfsroot/lubuntu-15.04 initrd=lubuntu-15.04/initrd.gz forcepae -- forcepae MENU BEGIN Debian Jessie amd64 Installer MENU TITLE Debian Jessie amd64 Installer LABEL Zurück MENU LABEL Zurück zum vorherigen Menü TEXT HELP Zurück zum vorherigen Menü ENDTEXT MENU EXIT MENU SEPARATOR MENU INCLUDE common/debian-installer.menu MENU END
- /pxeboot/tftpboot/common/debian-installer.menu
PATH debian-installer/amd64 INCLUDE debian-installer/amd64/boot-screens/menu.cfg DEFAULT debian-installer/amd64/boot-screens/vesamenu.c32
Ablauf
Zu beachten
To Do
- Fertige Installations-Images