Forum: PC Hard- und Software Swupdate für debian basierte Systeme


von Gustav G. (gustavgggg)


Lesenswert?

Ich habe auf einem Industrie PC Debian mit GRUB installiert. Die meiste 
Zeit ist das Ding nicht am Internet, soll aber geupdatet werden können. 
Ich will das am Ende ungern über APT Paketquellen machen.

Ich habe Swupdate entdeckt, was sowas prinzipiell können soll. 
Allerdings ist sämtliche Dokumentation nur auf Yocto oder Buildroot 
bezogen, was ich auf keinen Fall benutzen möchte.

Hat jemand schonmal ein komplettes debian rootfs mit Grub über swupdate 
aktualisiert und kann mir dazu ein Tutorial geben.

Mit stellen sich folgende Fragen. So wir ich es verstanden habe baut man 
ein Image und muss das irgendwie auf die festplatte bekommen. Braucht es 
dazu eine separate Partition oder kommt man weiter mit der root 
Partition und einer weiteren für unveränderliche Daten aus?

Wie wird der Update Prozess über GRUB bei einem Single Image gestartet 
und woher kommt dann das update file beim neustart? VOn der aktuellen 
Root Partition?

von Ralf D. (doeblitz)


Lesenswert?

Gustav G. schrieb:
> Ich habe auf einem Industrie PC Debian mit GRUB installiert. Die meiste
> Zeit ist das Ding nicht am Internet, soll aber geupdatet werden können.
> Ich will das am Ende ungern über APT Paketquellen machen.

Warum nicht? Das Teilmuss ja (hoffentlich) irgendwie einen externen 
Datenträger anbinden können – irgendwie hat man es ja mal installiert.

Also einfach einen (partiellen) Debian-Mirror aufsetzen, dessen Daten 
auf einem externen Datenspericher abgelegt werden. Diesen dann an den 
Industrie-PC anstöpseln und von dort aus aktualisieren. Das ist dann 
ähnlich wie bei der Debian-Installation von optischen Datenträgern (CD, 
DVD, BluRay).

Ich mache das hier zwar alles online via apt-cacher-ng nur zur Reduktion 
des Datenverkehrs, aber den dadurch dynamisch entstandenen Mirror mit 
derzeit ca. 27GByte könnte ich genauso auch via Datenträger an andere 
Geräte anhängen.

IMHO ist das der einfachste und schmerzärmste Weg. YMMV.

von Alexander S. (alesi)


Lesenswert?

Gustav G. schrieb:
> Die meiste Zeit ist das Ding nicht am Internet, soll aber geupdatet werden 
können.

Heißt das, zum Aktualisieren ist es am Internet oder kann es nur, z.B., 
über einen externen Datenträger aktualisiert werden?

Eine verwandte Frage gab es vor nicht allzu langer Zeit schon einmal:
Beitrag "Selbstupdate auf Debian Systemen"

von Gustav G. (gustavgggg)


Lesenswert?

Ralf D. schrieb:
> Warum nicht? Das Teilmuss ja (hoffentlich) irgendwie einen externen
> Datenträger anbinden können – irgendwie hat man es ja mal installiert.

Nein es hat extern nur einen RJ45 Ethernet Port. Updates sollen per SSH 
eingespielt werden. Es ist nicht gewünscht da irgendwelche USB Ports 
herauszuführen.

Die initiale Installation erfolgt per USB Stick aber das soll der 
Benutzer später nicht mehr machen können.

Mit einem APT Mirror möchte ich das nicht machen weil da zu viel 
schiefgehen kann. Es soll eher Android mäßig einfach alles 
überschreiben.

von Mark S. (voltwide)


Lesenswert?

Bin etwas erstaunt und deshalb die ernst gemeinte Frage: Welche 
schlechten Erfahrungen halten Dich davon ab apt zu verwenden?

von Εrnst B. (ernst)


Lesenswert?

Gustav G. schrieb:
> Es soll eher Android mäßig einfach alles
> überschreiben.

