Login
Newsletter
Werbung

Do, 11. Februar 2016, 15:00

dCore

Anhang: InitRD

Die meisten »regulären« Distributionen verwenden eine initiale RAM-Disk (InitRD), um dem Linux-Kern in der Startphase zusätzliche Treibermodule zur Verfügung zu stellen. Damit kann auch ein generischer Kern das Wurzeldateisystem beispielsweise auch von LVM, RAID oder verschlüsselten Partitionen laden.

Die InitRD umfasst ein gepacktes Dateisystem, das vom Kern im RAM entpackt und einhängt wird. Daraufhin wird der darin enthaltene Init-Prozess gestartet. Üblicherweise hängt dieser ein beschreibbares Wurzeldateisystem von einem Datenträger ein und lässt sich durch den eigentlichen Init-Prozess ablösen.

Ein System, das im RAM läuft, verlässt die InitRD jedoch nicht und belässt das Wurzeldateisystem im RAM. Damit gewinnt man Geschwindigkeit, weil die vielen Systemdateien nicht einzeln von einem Datenträger geladen werden müssen. Andererseits können die Dateien nicht verändert werden, weil die InitRD grundsätzlich nur lesbar ist.

Letzteres bringt zunächst die Einschränkungen mit sich, dass Konfigurationsdateien, zum Beispiel unter /etc nicht dauerhaft verändert werden können. Prinzipiell sind solche Systeme dadurch sozusagen »unkaputtbar«, weil das Grundsystem nach jedem Neustart wieder in den Ursprungszustand zurückkehrt. Methoden, um trotzdem Dateien dauerhaft im System zu speichern, werden unten diskutiert.

Zuletzt muss noch erwähnt werden, dass die Größe der InitRD natürlich gering gehalten werden sollte, damit das Entpacken in annehmbarer Zeit geschieht. Deshalb wird das Grundsystem minimal gehalten, was sich zum Beispiel darin zeigt, dass oftmals Busybox anstelle der GNU Coreutils zum Einsatz kommt. Die InitRD von dCore ist ca. 10 MB groß.

Anhang: Persistenz

Ein Live-System kann mit verschiedenen Methoden um ein persistentes Dateisystem ergänzt werden. Am gebräuchlichsten ist ein beschreibbares Overlay-Dateisystem. Ein solches kann transparent über das Wurzeldateisystem gelegt werden. Geänderte oder gelöschte Dateien werden punktuell überdeckt, sodass im Gesamten der Eindruck eines beschreibbaren Wurzeldateisystems entsteht.

dCore beschreitet einen anderen Weg. Da alle Dateien in einem RAM-Dateisystem liegen, können sie im Betrieb direkt verändert werden. Um Dateien oder Ordner persistent zu machen, listet der Benutzer ihren Namen (ohne führenden Schrägstrich!) in der Datei /opt/.filetool.lst. Beim Herunterfahren werden diese Dateien ins Archiv /opt/mydata.tgz gepackt – sofern vor dem eigentlichen Shutdown-Kommando das Skript backup.sh aufgerufen wird. Beim grafischen Abmeldedialog ist das der Fall, auf der Kommandozeile muss das Skript jedoch manuell aufgerufen werden.

Beim Hochfahren werden die Dateien wieder ins RAM-Dateisystem geschrieben und stehen so zur Verfügung. In der Grundeinstellung werden /home und /opt persistent gemacht. Letzteres enthält insbesondere alle importierten Erweiterungen, weshalb beide Verzeichnisse recht umfangreich sein können.

Da das Ver- und Entpacken eines tar-Archivs recht zeitaufwändig ist, wird man beide Verzeichnisse gerne von einem herkömmlichen Dateisystem einbinden wie in der besprochenen Beispielinstallation.

Autoreninformation

Stefan Müller verwendet gerne Linux-Installationen auf Tablet PCs. Beruflich versucht er jungen Menschen die Freiheit in der (Informatik-) Welt näher zu bringen.

Dieser Artikel ist in freiesMagazin 02/2016 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung