Startseite>Raspberry Pi als PXE-Server
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

Bootet ein Rechner übers Netz mit dieser Konfiguration, zeigt er einen entsprechenden Bootscreen an (Abbildung 2). Klappt das soweit, können Sie nun weitere Betriebssystem-Images auf den RasPi laden und in die Startdatei eintragen.

Abbildung 2: Findet Ihr Client-Rechner im Netz via PXE die nötigen Start-Dateien, zeigt er einen entsprechenden Bootscreen an.

Abbildung 2: Findet Ihr Client-Rechner im Netz via PXE die nötigen Start-Dateien, zeigt er einen entsprechenden Bootscreen an.

PXE-Client einrichten

Aufseiten des Clients müssen Sie für das Booten über PXE lediglich die BIOS-Einstellungen entsprechend anpassen, was eventuell ein manuelles Aktivieren des Boot-RAMs der Netzwerkkarte voraussetzt. Nach der Umstellung startet der Rechner dann dauerhaft via PXE.

Viele Rechner bieten daneben beim Hochfahren auch auf Tastendruck ein Menü für die Auswahl des Bootmediums an, sodass Sie auf diesem Weg gezielt im Einzelfall via PXE booten können. Dell und IBM verwenden dazu in der Regel [F12], Asus nutzt [F8], und HP legt die Funktion meist auf [F9].

MSDOS-ISO booten

Für erste Versuche mit einem bootbaren Betriebssystem-Images eignet sich das kompakte, nur 3 MByte große MSDOS-Bootdisk bestens. Sie finden ein entsprechendes ISO-Image beispielsweise bei Allbootdisks.com [3], laden es dort herunter und kopieren es dann nach /srv/tftp/DOS/.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland