Via PXE booten oder installieren Sie auch auf Rechnern ohne Wechselspeicher ein Betriebssystem. Mit dem Raspberry Pi steht Ihnen dafür ein sehr kostengünstiger Server zur Verfügung.
README
PXE erlaubt es, bootbare ISO-Images im Netz bereitzustellen und diese auf den Client-Rechnern zu starten. Der Artikel zeigt Ihnen, wie Sie den RasPi zum PXE-Server aufrüsten.
Anfang 1999 schlug Intel der Internet Engineering Task Force die Gründung einer Arbeitsgruppe vor, die ein Verfahren zum Booten eines Rechners vom Netzwerk über DHCP definieren sollte. Als technische Grundlage dazu präsentierte Intel seine PXE-Technik. Nachdem diese Arbeitsgruppe nicht zustande kam, veröffentlichte Intel im September 1999 im Alleingang die PXE-Spezifikation, die ursprünglich nur für die 32-Bit-Intel-Architektur (IA32) galt. Innerhalb von UEFI wird sie mittlerweile auch für IA64 unterstützt, daneben brachten entsprechende Portierungen PXE mittlerweile auch auf eine Reihe anderer Hardware-Plattformen.
Der PXE-Code befindet sich in einem ROM auf dem Client-Rechner (BIOS oder UEFI). Über eine Reihe von Anfragen an den Server ermittelt der Client dessen IP-Adresse und die zu ladende Startdatei. Letztere, die der Rechner über einen vereinfachten FTP-Transfer beim Server abholt (Abbildung 1), übernimmt dann die weitere Steuerung. Die exakte Vorgehensweise führt die PXE-Spezifikation [1] auf.
DHCP PXE-fähig machen
Auf der Server-Seite, also auf dem Raspberry Pi, benötigen Sie als Grundlage einen installierten und konfigurierten DHCP-Server [2]. Mit dem Zuweisen der IP-Adresse übermittelt dieser DHCP-Server, wo sich ein Boot-Image befindet. Dazu muss auf dem Server ein TFTP-Dienst laufen, der diese Datei zum Client überträgt.
Die DHCP-Konfiguration benötigt nur eine kleine Modifikation, um PXE-Boot zu unterstützen: Im Abschnitt subnet der /etc/dhcp/dhcpd.conf geben Sie den Hostnamen des TFTP-Servers (in unserem Beispiel pi.homenet.de) sowie den Namen der Boot-Image-Datei an (Listing 1). Nach dieser Konfigurationsänderung starten Sie den Server mit dem Befehl sudo service isc-dhcp-server restart neu.
Listing 1
[...] # # add PXE-Boot support # next-server pi.homenet.de; filename "pxelinux.0"; }
TFTP
Damit der RasPi in der Lage ist, das Image und die Konfigurationsdatei auszuliefern, installieren Sie zunächst mit dem Kommando sudo apt-get install tftpd-hpa den TFTP-Server darauf. Der TFTP-Server erwartet in der Voreinstellung einen IPv6-Socket, was zunächst zu einer Fehlermeldung führt. Um dies abzustellen, ergänzen Sie in der Datei /etc/default/tftpd-hpa die Zeile TFTP_OPTIONS am Schluss um den Eintrag --ipv4:
TFTP_OPTIONS="--secure --ipv4"
Nach dieser Änderung startet der TFTP-Dienst ohne weitere Fehlermeldungen.
Syslinux
Um an die Datei pxelinux.0 (und einige weitere) zu gelangen, gilt es, das Syslinux-Paket auf dem Raspberry Pi zu installieren. Danach kopieren Sie die benötigten Dateien an den richtigen Ort (Listing 2)
Listing 2
$ sudo apt-get install syslinux-common $ sudo cp /usr/lib/syslinux/chain.c32 /usr/lib/syslinux/menu.c32 /usr/lib/syslinux/vesamenu.c32 /usr/lib/syslinux/pxelinux.0 /srv/tftp/ $ sudo mkdir --p /srv/tftp/pxelinux.cfg
Danach erstellen Sie eine recht einfach gehaltene Isolinux-Menüdatei /srv/tfpt/pxelinux.cfg/default, die lediglich die Optionen Von Festplatte starten und Speichertest als Boot-Optionen anbietet (Listing 3).
Listing 3
DEFAULT vesamenu.c32 PROMPT 0 TIMEOUT 300 MENU TITLE PXE Network Boot Menu LABEL local MENU LABEL Von Festplatte starten MENU DEFAULT LOCALBOOT 0 LABEL memtest MENU LABEL Speichertest mit memtest86+ v4.20 KERNEL memtest







