RasPi als PXE-Server (2): Rettungssysteme

© Mohamad Razi Bin Husin, 123RF

Nothelfer

Wo ist doch gleich die Notfall-CD mit dem Virenscanner, wo der USB-Stick mit dem Recovery-System? Dank PXE auf dem Raspberry Pi gehört die Sucherei nach den Datenträgern ab sofort endgültig der Vergangenheit an.

README

Der erste Teil des Workshops zeigte in der letzten Ausgabe, wie Sie auf dem Raspberry Pi ein einfaches PXE-System einrichten. In diesem Teil des Workshops nutzen wir diese Grundlage, um gängige Notfall-Systeme wie Knoppix oder Desinfec't über das Netzwerk zu starten.

Im ersten Teil des Workshops [1] haben Sie erfahren, wie sich auf dem Raspberry Pi ein PXE-System zum Ausliefern einfacher Boot-Images aufsetzen lässt. Der Aufwand lohnt sich aber bestimmt nicht, um lediglich einen Speichertest oder ein altes MS-DOS zu laden. Deswegen zeigen wir Ihnen im vorliegenden Teil der Serie, wie Sie verschiedene Notfall-Systeme so einrichten, dass sich auch diese aus dem Netzwerk starten lassen (Abbildung 1). Dazu dienen im Folgenden Knoppix und Desinfec't 2013 als Beispiele.

Abbildung 1: So sieht nach den entsprechenden Vorbereitungen der Startbildschirm eines mit PXE über das Netz bootenden Rechners aus.

NFS

Damit der Netzwerkstart der Rettungssysteme später funktioniert, müssen Sie den Raspberry Pi erst einmal in die Lage versetzen, Verzeichnisse über NFS im Netz bereitzustellen, indem Sie die entsprechenden Serverdienste einrichten (Listing 1). Die dabei erscheinende Warnung (Zeile 3) dürfen Sie getrost erst einmal ignorieren: Sie weist lediglich darauf hin, dass der NFS-Server gestartet wurde, ohne dass in der Datei /etc/exports dafür irgendwelche Freigaben definiert sind.

Listing 1

 

$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server nfs-common rpcbind
[warn] Not starting NFS kernel daemon: no exports. ... (warning).

Zu Testzwecken legen Sie ein Verzeichnis dafür an und geben es dann via NFS im Netzwerk frei (Listing 2). Achten Sie hierbei darauf, dass zwischen der Netzwerkadresse (im Beispiel 192.168.100.0/24, was Sie für Ihr Netz anpassen müssen) und den Optionen in der folgenden Klammer kein Leerzeichen stehen darf (Zeile 2). Ansonsten erscheint eine nur schwer interpretierbare Fehlermeldung.

Listing 2

 

$ sudo mkdir -p /srv/data/nfs/dummy
$ sudo echo "/srv/data/nfs/dummy 192.168.100.0/24(ro,root_squash,sync,no_subtree_check)" > /etc/exports

