0%
Como ferramentas aparecem em Linux imutável sem reiniciar: o truque sysext

Wie Werkzeuge ohne Neustart in unveränderlichem Linux erscheinen: Der sysext-Trick

Entdecken Sie, wie Sie Werkzeuge ohne Neustart in unveränderliche Linux-Systeme injizieren können, indem Sie systemd-sysext verwenden, um Stabilität und Flexibilität zu wahren.

Unveränderliche Linux-Systeme wie Fedora Silverblue, openSUSE MicroOS und Steam Deck versprechen Stabilität, können aber schnelle Diagnoseaufgaben erschweren. Wenn Sie versuchen, ein nützliches Werkzeug in /usr/bin abzulegen oder globale Verzeichnisse zu erstellen, erscheint häufig die Meldung Read-only file system.

Neste artigo
  1. Was macht das Unveränderliche so stabil?
  2. Das Hindernis des Nur-Lese-Systems
  3. Wie sysext dies in der Praxis löst
  4. Ihre erste Systemerweiterung
  5. Der Zeitpunkt der Zusammenführung
  6. Häufige Probleme und Lösungen
  7. Rückgängig machen ohne Spuren zu hinterlassen
  8. Warum dies den Container-Ansatz übertreffen kann
  9. Fazit

Was macht das Unveränderliche so stabil?

In traditionellen Distributionen ist das Root-Verzeichnis beschreibbar und schnelle Änderungen können vorgenommen werden. In unveränderlichen Versionen ist das Root-Image geschützt und Updates sind ganze, verifizierte Versionen, was Atomarität gewährleistet, aber punktuelle Anpassungen erschwert.

Das Hindernis des Nur-Lese-Systems

Der Kopfschmerz entsteht, wenn Sie in Echtzeit debuggen oder Werkzeuge hinzufügen müssen. Der Versuch, beispielsweise eine Datei mit sudo in /usr/bin zu erstellen, führt zu einer Ablehnung und beweist, dass das Root-System geschützt ist.

Um ein Werkzeug offiziell hinzuzufügen, erfordert der traditionelle Weg rpm-ostree oder Neu-Konfigurationen, was einen Neustart erfordern kann und nicht auf allen unveränderlichen Distributionen funktioniert.

Wie sysext dies in der Praxis löst

systemd-sysext fungiert als Überlagerung, die eine Erweiterung mithilfe von OverlayFS mit dem bestehenden System zusammenführt. Die Idee ist, eine Reihe von Binärdateien und Bibliotheken in einem separaten Ordner zu erstellen und diese zur Laufzeit mit /usr zu "verschmelzen", ohne das Basis-Image zu ändern.

Ihre erste Systemerweiterung

Schritt 1: Struktur der Erweiterung erstellen, die das Root-System spiegelt

mkdir -p my-tool-ext/usr/bin
mkdir -p my-tool-ext/usr/lib/extension-release.d/

Schritt 2: Der Reisepass der Erweiterung

sysext führt die Zusammenführung nur durch, wenn es weiß, welche OS-Version Sie verwenden. Überprüfen Sie die aktuelle ID und Version mit:

cat /etc/os-release | grep -E ^ID=|^VERSION_ID=

Im Beispiel gibt das Set ID=fedora und VERSION_ID=43 zurück. Passen Sie dies an Ihre aktuellen Werte an

Erstellen Sie die Release-Datei der Erweiterung

echo ID=fedora > my-tool-ext/usr/lib/extension-release.d/extension-release.my-tool-ext
echo VERSION_ID=43 >> my-tool-ext/usr/lib/extension-release.d/extension-release.my-tool-ext

Überprüfen Sie die Struktur, um sicherzustellen, dass alles am richtigen Ort ist

ls -R my-tool-ext

Der Zeitpunkt der Zusammenführung

Sobald die Erweiterung fertig ist, verschieben Sie sie in das Erweiterungsverzeichnis des Systems und starten Sie die Zusammenführung:

sudo cp -r my-tool-ext /var/lib/extensions/
sudo systemd-sysext merge

Überprüfen Sie die Anwesenheit der Binärdatei und bestätigen Sie, dass sie als Teil des Systems betrachtet wird

ls -l /usr/bin/foss-tool

Sie sollten das Werkzeug am erwarteten Pfad verfügbar sehen

systemd-sysext status

Das System liest technisch gesehen weiterhin das Read-Only-Image, aber das neue Werkzeug ist sofort einsatzbereit aktiviert

Häufige Probleme und Lösungen

Ein häufiger Fehler ist No suitable extensions found, der auftritt, wenn die Erweiterung nicht mit der aktuellen Image-Version kompatibel ist. Aktualisieren Sie die Metadaten, um mit der OS-Version übereinzustimmen, und versuchen Sie es erneut.

Rückgängig machen ohne Spuren zu hinterlassen

Um die Integration rückgängig zu machen, verwenden Sie den Unmerge-Befehl:

sudo systemd-sysext unmerge

Nach dem Unmerge verschwindet das Werkzeug aus /usr und das System kehrt in seinen ursprünglichen Zustand zurück.

Warum dies den Container-Ansatz übertreffen kann

Container isolieren Anwendungen, verschmelzen aber nicht mit dem Host. sysext injiziert das Werkzeug direkt in das System, mit denselben Berechtigungen und Sichtbarkeit wie ein natives Werkzeug, was für das Debuggen des Kernels oder den Umgang mit Hardware unerlässlich sein kann.

Fazit

Unveränderlichkeit muss keinen Verlust an Flexibilität bedeuten. Mit sysext können Sie die Sicherheit eines schreibgeschützten Kerns beibehalten und trotzdem schnell die benötigten Werkzeuge ohne Neustart injizieren.

Jetzt sind Sie dran – Haben Sie sysext bereits auf Ihrem unveränderlichen Linux getestet? Hinterlassen Sie Ihre Erfahrungen oder Fragen in den Kommentaren, um die besten Praktiken gemeinsam zu diskutieren.

Veja mais artigos como Wie Werkzeuge ohne Neustart in unveränderlichem Linux erscheinen: Der sysext-Trick na categoria Nachrichten.

Steam Deck Machine

Leidenschaftlicher Gamer und riesiger Valve-Fan: Hier findest du die besten Spiele und Tipps, um das Beste aus deiner Steam-Hardware herauszuholen.

Go up

Steam Deck Machine uses cookies to ensure you get the best experience on our website. We use them to remember your preferences and analyze how you interact with our guides and reviews. Is that okay with you? More