Dies ist eine alte Version des Dokuments!
PXE Server auf Debian 12 installieren
Hier installiere ich eine PXE Umgebung auf einem Debian 12 System. Die PXE Umgebung ist ausschließlich für
UEFI Umgebungen gedacht. Der Testclient ist ein HP Prodesk 600.
Ein für mich geeignetes efi File ist ein selbkompiliertes File auf Basis von ipxe.org.
Installation
Auf dem Server werden folgende Pakete benötigt:
| Name | Funktion |
| isc-dhcp-server | DHCP Server für das eigene Netzwerk\\oder die Installationsumgebung. |
| apache2 | Webserver über den die benötigten Dateien für die\\Betriebssysteme geladen werden. |
| tftpd-hpa | TFTP Server der das Bootimage bereitstellt. |
| syslinux-efi | UEFI Bootimage. |
apt install isc-dhcp-server apache2 tftpd-hpa
ipxe.efi vorbereiten
Zunächst klone ich das Git Repository von ipxe.org
git clone https://github.com/ipxe/ipxe.git
Installiere alle Abhängigkeiten zum kompilieren
apt install gcc binutils make perl lzma lzma-dev mtools mkisofs syslinux syslinux-efi
Jetzt wird in das ipxe Verzeichnis gewechselt und mit zwei make Befehlen wird die Umgebung installiert
make make bin-x86_64-efi/ipxe.efi
Nun müssen wir eine Prekonfigurationsskript für das efi File erstellen.
In diesem Prekonfigurationskript legen wir Fest wo später unser Bootmenü gefunden wird.
embedded.ipxe
#!ipxe
dhcp
chain http://SERVER-IP/${net0/mac}.ipxe || \
chain http://SERVER-IP/default.ipxe || \
exit 1
Bei diese Prekonfigurationsskript wird zunächst eine IP Adresse per dhcp geholt.
Danach wird versucht ein Bootmenü speziell für die eigene MAC Adresse zu erhalten. Schlägt dies fehl
wird ein Standard Bootmemü geladen. Schlägt auch die fehlt wird ipxe beendet.
Jetzt wird das neue ipxe.efi file mit dem Prekonfigurationsskript erstellt
make bin-x86_64-efi/ipxe.efi EMBED=embedded.ipxe
Nach Abschluss kann die Datei bin-x86_64-efi/ipxe.efi nach /pxe-boot/ kopiert werden
cp bin-x86_64-efi/ipxe.efi /pxe-boot/
TFTP Server Konfigurieren
Der TFTP Server übergibt später das efi Bootimage dem Client.
Hierzu muss der Pfad festgelegt werden, der über den tftpd-server angeboten wird.
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/pxe-boot" # Pfad des TFTP Ordners TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure"
Jetzt die efi Datei in das TFTP Verzeichnis kopieren
cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /pxe-boot/
Bei mancher Hardware gibt es hier Probleme. Man kann auch Alternativen verwenden z.B. ipxe.efi von ipxe.org
Ordner erstellen und Rechte setzen
mkdir -p /pxe-boot chown tftp: /pxe-boot
Server neustarten
systemctl restar tftpd-hpa
DHCP Server konfigurieren
Dazu muss zunächst festgelegt werden, an welcher Netzwerkschnittstelle der DHCP Server
arbeiten soll. Dazu wird die Datei /etc/default/isc-dhcp-server bearbeitet.
/etc/default/isc-dhcp-server
... INTERFACESv4="enp6s19" # <- Hier die Netzwerkschnittstelle eintragen INTERFACESv6="" ...
Jetzt wird der eigentliche DHCP Server konfiguriert.
/etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0 { # <- Netz ID range 10.0.0.50 10.0.0.99; # <- Bereich den der DHCP Server verwenden soll option domain-name-servers 8.8.8.8; # <- DNS Server option domain-name "example.net"; # <- Domain Name option routers 10.0.0.100; # <- Default Gateway option broadcast-address 10.0.0.255; # <- Broadcast Adresse default-lease-time 600; # <- Standard Leasing Zeit für eine IP Adresse. Hier 10min. max-lease-time 7200; # <- Maximal Leasing Zeit. Hier 2h. next-server 10.0.0.100; # <- IP des Servers der die efi Datei bereitstellt filename "syslinux.efi"; # <- Bei mancher Hardware gibt es hier Probleme. Man kann auch Alternativen verwenden z.B. ipxe.efi von https://ipxe.org }
DHCP Server neu starten
systemctl restart isc-dhcp-server
Apache konfigurieren
Es sollte zumindest die Datei /var/www/html/index.html gegen eine neue ausgetauscht werden.
Falls eine Auflistung aller Dateien erwünscht ist. Wird die index.html gelöscht und das Directory Indexing für
den Ordner aktiviert.
Betriebssystem vorbereiten (Beispiel Clonezilla)
An dem Beispiel clonezilla möchte ich