wtf.who.cares//linux

meine persönliche Backup Strategie

Meine Backup und "immer dabei System" Lösung.
Backup ist klar, mein lauffähiges System mit allen relevanten Daten. Möglichst schnell und problemlos vom USB Stick zu restaurieren, selbst wenn sich die Hardware geändert hat - Blitzeinschlag, Zack, Totalverlust (hatte ich schon, tut weh).
Dann ist man zumindest bei der Neuinstallation nicht gestresst, weil die dauert signifikant länger als den snapshot von "gestern" zu installieren.

"Immer dabei" bedeutet mein persönlicher snapshot, mit allen für mich relevanten Daten, inkl. Dokumente und Hilfetexte/Dokumentationen, auf einer Life USB die ich auch auf Fremdrechnern starten kann.
Sozusagen mein Mitnahme PC am Schlüsselbund, ein besonderes Feauture von MX Live USB.
Das Bild zeigt das System unter Vollast beim Erstellen des Snapshots, in der Kompressionsphase. Schön zu sehen, wie die Last auf die Kerne/Threads verteilt wird.

Ein wesentlicher Punkt bei Backups (für mich) : ZEIT (Platz kommt danach). Wie lange dauert die Snapshot Erzeugung und das Schreiben auf USB.
Ein Backup das eine halbe Stunde dauert, das macht man nur, wenn man glaubt, das es mal wieder "nötig" sei. Ein Backup das 3-4 Minuten dauert, das macht sich nebenher.
In der Theorie natürlich nicht, aber in der gelebten Praxis ;-}
Platz und somit auch Zeitfresser ist alles was unnötig ist für die angedachten Zwecke und was schwer bis gar nicht komprimierbar ist.

Bei mir sind /root und /home NICHT getrennt, ich habe da in der Praxis für mich nie einen Vorteil erkennen können, ABER bei mir sind die Verzeichnisse mit den Massendaten auf einer anderen Partition und werden während des Bootvorgangs über "mount --bind" eingebunden. Im Rahmen der Platz und Zeitoptimierung habe ich im Laufe der Zeit auch noch andere Verzeichnisse ausgelagert.

Verzeichnisse mit JPG/PNG, MP3, MP4 (so sie nicht in /Musik/Video/Bilder liegen), alleine das Haldclut Verzeichniss (Film Presets für RawTherapee) sind knapp 750MB. Eine Sammlung an JPG aus Internet Memes, zack 1GB, und so fort.
Weitere Platzfresser sind Flatpacks. Wenn möglich gegen AppImages austauschen, was bei Shotcut und Openshot problemlos möglich ist. Appimages sind zwar auch schwer komprimierbar, dafür sind sie von vorne herein auch nur ein Zentel so groß und lassen sich gut in einem einzigen Verzeichniss bündeln, auslagern und auch beim Start per "mount --bind" einfügen. ...

All das landet auf dem DATA Laufwerk/Partition wo auch die /Bilder/Musik/Video Verzeichnisse liegen.
Das führt einerseits zu 310GB auf dem Data Laufwerk, andererseits zu einer root/home von ~15GB bis25GB.

Die Data Partition wird dann "klassisch" per Dateimanager komplett in entsprechende Verzeichnisse auf anderen Platten kopiert, je ach SSD kann das zwischen 10-15 Minuten dauern. Auf die externen HDD Platten sichere ich seltener, bevorzugt wenn ich mit dem Hund spazierengehe, da stören mich die Zeiten zwischen 40-80 Minuten (je nach HDD) weniger.

[Update]
Bei kleineren Änderungen beschränke ich mich auf das betreffende Verzeichniss, ich bin ja noch nicht dement genug um binnen einer Stunde vergessen zu haben, wo ich was geändert habe.
Auf mehrfachen Zuruf testweise Grsync konfiguriert, eine GUI für rsync, nett, ist dann doch eine kleine Arbeitserleichterung (Dementia kann kommen).

Meine ersten Snapshots hatten noch 30-40GB, mein letzter MX-19 snapshot, da hatte ich schon ein bisschen mit "optimieren" angefangen, war noch knapp 20GB groß (zstd), das dauerte schon ein bisschen.
Mein aktueller mx-21 snapshot muss ~15GB verarbeiten und ist aktuell gerade um 5GB groß, wird in 2:02min erzeugt und in weniger als einer Minute auf einen USB3 Stick (sandisk extreme) geschrieben.

Der Vollständigkeit halber noch zwei weitere Verfahren:
Das häufig (voreingestellte?) benutzte LZ4: wow 0:48min, weniger wow 6.8GB
Das "stärkste" aber auch langsamste XZ : 3:18min für 4.4GB
Ich bevorzuge zstd, beste Relation zwischen Zeit und Größe.
XZ macht nur Sinn, wenn man sich im Grenzbereich bewegt, also ob man anstelle eines 8GB Sticks einen 16gb benutzen muss, oder anstelle eines 16gb einen 32gb, etc ... wenn einem das wichtig ist.

Da die Neuinstallation mehr ist, als nur ein Kopieren ist, sind die Geschwindigkeiten der Beteiligten gar nicht so relevant wie ich angenommen habe.
Aber in der Praxis sah das so aus:
Sandisk Extreme USB3 auf Samsung NVME 970 EVO Plus 1TB ~4 Minuten
Sandisk Cruzer USB2 (15 Jahre alt) auf Crucial MX100 256GB (2015) an USB3 , uups ~5 Minuten.
Dafür dauert das Schreiben auf das Sandisk Fossil eine gute Viertelstunde.




