Forum: PC Hard- und Software Systembackup mittels tarball


von tarballer (Gast)


Lesenswert?

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?

von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

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.

von tarballer (Gast)


Lesenswert?

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!

von tarballer (Gast)


Lesenswert?

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)

von (prx) A. K. (prx)


Lesenswert?

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.

von Arno (Gast)


Lesenswert?

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.

von Oli G. (oligarch)


Lesenswert?

Du kannst die Partitionsgröße vorrübergehend verkleinern um so nur echte 
Daten zu kopieren, zb. mit Gparted.

von Ingo W. (uebrig) Benutzerseite


Lesenswert?

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 ;-)

von Bauform B. (bauformb)


Lesenswert?

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.

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.