Anschließend müssen Sie die drei frisch installierten Dienste noch aktivieren. Um dabei Hinweise auf fehlende IPv6-Unterstützung zu vermeiden, öffnen Sie vorab die Datei /etc/netconfig in einem Editor und kommentieren darin die beiden mit udp6 und tcp6 beginnenden Zeilen durch Voranstellen einer Raute (#) aus. Anschließend starten Sie nacheinander den Rcpbind-Daemon, die NFS-Utilities und den NFS-Kernel-Daemon (Listing 3).

Listing 3

 

$ sudo service rpcbind start
[ ok ] Starting rpcbind daemon....
$ sudo service nfs-common start
Starting NFS common utilities: statd idmapd.
$ sudo service nfs-kernel-server start
[ ok ] Exporting directories for NFS kernel daemon....
[ ok ] Starting NFS kernel daemon: nfsd mountd.
$ sudo showmount -e
Export list for pi.homenet.de:
/srv/data/nfs/dummy   192.168.100.0/24

Ärgerlicherweise legen die Installationsroutinen für rpcbind und nfs-common in den Init-Verzeichnissen lediglich Kill-Skripts an, jedoch keine Start-Skripte. Daher starten die beiden Dienste nicht automatisch beim Systemstart, mit der Folge, dass auch der NFS-Server nicht anläuft. Das lässt sich aber leicht in Ordnung bringen. Dazu gilt es, die bestehenden Skripte zu löschen und dann in der richtigen Form neu anzulegen.

Zum Löschen kommt das Kommando insserv mit dem Parameter -r ("remove") zum Einsatz (Listing 4). Nach dessen Anwendung sollten Sie mit find noch einmal prüfen, ob wirklich alle Init-Skripte entfernt wurden: Gelegentlich übersieht Insserv ein Skript, das es dann von Hand zu löscht gilt (Zeilen 5 und 10).

Listing 4

 

$ sudo insserv -r nfs-kernel-server
$ find /etc/rc* -name *nfs-kernel-server
$ sudo insserv -r nfs-common
$ find /etc/rc* -name *nfs-common
/etc/rcS.d/K12nfs-common
$ sudo rm -f /etc/rcS.d/K12nfs-common
$ find /etc/rc* -name *nfs-common
$ sudo insserv -r rpcbind
$ find /etc/rc* -name *rpcbind
/etc/rcS.d/K11rpcbind
$ sudo rm -f /etc/rcS.d/K11rpcbind
$ find /etc/rc* -name *rpcbind

Anschließend legen Sie die Skripte mit Insserv neu an (Listing 5, Zeilen 1 bis 3). Danach sollten Start-Skripte für die Runlevel 2, 3, 5 und 6 sowie Kill-Skripte für die Runlevel 0, 1 und 6 vorhanden sein (Zeilen 4 bis 29).

Listing 5

 

$ sudo insserv rpcbind
$ sudo insserv nfs-common
$ sudo insserv nfs-kernel-server
$ find /etc/rc* -name *rpcbind
/etc/rc0.d/K05rpcbind
/etc/rc1.d/K05rpcbind
/etc/rc2.d/S11rpcbind
/etc/rc3.d/S11rpcbind
/etc/rc4.d/S11rpcbind
/etc/rc5.d/S11rpcbind
/etc/rc6.d/K05rpcbind
/etc/rcS.d/S11rpcbind
$ find /etc/rc* -name *nfs-common
/etc/rc0.d/K05nfs-common
/etc/rc1.d/K05nfs-common
/etc/rc2.d/S12nfs-common
/etc/rc3.d/S12nfs-common
/etc/rc4.d/S12nfs-common
/etc/rc5.d/S12nfs-common
/etc/rc6.d/K05nfs-common
/etc/rcS.d/S12nfs-common
$ find /etc/rc* -name *nfs-kernel-server
/etc/rc0.d/K01nfs-kernel-server
/etc/rc1.d/K01nfs-kernel-server
/etc/rc2.d/S14nfs-kernel-server
/etc/rc3.d/S14nfs-kernel-server
/etc/rc4.d/S14nfs-kernel-server
/etc/rc5.d/S14nfs-kernel-server
/etc/rc6.d/K01nfs-kernel-server

Nach einem Neustart des Raspberry Pi läuft dann der NFS-Dienst wie gewünscht. Von einem entfernten Rechner aus prüfen Sie mit folgendem Befehl, welche Verzeichnisse der RasPi via NFS bereitstellt:

$ sudo showmount -e pi.homenet.de

Dabei ersetzen Sie pi.homenet.de durch den Hostnamen oder die IP-Adresse Ihres Raspberry Pi.

Knoppix via PXE booten

Klaus Knoppers auf den Live-Betrieb spezialisierte Linux-Distribution drängt sich für das Booten via PXE geradezu auf. Als Komponenten dazu benötigen Sie neben dem Linux-Kernel die Datei miniroot.gz, die eine RAM-Disk mit einem Minimalsystem enthält. Aus einem laufenden Knoppix erzeugen Sie diese Dateien mithilfe des Knoppix-Terminalservers.

Legen Sie sich die Knoppix-Live-DVD [2] und einen USB-Stick zurecht, und starten Sie dann Knoppix von der DVD. Sobald der Boot-Prompt erscheint (boot:), wählen Sie aus, ob Sie ein 32- oder 64-Bit-System starten wollen: Drücken Sie nur die Eingabetaste, fährt das 32-Bit-System hoch; geben Sie vorher die Boot-Option knoppix64 an, bootet das 64-Bit-Knoppix.

In der grafischen Oberfläche von Knoppix wählen Sie aus dem Hauptmenü den Punkt Knoppix | Knoppix Terminal-Server starten (Abbildung 2). Daraufhin erscheinen einige Dialoge, welche die für den Betrieb des Terminalservers notwendigen Informationen erfragen. Hier können Sie überall einfach auf OK klicken.

Abbildung 2: Den Knoppix-Terminalserver starten Sie über den Hauptmenüpunkt Knoppix.

Lediglich im Dialog zu den zu unterstützenden Netzwerkkarten-Typen (Abbildung 3) sollten Sie sich vorab vergewissern, dass alle Treiber geladen werden, die Sie für die Netzwerkadapter der verwendeten Clients benötigen. Dazu kommentierte Klaus Knopper auf unsere Nachfrage: "Normalerweise sind bereits alle PCI- und PCIe-Netzwerkkarten, die überhaupt bootfähig sind, ausgewählt."

Abbildung 3: In diesem Dialog des Knoppix-Terminalserver gilt es, die benötigten Netzwerkkartentreiber auszuwählen.

Die weiteren Dialoge können Sie wieder mit OK quittieren, bis schließlich der Knoppix-Terminalserver startet. Anschließend finden Sie im Verzeichnis /tftpboot die gewünschte RAM-Disk-Datei miniroot.gz, die Sie nun auf den bereitgelegten USB-Stick kopieren (Abbildung 4).

Abbildung 4: Kopieren Sie aus dem gestarteten Knoppix-System die Datei /tftpboot/miniroot.gz auf einen USB-Stick.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.