Upgrade von rootfs unter Beibehaltung von / etc

409
Benjamin T

Ich versuche eine Lösung zu finden, um ein Embedded-Linux-Gerät problemlos zu aktualisieren.

Ich habe mich umgesehen und eine der Lösungen, die ich gefunden habe, ist, zwei rootfs-Partitionen zu haben. Sagen wir A und B. Einer von ihnen ist aktiv, dh er wird beim Booten vom Bootloader geladen. Angenommen, A. Wenn das Update abgeschlossen ist, werden die neuen Root-Dateien in B geschrieben, der Bootloader wird für die Verwendung von B neu konfiguriert, und das System wird neu gestartet.

Diese Strategie scheint weit verbreitet zu sein und wird von verschiedenen Aktualisierungssoftware wie SWUpdate verwendet.

Meine Frage hier ist: Was ist mit /etc? Wenn Sie das tun, was oben beschrieben wurde, /etcwird es bei jeder Aktualisierung des Systems vollständig ersetzt. Dies kann zu einigen Problemen führen, z. B. beim Löschen des SSH-Hostschlüssels (in /etc/ssh). Dadurch können auch Benutzereinstellungen wie IP-Konfigurationen gelöscht werden.

Gibt es eine empfohlene Praxis für solche Fälle? Ich könnte mir vorstellen, ausgewählte Dateien in eine dritte Partition zu stellen und symbolische Links in / etc zu haben, die auf sie zeigen. Oder Sie haben ein Update-Skript, das ausgewählte Dateien von der alten /etcin die neue kopiert /etc.

0
Nur ein paar Gedanken, definitiv keine Antwort: Wenn Sie den gesamten Ordner beibehalten möchten, können Sie eine dritte Partition erstellen und diese in `/ etc` mounten. Wenn Ihr Kernel dies unterstützt, können Sie [OverlayFS] (https://en.m.wikipedia.org/wiki/OverlayFS) verwenden. Auf diese Weise können Sie weiterhin Dateien in "/ etc" aktualisieren, die Benutzerkonfiguration wird jedoch darüber eingeblendet. Als zusätzlicher Vorteil werden die Werkseinstellungen und Benutzereinstellungen getrennt, sodass Sie Benutzereinstellungen problemlos importieren / exportieren oder die Werkseinstellungen wiederherstellen können. Ich weiß jedoch nichts über eingebettete Systeme, daher könnten meine Ideen schrecklich falsch sein. danzel vor 6 Jahren 0

0 Antworten auf die Frage