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

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.