Voraussetzung: mindestens 2 physikalische Laufwerke (3 und mehr schaden aber auch nicht ;-} )
Bei mir sind /root und /home NICHT getrennt, ABER bei mir sind die Verzeichnisse mit den Massendaten auf einer anderen Partition und werden während des starten in der etc/rc.local über "mount --bind" eingebunden.

#!/bin/sh -e
#
# rc.local
#

#starte swap in zram
zramswap start

mount --bind /media/DATA/Apps /home/winnI/Apps/
mount --bind /media/DATA/Musik /home/winnI/Musik/
mount --bind /media/DATA/Bilder /home/winnI/Bilder/
mount --bind /media/DATA/Videos /home/winnI/Videos/
mount --bind /media/DATA/Downloads /home/winnI/Downloads/
mount --bind /media/DATA/temp_media /home/winnI/temp_media
mount --bind /media/DATA/tmp /home/winnI/tmp
# mount --bind /media/DATA/Dokumente /home/winnI/Dokumente/

exit 0

Die andere Variante die auch möglich ist, direkt in der fstab:

der relevante Teil sieht ähnlich aus

/media/DATA/Apps /home/winnI/Apps none bind 0 0
/media/DATA/Downloads /home/winnI/Downloads none bind 0 0
/media/DATA/temp_media /home/winnI/temp_media none bind 0 0
/media/DATA/tmp /home/winnI/tmp none bind 0 0
/media/DATA/Musik /home/winnI/Musik none bind 0 0
/media/DATA/Videos /home/winnI/Videos none bind 0 0
/media/DATA/Bilder /home/winnI/Bilder none bind 0 0


Dadurch hat man alle "Platzfresser" schon mal aus der Sicht von mx-snapshot entfernt und bekommt ein relativ kompaktes Systembackup (Programme und Konfigurationen), dass bei mir immer noch auf einen 8GB Stick passt, während die Daten separat mit Grsync (oder was immer man persönlich bevorzugt) gehandhabt werden und z.B. auf die zweite Platte geschrieben werden. Für Backup Paranoiker wie mich geht dann der Weg weiter von dieser zweiten Platte auf mehrere externe Festplatten, je nach Umfang der Änderungen zwischen täglich (selten) bis 1x wöchentlich (fast immer).

Was sich im Forum und in FB als gelegentliches Problem herausgestellt hat: zu wenig/zu kleine USB Sticks.
Zu klein weist auf ein schlechtes Konzept hinsichtlich des "was sichere ich wie", mein root&home hat nach meinen Auslagerungsoptimierungen immer noch um 15-16GB was ein ~5GB snapshot.iso ergibt.
Zu wenig USB Sticks kann ich dagegen nachvollziehen. Oder auch die "falschen". Ich fühle mich einfach nicht wohl eine 5GB ISO auf einen 64gb oder 128GB Stick zu schreiben und 8-16GB habe ich inzwischen nur noch 2 (und eigentlich ist einer für die Musik im Auto ...)
Also eine praktikable Lösung muss her um zumindest die letzten 3-4 snapshots im Zugriff haben zu können.
Die gibt es tatsächlich, da man auch die Möglichkeit hat eine Iso direkt von der Platte zu starten und, was noch besser ist, man kann von dieser ISO aus auch installieren!. Einzige Einschränkung dabei: man kann NICHT auf der Platte installieren, auf der diese ISO liegt (Platte, nicht Partition, deswegen benötigt man auch mindestens 2 Platten)
Realisiert wird das über eine custom.cfg die man in /boot/grub ablegt.

# custom.cfg file
# save under /boot/grub/custom.cfg
#
menuentry "ISO-Boot MX-snapshot-20221122_0825.iso" {
isopath=/iso/snapshot-20221122_0825.iso
bootoptions="kbd=de kbvar=nodeadkeys kbopt=caps:none lang=de tz=Europe/Amsterdam"

insmod ext2
insmod part_gpt
insmod part_msdos
insmod probe
insmod loopback
# use this to search for the full isopath
# search --no-floppy --file --set=root $isopath
# probe -u $root --set=buuid
# use this if you know the UUID XXX-XXX-XXX of the partition wich contains the isopath:
buuid=f9f19b93-0389-4b11-b878-70c32755f9de
search --no-floppy --fs-uuid --set=root $buuid
loopback loop $isopath
linux (loop)/antiX/vmlinuz buuid=$buuid fromiso=${isopath} $bootoptions quiet splasht nosplash
initrd (loop)/antiX/initrd.gz
}

der Inhalt ist "fast" selbsterklärend, wichtig sind eigentlich nur zwei Werte die man anpassen muss:
isopath=[pfad auf der Festplatte]
buuid=UUID der Festplatte

Bei mir eine 2TB Crucial auf der u.A. auch das Backup der Daten liegt.
Und schon hat man genug Platz für ein dutzend snapshots, oder halt für die Menge die man meint zu benötigen.

Meine Danksagung an die Entwickler von MX, die mir (mal wieder) bei der korrekten Syntax der custom.cfg geholfen haben