Erstellen eines schreibgeschützten Linux-Systems mit einer beschreibbaren Schicht im RAM

7

Ich muss RHEL 6.6 / 7.0 im schreibgeschützten Modus mit einer beschreibbaren Schicht nur im RAM starten. Ich glaube, dies ähnelt der Funktionsweise von Live-CDs, da das Dateisystem schreibgeschützt ist, aber bestimmte Teile davon nach dem Laden in den Arbeitsspeicher beschreibbar sind. Hier gehen alle Änderungen, die in das Dateisystem geschrieben wurden, beim Neustart verloren (da nur RAM in der beschreibbaren Ebene aktualisiert wird).

Während ich mich im Internet umsah, habe ich keine Anleitung zum Konfigurieren meiner eigenen "Live-CD" ohne Hilfsprogramme gefunden, damit ich diesen Prozess in einem vorhandenen installierten System nachahmen kann.

Weiß jemand, wo ich möglicherweise Ressourcen für das Erstellen meiner eigenen Live-CD oder das Erstellen eines schreibgeschützten Linux mit einer beschreibbaren Ebene nur im RAM erhalten kann?

Kinetischer Lichtbogen
quelle

Antworten:

9

OK, ich habe ein funktionierendes Nur-Lese-System auf einer SD-Karte, mit dem der Lese- / Schreibschalter auf den Nur-Lese-Modus eingestellt werden kann. Ich werde meine eigene Frage beantworten, da ich das Gefühl habe, dass ich hier wieder nach den Schritten suchen werde, und hoffentlich hilft dies jemand anderem.

Beim Einstellen verschiedener Verzeichnisse /etc/fstabals schreibgeschützt auf einem Red Hat Enterprise Linux 6.6-System habe ich die Datei gefunden /etc/sysconfig/readonly-root. Dies weckte mein Interesse daran, wofür diese Datei verwendet wurde, sowie an zusätzlichen Informationen dazu. Kurz gesagt, diese Datei enthält eine Zeile mit der Angabe " READONLY=no". Durch Ändern dieser Zeile wird der größte Teil des Root-Dateisystems automatisch als schreibgeschützt geladen, während die erforderlichen Schreibvorgänge in verschiedenen Verzeichnissen beibehalten werden (Verzeichnisse und Dateien werden als tmpfs geladen). Die einzigen Änderungen, die ich vornehmen musste, waren /home:/rootund einige andere Verzeichnisse, die über das /etc/rwtab.dVerzeichnis geschrieben werden können, und ändern Sie / etc / fstab, um das Root-Dateisystem als schreibgeschützt zu laden (geändert in " defaults" in " ro" für root). Nachdem ich " READONLY=yes" in der /etc/sysconfig/readonly-rootDatei festgelegt und meine erforderlichen beschreibbaren Verzeichnisse /etc/rwtab.dsowie die fstabÄnderung festgelegt hatte, konnte ich das System dazu bringen, schreibgeschützt zu laden, aber beschreibbare Verzeichnisse in den RAM laden.

Für weitere Informationen sind dies die Ressourcen, die ich verwendet habe:

Außerdem habe ich eine schnelle Überprüfung unter Red Hat Enterprise Linux 7.0 durchgeführt, und diese Datei ist immer noch vorhanden und funktioniert. Meine Testumgebung war CentOS 6.6 und 7.0 in einer virtuellen Maschine sowie RHEL 6.6 und 7.0 in einem VME-Einplatinencomputer.

ANMERKUNG: Sobald der Root schreibgeschützt ist, können keine Änderungen am Root-System vorgenommen werden. Beispielsweise können Sie yum nicht zum Installieren von Paketen verwenden und diese beim Neustart beibehalten. Um die schreibgeschützte Wurzel zu brechen, habe ich eine Grub-Zeile hinzugefügt, die rhgb und quiet entfernt (dies ist nur zum Debuggen von Startproblemen, Sie können sie belassen, wenn Sie möchten), und " init=/bin/bash" hinzugefügt . Dadurch konnte ich ein Terminal betreten. Als ich am Terminal ankam, tippte ich " mount - / -oremount,rw" ein, um das System beschreibbar zu machen. Einmal beschreibbar, habe ich (mit vim) geändert, um /etc/sysconfig/readonly-rootzu sagen "READONLY=no"und das System neu gestartet. Dadurch kann ich Wartungsarbeiten am System durchführen, indem ich schreibgeschützt ausschalte. Wenn Sie eine SD-Karte wie ich verwenden, muss der Lese- / Schreibschalter auf der SD-Karte auf beschreibbar eingestellt sein.

Kinetischer Lichtbogen
quelle
3

Ja, das ist wie bei einer Live-CD. Dazu wird ein spezieller Dateisystemtreiber verwendet, der mehrere Dateisysteme übereinander legt - in diesem Fall ein schreibgeschütztes Dateisystem mit einer RAM-Disk.

Es gibt viele verschiedene Auswahlmöglichkeiten für Overlay-Dateisysteme. Suchen Sie nach UnionFS, aufs und Overlayfs, um eine Vorstellung davon zu erhalten, welche Auswahlmöglichkeiten Sie haben und welche Kompromisse zwischen ihnen bestehen könnten.

godlygeek
quelle
1
Danke für Ihren Vorschlag. Ich habe mich bereits in einigen Union-Dateisystemen umgesehen, aber festgestellt, dass fast alle in RHEL 6/7 nicht verfügbar sind. Ich bin daran interessiert, ein technisches Verständnis dafür zu entwickeln, wie Fedora Live-CDs erstellt werden, da UnionFS, AuFS usw. nicht Teil des Kernels oder der Installationspakete sind. Diese Dateisysteme benötigen einen Patch, um zu funktionieren. Damit die Fedora Live-CD funktioniert, muss jedoch etwas vorhanden sein, da jeder eine herunterladen und verwenden kann. Ich suche also nach der Funktionsweise der Live-CDs auf Fedora / CentOS / RHEL / Red Hat-Derivaten und stelle sicher, dass mein System ro geladen wird.
Kinetic Arc
@KineticArc, bugzilla.redhat.com/show_bug.cgi?id=465725 scheint darauf hinzudeuten, dass RHEL dies mit etwas tut, das als "LVM-Snapshot-Overlays" bezeichnet wird - dies könnte die Richtung sein, in die man schauen muss. Dieser Fehler scheint jedoch auch darauf hinzuweisen Sie sind eine technisch schlechtere Lösung als Union-Dateisysteme.
Godlygeek
1

Um der Antwort von Kinetic Arc zu folgen, können Sie das System bei nachfolgenden Neustarts einfacher ändern, indem Sie der Kernel-Befehlszeile "noreadonly" hinzufügen. Wenn Sie dies nicht sehr oft erwarten, ist es wahrscheinlich ausreichend, nur Maden zu fangen und manuell hinzuzufügen. Bei der Entwicklung unserer schreibgeschützten Systeme haben wir einen Eintrag in grub.conf hinzugefügt und das Timeout geringfügig erhöht. Sobald die Entwicklung des System-Images abgeschlossen ist, nehmen wir den Eintrag heraus, bevor wir das Image verteilen.

Blasende Schafe
quelle