PXE (Preboot Execution Environment) ermöglicht die automatisierte Installation von Linux-Servern über das Netzwerk, ohne dass physische Medien wie USB-Sticks oder DVDs erforderlich sind. Durch PXE-Boot können neue Server schnell, konsistent und standardisiert bereitgestellt werden, was besonders in Rechenzentren oder Homelabs von Vorteil ist.
Grundlagen von PXE Boot
PXE-Boot basiert auf einem Netzwerk-Startmechanismus, bei dem ein Client über DHCP eine IP-Adresse erhält und die Location eines Bootloaders vom TFTP-Server abfragt. Anschließend wird das Installations- oder Live-System geladen und gestartet.
Wichtige Komponenten
- DHCP-Server: Vergibt IP-Adressen an die Clients und teilt PXE-Informationen (Boot-File, Server-IP) mit.
- TFTP-Server: Stellt den Bootloader und Kernel/Initrd-Dateien bereit.
- HTTP/FTP/NFS-Server: Dient als Quelle für die Installationsdateien oder Repositories.
- Bootloader: PXELINUX oder iPXE, der den Kernel lädt und die Installation startet.
PXE-Server vorbereiten
Bevor Clients automatisch booten können, muss der PXE-Server korrekt eingerichtet werden. Dies beinhaltet DHCP, TFTP und die Bereitstellung von Installationsmedien.
DHCP-Server konfigurieren
DHCP muss PXE-Clients die Bootinformationen übermitteln. Ein Beispiel für ISC-DHCP auf Linux:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
next-server 192.168.1.10; # PXE/TFTP Server
filename "pxelinux.0"; # Bootloader
}
TFTP-Server installieren
PXE benötigt einen TFTP-Server, um die Bootloader-Dateien zu liefern:
sudo apt install -y tftpd-hpa # Debian/Ubuntu
sudo systemctl enable --now tftpd-hpa
Die Dateien pxelinux.0, ldlinux.c32 und die Kernel/Initrd-Dateien werden unter /var/lib/tftpboot abgelegt.
Bootloader und Menü einrichten
PXELINUX oder iPXE wird als Bootloader verwendet. Eine einfache Menüstruktur ermöglicht die Auswahl von Installationsoptionen.
pxelinux.cfg erstellen
Im Verzeichnis /var/lib/tftpboot/pxelinux.cfg eine Default-Datei erstellen:
DEFAULT linux
LABEL linux
KERNEL vmlinuz
APPEND initrd=initrd.img auto=true priority=critical url=http://192.168.1.10/preseed.cfg
Hier verweist preseed.cfg auf eine automatisierte Installationsdatei für Debian/Ubuntu.
Automatisierte Installation vorbereiten
Um PXE vollautomatisch zu nutzen, muss ein Preseed- oder Kickstart-File vorbereitet werden, das Antworten auf Installationsfragen liefert.
Debian/Ubuntu Preseed
- Automatisches Partitionsschema
- Standard-User anlegen
- Pakete und Updates automatisch installieren
- SSH und Netzwerk konfigurieren
Beispiel-Konfiguration:
d-i passwd/root-password password yourpassword
d-i passwd/root-password-again password yourpassword
d-i netcfg/get_hostname string server001
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
RHEL/CentOS Kickstart
- Automatisierte Partitionierung
- Root-Passwort setzen
- Netzwerkeinstellungen und Hostname
- Softwarepakete und Services
#version=RHEL8
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp
rootpw --plaintext yourpassword
firewall --enabled
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone Europe/Berlin
bootloader --location=mbr
zerombr
clearpart --all --initlabel
autopart
%packages
@core
%end
PXE Boot testen
Nach Konfiguration aller Komponenten den Client per Netzwerk booten:
- Client im BIOS/UEFI auf Netzwerkboot setzen
- DHCP-Server weist IP zu und verweist auf TFTP
- Bootloader lädt Kernel und Initrd
- Automatisierte Installation beginnt
Tipps und Best Practices
- Trennen Sie PXE-Server von Produktionsnetzwerken für Sicherheit.
- Nutzen Sie VLANs oder isolierte Subnetze, um unbeabsichtigte Bootvorgänge zu verhindern.
- Preseed/Kickstart-Dateien verschlüsseln oder schützen, da sie Passwörter enthalten können.
- Regelmäßig Updates auf PXE-, TFTP- und DHCP-Server anwenden.
- Logs prüfen:
journalctl -u tftpd-hpaund DHCP-Logs helfen bei Fehlerbehebung.
Erweiterungen
Für große Umgebungen empfiehlt sich der Einsatz von iPXE für HTTP-Boot, was schnellere Übertragungen und flexiblere Bootoptionen ermöglicht. Zudem kann Ansible oder ein Konfigurationsmanagement-System eingesetzt werden, um die Preseed/Kickstart-Files dynamisch zu generieren und Server nach der Installation zu konfigurieren.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