Was unterscheidet dann ein Update von einer Neuinstallation?

Pack ein Partitions-Image auf den USB-Stick, überbügel alles.
Daten/Config auf einer anderen Partition unterbringen, falls die 
beibehalten werden sollen.


Und was soll der Hinweis auf Android? Gerade Android ist sehr gut darin, 
nur Teile von APKs bei einem Update auszutauschen. Besser noch als APT, 
was immer die ganze Applikation neu drüberinstalliert.

: Bearbeitet durch User
von Gustl B. (gustl_b)


Lesenswert?

Gustav G. schrieb:
> Es soll eher Android mäßig einfach alles überschreiben.

Das ist aber dann eigentlich was Anderes. Da werden nicht einzelne 
Anwendungen oder so aktualisiert, sondern im Speicher wird ein neues 
Abbild auf die Systempartition geschrieben.
Kannst du auch machen. Eindeutig Benutzerdaten und System trennen und 
dann ein neues Abbild zusammenstellen und damit die Partition 
überschreiben.

Aber wenn du sowieso schon bei Abbildern bist die du auswechseln können 
willst, dann boote doch gleich über Netzwerk von einem Abbild.

von Gustav G. (gustavgggg)


Lesenswert?

Gustl B. schrieb:
> Das ist aber dann eigentlich was Anderes. Da werden nicht einzelne
> Anwendungen oder so aktualisiert, sondern im Speicher wird ein neues
> Abbild auf die Systempartition geschrieben.

Richtig und genau das ist es, was ich mit swupdate erreichen will.

Gustl B. schrieb:
> Aber wenn du sowieso schon bei Abbildern bist die du auswechseln können
> willst, dann boote doch gleich über Netzwerk von einem Abbild.

Es gibt kein Netzwerk, da das ein Benutzer möglichst autark ohne 
Internet machen soll und ohne ein NFS oder tftp aufsetzen zu müssen.

Mark S. schrieb:
> Welche
> schlechten Erfahrungen halten Dich davon ab apt zu verwenden?

Schon viele. Einerseits will ich bei einem Major Upgrade nicht das ganze 
APT Repository auf das gerät rüberziehen müssen, wo einfach kein Platz 
für ist und andererseits ging immer mal irgendetwas schief beim Update 
von vielen Paketen.

von Daniel A. (daniel-a)


Lesenswert?

Gustav G. schrieb:
> Updates sollen per SSH eingespielt werden.

Gustav G. schrieb:
> Es gibt kein Netzwerk

Na da funktioniert das SSH dann sicher gut.

von Daniel A. (daniel-a)


Lesenswert?

Ich hab das nicht ausprobiert, aber hier mal ein paar Ideen.

Du mountest das rootfs readonly. /home kommt auf eine andere Partition 
und wird rw gemounted.
Beim Updaten mountest du das rootfs einfach nochmal unter /mnt/root/ 
oder so, rw, und machst ein rsync von deinem geupdateten system dort 
hin. Dann rebootest du es.
Alternativ kannst du euch einen btrfs snapshot ro mounten, und einen 
neuen btrfs snapshot senden, dann nach dem reboot den alten löschen.

von Frank K. (fchk)


Lesenswert?

Gustav G. schrieb:
> Gustl B. schrieb:
>> Das ist aber dann eigentlich was Anderes. Da werden nicht einzelne
>> Anwendungen oder so aktualisiert, sondern im Speicher wird ein neues
>> Abbild auf die Systempartition geschrieben.
>
> Richtig und genau das ist es, was ich mit swupdate erreichen will.

Debian kann das nicht und ist dafür nicht ausgelegt. Man kann das zwar 
machen, aber ob DU das machen kannst, weiß ich nicht. Jedenfalls wirst 
Du den gesamten Mechanismus selber entwickeln müssen, von 0 auf.

