Aus Raspberry Pi Geek 02/2014

Raspberry Pi als PXE-Server

© Erik Reis, 123RF

Booten übers Netz

Friedrich Hotz

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.

Abbildung 1: Der Boot-Vorgang via PXE im Diagramm. (Quelle: Intel)

Abbildung 1: Der Boot-Vorgang via PXE im Diagramm. (Quelle: Intel)

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
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben