Aus Raspberry Pi Geek 08/2018

Raspbian im Read-only-Modus (Seite 3)

Die Befehle dazwischen laufen immer nach demselben Schema ab: Sie verschieben die fragliche Datei oder das Verzeichnis nach /tmp/ und verlinken sie anschließend. Wenn Sie im Verzeichnis dazwischen noch ein ls -laF absetzen, sehen sie die Umleitung (Abbildung 3).

Abbildung 3: So zeigt Ls das Verlegen von Dateien über symbolische Links.

Abbildung 3: So zeigt Ls das Verlegen von Dateien über symbolische Links.

Die Anzahl der betroffenen Dateien hängt von der Version und Konfiguration des Systems ab. Vergeben Sie zum Beispiel in der /etc/network/interfaces eine feste IP-Adresse für das System, dann startet DHCP nicht, und die Befehle ab Zeile 8 können entfallen. Verwenden Sie spezielle System- oder Anwendungsprogramme, müssen Sie eventuell noch zusätzliche Dateien oder Verzeichnisse verlegen. Dazu ergänzen Sie dann Listing 4 entsprechend.

Ein Neustart mit nachfolgendem Find-Kommando sollte außer der Datei /etc/fake-hwclock.data sowie der Datei /home/pi/.bash_history keine Dateien mehr ausgeben, sondern nur noch die Einhängepunkte der virtuellen Dateisysteme. Aus kosmetischen Gründen könnten Sie das Paket fake-hwclock entfernen, wirklich nötig ist das aber nicht. Genauso wie für die Datei im Heimat-Verzeichnis des Users kümmern wir uns nicht darum und ignorieren später entsprechende Fehlermeldungen schlicht.

Von diesen Ausnahmen abgesehen, schreibt das System nun nicht mehr auf die SD-Karte. Um das Schreiben konsequent zu unterbinden, weisen wir Raspbian noch an, die System- und Boot-Partition als nur lesend zu mounten. Dazu ändern wir die beiden zugehörigen Zeilen in der Datei /etc/fstab wie in Listing 5. In der vierten Spalte kommt das Attribut ro (read-only) dazu, die Null in der letzten Spalte verhindert jetzt das Überprüfen der Dateisysteme beim Booten auf Inkonsistenzen.

Listing 5

 

# --- alter Eintrag
# PARTUUID=xxx-01 /boot vfat defaults             0 2
# PARTUUID=xxx-02 /     ext4 defaults,noatime     0 1
# --- neuer Eintrag
  PARTUUID=xxx-01 /boot vfat defaults,ro          0 0
  PARTUUID=xxx-02 /     ext4 defaults,noatime,ro  0 0

Ergänzungen

Wenn Sie doch mal das System ändern wollen, etwa um ein Update einzuspielen, dann erlauben Sie mit den zwei Kommandos aus Listing 6 das Schreiben wieder. Nach den Änderungen wiederholen Sie die beiden Befehle, ersetzen dabei jedoch das rw durch ein ro – oder Sie booten das System neu. LibreELEC zwingt Sie zu einem ähnlichen Verfahren, wenn Sie an der Kodi-Oberfläche vorbei das System anpassen müssen.

Listing 6

 

$ sudo -o remount,rw /
$ sudo -o remount,rw /boot

Diese Befehle lassen sich auch innerhalb eines Skripts dazu einsetzen, Anwendungsprogramme temporär Dateien schreiben zu lassen. Erfordert die Anwendung einen dauerhaften Schreibzugriff und möchten Sie trotzdem das Betriebssystem nur lesend betreiben, dann sorgen Sie dafür, dass das betroffene Anwendungsprogramm nur auf Netzlaufwerke oder einen USB-Stick schreibt. Ein plötzlicher Stromausfall beschädigt dann zwar womöglich die Daten, nicht aber das Betriebssystem.

Fazit

Die Schwierigkeiten beim Aufsetzen eines Read-only-Systems liegen weniger aufseiten des Betriebssystems – mit den hier vorgestellten Änderungen erledigen Sie das in wenigen Minuten. Entwickeln Sie Ihr Anwendungsprogramm selbst, können Sie auch dort diesbezügliche Probleme ausräumen. Als kritisch erweisen sich häufig Fremdprogramme, die sich nicht immer standardkonform verhalten und oft auch nicht in dafür vorgesehene Verzeichnisse schreiben.

Einen wichtigen Aspekt sollten Sie in jedem Fall im Auge behalten: Lang laufende Systeme verbrauchen schleichend Hauptspeicher, denn auch ein nur hin und wieder geschriebener Protokollsatz füllt auf Dauer die virtuellen Festplatten. Eine gelegentliche Aufräumaktion oder ein regelmäßiger Reboot löst aber auch dieses Problem. 

Der Autor

Bernhard Bablok (mailto:[email protected]) arbeitet bei der Allianz Technology SE als SAP-HR-Entwickler. Wenn er nicht Musik hört, mit dem Fahrrad oder zu Fuß unterwegs ist, beschäftigt er sich mit Themen rund um Linux, Programmierung und Kleinstrechner.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 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