Was Du eigentlich willst, ist eine sogenannte "immutable" Linux 
Distribution. Da werden bei einem Update immer nur schreibgeschützte 
Images ausgetauscht, über die dann ein overlayfs gelegt wird, wo dann 
Daten und Konfigurationen liegen. Solche Distributionen gibt es (danach 
kann man googeln), aber Debian gehört nicht dazu. Und entweder nimmst Du 
so eine immutable Disto, oder Du wirst viele 100 Stunden damit 
zubringen, das nachzubauen, was die Distro-Entwickler dieser 
Distributionen gemacht haben, und Du wirst bei jedem Update erneut viele 
Stunden weitere Arbeit haben. Oder Du machst es, wie die Debian Leute es 
vorgesehen haben, per apt.

Das sind Deine Optionen. Wähle eine.

fchk

PS:
https://gnulinux.ch/debian-wird-immutable
https://ubuntu.com/blog/ubuntu-core-an-immutable-linux-desktop
Ist aber alles noch Zukunftsmusik.

: Bearbeitet durch User
von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Eine etwas andere Methode wäre einen identischen Rechner aufzusetzen. 
Unter Umständen klappt das auch in einer chroot-Umgebung.

Mit apt-get update werden die Paketlisten aktualisiert und mit apt-get 
update die Pakete heruntergeladen. Die Dateien schiebst Du per 
copy-paste in ein Verzeichnis auf dem Zielrechner. Du installierst dann 
mit apt-file alles aus dem Verzeichnis.

von Gustav G. (gustavgggg)


Lesenswert?

Frank K. schrieb:
> Debian kann das nicht und ist dafür nicht ausgelegt. Man kann das zwar
> machen, aber ob DU das machen kannst, weiß ich nicht. Jedenfalls wirst
> Du den gesamten Mechanismus selber entwickeln müssen, von 0 auf.

Ich dachte eben dafür ist dann swupdate um mir das von 0 auf zu 
ersparen. Damit das nochmal deutlich wird. ich will keinerlei Overlayfs 
und da soll auch nichts mehr, außer beim image erstellen, per apt 
aktualisiert werden. Es werden lediglich ein paar unveränderliche 
verzeichnisse für Konfiguration gemountet das ist alles.

Wenn das Mantra hier lautet "geht nicht, wird nicht gehen, versuch es 
gar nicht erst" dann kann der Thread meiner Meinung nach geschlossen 
werden. Ich hatte wirklich explizit nach swupdate auf Debian gefragt.

von Εrnst B. (ernst)


Lesenswert?

Gustav G. schrieb:
> Ich hatte wirklich explizit nach swupdate auf Debian gefragt.

Dann mach das doch. Swupdate hat angeblich debian support, also 
probier's aus.
Einfach mal eine VM aufsetzen in der man das Testen kann kostet weniger 
Zeit als bislang in diesen Thread geflossen ist.

Und wenn du nicht weiterkommst: swupdate.org bietet kommerziellen 
Support an. Dort anzufragen könnte im Endeffekt billiger kommen, als 
selber einen Mannmonat Arbeit zu investieren.

von Michael D. (nospam2000)


Lesenswert?

Gustav G. schrieb:
> Ich habe Swupdate entdeckt, was sowas prinzipiell können soll.
> Allerdings ist sämtliche Dokumentation nur auf Yocto oder Buildroot
> bezogen, was ich auf keinen Fall benutzen möchte.

Das ist aber genau dafür gemacht und geeignet um embedded System zu 
aktualisieren.

Wir verwenden es mit zwei Partitionen die wechselseitig aktualisiert 
werden, einer aktiven und einer die aktuell aktualisiert wird.
So wie oben beschrieben als read-only filesystem. Manche folder (z.B. 
/etc und /home) werden über ein overlay filesystem read-write gemounted 
auf einer weiteren Partition.

  Michael

von Gustav G. (gustavgggg)


Lesenswert?

Michael D. schrieb:
> Wir verwenden es mit zwei Partitionen die wechselseitig aktualisiert
> werden, einer aktiven und einer die aktuell aktualisiert wird.
> So wie oben beschrieben als read-only filesystem. Manche folder (z.B.
> /etc und /home) werden über ein overlay filesystem read-write gemounted
> auf einer weiteren Partition.

