Servus,
ich hab hier und in der Familie ein paar Raspberrys laufen.
Bisher hab ich regelmäßig vollständige Backups der kompletten SD-Karte
mittels dd gezogen.
Das hat den Charme dass es sehr bequem mit einem einzigen Kommando geht
und sich genau so bequem wieder zurückspielen oder auf eine andere Karte
kopieren lässt.
Leider hat die Methode auch Nachteile, die da wären:
- das Prozedere kann bei heute üblichen SD-Karten-Größen relativ lange
dauern.
- man vergeudet viel Speicher auf der Backupplatte weil immer die
komplette Karte gesichert wird, unabhängig davon wieviel tatsächlich
belegt ist
- kein inkrementelles Backup möglich
Ich würd jetzt mal ein Backup auf Datei-Ebene ausprobieren und mir einen
tarball oder ein ähnliches, geeignetes Archiv anlegen wollen.
Das sollte ja per ssh sogar aus dem laufenden System möglich sein.
Hat da jemand einen Ansatz oder gar ein Skript dafür wie ich einen
Snapshot auf meine Backupplatte und wieder zurück krieg?
Insbesondere muss/darf ich ja auch nicht das komplette / sichern,
Verzeichnise wie z.B. /dev sollten ausgeschlossen werden.
Kann ich Probleme mit den Dateirechten kriegen?
Ich wüsst da grad garnicht wie ich anfagen soll. Hat hier jemand
Erfahrung damit?
tarballer schrieb:> Verzeichnise wie z.B. /dev sollten ausgeschlossen werden.
Habe das bisher so gelöst, indem ich die beiden Partitionen der Karte
ein zweites mal hier unter /mnt/boot und /mnt/root eingehängt habe,
damit sind nur die Verzeichnisse drin, die wirklich vorhanden sind, also
nicht /proc und /dev.
Jetzt wird der Inhalt des /mnt gesichert.
Die Ausgabe vom tar, habe ich dann über ssh zu dem Rechner gepipt, von
dem ich mich an den RasPi angemeldet habe (also dem PC). Dort werden die
Daten dann auch gezippt, das muss also nicht der RasPi machen.
Dafür muss natürlich auf dem PC auch der ssh-daemon laufen.
Hi Ingo,
das mit dem mounten der device-files ist eine gute Idee.
So sichert man wirklich nur das was man braucht.
Was mich etwas stört ist dass der Pi in deinem Setup ssh-Zugriff auf den
"Haupt-PC" braucht.
Das ist ja eher unüblich und - wenn der Pi exponiert im Netz hängt -
potentiell gefährlich.
Aber eigentlich kann ich mmcblk0p1 und mmcblk0p2 ja per sshfs auch auf
den PC mounten und dann tar laufen lassen.
Danke für die Anregung!
Ach, noch ne Frage:
wie spielst du das Backup wieder zurück?
Bei einer jungfräulichen SD-Karte musst du trotzdem einmalig das
Raspbian-Image per dd draufspielen damit das Dateisystem passt bevor du
den tarball auspacken kannst?
(ginge natürlich auch händisch per mkfs, aber ist halt wieder mehr
Arbeit)
tarballer schrieb:> - man vergeudet viel Speicher auf der Backupplatte weil immer die> komplette Karte gesichert wird, unabhängig davon wieviel tatsächlich> belegt ist
Als Anregung könnte man sich ansehen, wie Clonezilla arbeitet und diese
Tools verwenden. Denn damit werden nur belegte Blöcke gesichert.
Tipp: tar kennt - zumindest in der Version GNU tar 1.32 - die Option
--one-file-system:
--one-file-system
Stay in local file system when creating archive.
Damit sollte (*) /dev von vornherein ausgeschlossen werden.
Dateirechte behält tar standardmäßig bei, sollte also genau das tun, was
man von einem Backup erwartet.
MfG, Arno
(*) Ich hab es lange nicht mehr ausprobiert.
tarballer schrieb:> Bei einer jungfräulichen SD-Karte musst du trotzdem einmalig das> Raspbian-Image per dd draufspielen damit das Dateisystem passt bevor du> den tarball auspacken kannst?
Damit würde die Karte 2 x beschrieben werden, kann man so machen, dann
braucht man über die Partition-IDs nicht nachdenken, oder
> (ginge natürlich auch händisch per mkfs, aber ist halt wieder mehr> Arbeit)
Hab es bisher so gemacht:
Auf dem PC, mit gparted, die beiden Partitionen angelegt: 44MB FAT32,
der Rest, mit ext4,
Dann, die Datenträger-UUID setzen mit fdisk (Expertenmenü), die
/etc/fstab referenziert diese,
jetzt auf dem PC die beiden Partitionen genauso mounten, wie
ursprünglich auf dem RasPi /mnt/boot/ und /mnt/root) dann kann man den
tarball direkt zurückspielen.
Das hab ich schon einige Male so praktiziert, hat immer geklappt.
Insbesondere, wenn die neue SD-Karte kleiner ist als die (unvollständig
gefüllte) alte SD-Karte ;-)
Ingo W. schrieb:> Hab es bisher so gemacht:> Auf dem PC, mit gparted, die beiden Partitionen angelegt: 44MB FAT32,> der Rest, mit ext4,> Dann, die Datenträger-UUID setzen mit fdisk (Expertenmenü), die> /etc/fstab referenziert diese,> jetzt auf dem PC die beiden Partitionen genauso mounten, wie> ursprünglich auf dem RasPi /mnt/boot/ und /mnt/root) dann kann man den> tarball direkt zurückspielen.
Das scheint mir der vernünftigste Weg zu sein. Wobei man sich die
UUID-Anpassung schenken kann, wenn man gleich nach der ersten
Installation die /etc/fstab aufräumt und UUID= durch /dev/foobar
ersetzt.
Ein Kompromiss wäre LABEL=simone statt
UUID=ewig-langer-kryptischer-muell, weil, simone kann man sich merken.
Die UUID Geschichte wurde ja nur zwecks einer möglichst
vollautomatischen Installation eingeführt, LABEL ist technisch
gleichwertig. Auf dem RPi braucht man eigentlich beides nicht, so viele
ständig wechselnde Partitionen gibt es da ja nicht.