Darfst du deine Konfigurationsdatei dafür teilen?

von Sheeva P. (sheevaplug)


Lesenswert?

Gustav G. schrieb:
> Mark S. schrieb:
>> Welche schlechten Erfahrungen halten Dich davon ab apt zu verwenden?
>
> Schon viele. Einerseits will ich bei einem Major Upgrade nicht das ganze
> APT Repository auf das gerät rüberziehen müssen, wo einfach kein Platz
> für ist und andererseits ging immer mal irgendetwas schief beim Update
> von vielen Paketen.

Ich persönlich finde es ja immer wieder interessant, zu lesen, wenn 
Menschen Schwierigkeiten mit "ganz normalen" Updates gehabt haben, 
insbesondere unter Debian GNU/Linux. Mir ist das natürlich auch schon 
passiert, aber bei meinen Nachforschungen konnte ich bisher keinen Fall 
entdecken, in dem die Probleme nicht auf selbstgemachten Unsinn 
zurückzuführen waren.

von Gustav G. (gustavgggg)


Lesenswert?

Sheeva P. schrieb:
> Ich persönlich finde es ja immer wieder interessant, zu lesen, wenn
> Menschen Schwierigkeiten mit "ganz normalen" Updates gehabt haben

Noch einmal: Es gibt Anwendungen wo das System NICHT am Internet hängt 
und dem Benutzer auch kein SSH gefrickel zumutbar ist.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Warum benutzt du dann nicht Yocto? Das ist genau dafür gemacht, ein 
"Read-Only" Image/System zu erstellen. Ganz ähnlich zu Android. Und mit 
Swupdate hast du sogar eine fertige Update-Lösung.

von Gustav G. (gustavgggg)


Lesenswert?

Niklas G. schrieb:
> Warum benutzt du dann nicht Yocto? Das ist genau dafür gemacht, ein
> "Read-Only" Image/System zu erstellen. Ganz ähnlich zu Android. Und mit
> Swupdate hast du sogar eine fertige Update-Lösung.

Das ist doch noch mehr gefummel das ans laufen zu kriegen. Kann hier 
geschlossen werden ich denke es ist zwecklos.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Gustav G. schrieb:
> Das ist doch noch mehr gefummel das ans laufen zu kriegen.

Weniger als Debian für etwas zu missbrauchen, für das es nicht 
intendiert ist. Yocto ist ziemlich gut gemacht.

von Gustav G. (gustavgggg)


Lesenswert?

Niklas G. schrieb:
> Weniger als Debian für etwas zu missbrauchen, für das es nicht
> intendiert ist. Yocto ist ziemlich gut gemacht.

Stimmt yocto ist gut aber bis das läuft wie man will und alle pakete am 
laufen hat vergehen so viele kompilierversuche mit stunden

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Gustav G. schrieb:
> Stimmt yocto ist gut aber bis das läuft wie man will und alle pakete am
> laufen hat vergehen so viele kompilierversuche mit stunden

Aber dabei, Debian Read-Only-Kompatibel zu machen und das Swupdate ans 
Laufen zu bringen nicht? Das Yocto-Buildsystem ist sehr clever und 
kompiliert nur das neu was unbedingt neu kompiliert werden muss.

von Gustav G. (gustavgggg)


Lesenswert?

Niklas G. schrieb:
> Aber dabei, Debian Read-Only-Kompatibel zu machen und das Swupdate ans
> Laufen zu bringen nicht? Das Yocto-Buildsystem ist sehr clever und
> kompiliert nur das neu was unbedingt neu kompiliert werden muss.

Von Read Only habe ich nie etwas erwähnt und das ist bei Debian auch gar 
kein Problem.

von Ein T. (ein_typ)


Lesenswert?

Gustav G. schrieb:
> Noch einmal: Es gibt Anwendungen wo das System NICHT am Internet hängt
> und dem Benutzer auch kein SSH gefrickel zumutbar ist.

Ohoo, "SSH Gefrickel". Sag das doch gleich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.