Systembackup mit Knoppix, dd, gzip und USB-Festplatte
zeroterm | 19. Februar 2009 | 09:12Habe gestern ein Backup meines kompletten Systems auf eine externe Festplatte durchgeführt. Und zwar mit zwei/drei Konsolenbefehlen (und einer Knoppix 5.11 CD
).
Als kleiner Reminder (auch oder vor allem für mich) noch schnell welche Befehle ich verwendet habe.
dd if=/dev/sda | gzip -c | cat > /media/sdb1/backups/lenovoHDfull.bin.gz
Der Befehl dd liest einfach sämtlich Bytes eine Festplatte (unabhängig wie sie Partitioniert sind; also inklusive aller Partitionen): in diesem die Festplatte /dev/sda, welche die meine Systemplatte ist. Der gelesen Datenstrom wird dem Programm gzip übergeben und “on-the-fly” gepackt. Der Gepackte Datenstrom wird dann an cat übergeben, welches die Daten dann in eine Datei schreibt, die sich auf einer anderen Festplatte befindet (hier: sdb, erste Partition).
Bei einer insgesamt 160GB großen Festplatte kann das schon dauern, denn diese Methode macht ein 1:1 Komplettabbild. Es sichert also auch dann 160GB, wenn insgesamt nur 10GB belegt wären. Außerdem sieht man nicht wie weit man gerade ist, da der Befehl stupide ein Byte nach dem anderen liest und liest und nicht weis wieviel eigentlich kommt.
Mit folgender Zeile kann man sich allerdings auf einer zweiten Konsole schön anzeigen lassen wie groß die Sicherungsdatei bereits ist, und daraus kann man wiederrum schließen wie lange es wohl noch ungefähr dauern wird.
clear; while true; do echo -n “`date +%k:%M:%S` Uhr: “; ls -h –size /media/sdb1/backups/lenovoHDfull.bin.gz; sleep 90; done
Damit erscheint alle 90 Sekunden die aktuelle Dateigröße der Backupdatei mit einer Uhrzeit vorangestellt, sodass man auch die Geschwindigkeit abschätzen kann.
Ein Backup zurückspielen würde man dann damit:
cat /media/sdb1/backups/lenovoHDfull.bin.gz | gzip -c -d | dd of=/dev/sda
Verbesserungsvorschläge sind übrigens willkommen, falls jemand etwas auszusetzen hat
KategorienDer unterdrückte Geek
Tagsbackup, cat, dd, gzip, klaus knopper, knoppix, linux, system






Wenn auf der Zielplatte ein Windows/NTFS installiert ist, würde ich überprüfen, ob das rücksichern auf eine Platte mit einer anderen Größe noch funktioniert… Bin mir nicht sicher, ob der Windows Bootloader ansonsten mit solchen Backups klarkommt.
okay. zwar war gar nicht vorgesehen, die Festplatte zu wechseln, aber bei einem HD-Crash könnte man ja dazu gezwungen sein, stimmt schon.
Nur weiß ich grad net wie ich des testen soll…
Eine Stunde im Netz gesucht um etwas dieser Klarheit zu finden! Wären Knoppix noch downloadet lese ich hier ein bisschen weiter querbeet, inspiring so far! Keep on rocking.
Während und Komma natürlich, ähm.
Wg. Ueberpruefung des Status: Das Programm watch wird dir gefallen.
Hallo!
Du verwendest zum Backup ja folgende Befehlszeile:
dd if=/dev/sda | gzip -c | cat > /media/sdb1/backups/lenovoHDfull.bin.gz
Da fallen mir 3 Dinge ein, die Du tun kannst, um den Vorgang zu beschleunigen.
1. Erhöhen der Blockgröße
Mit dem Parameter bs kannst Du dd mitteilen, wie viele Daten es in einem Rutsch einlesen und schreiben soll. Ich verwende meist 1M, das steht für 1024*1024 Byte und geht schon mal um einiges schneller als mir der Standardgröße von (ich glaube) 512 Byte. Sähe in Deinem Fall dann so aus:
dd if=/dev/sda bs=1M | gzip -c | cat > /media/sdb1/backups/lenovoHDfull.bin.gz
2. Einen Prozess einsparen
Du kannst gzip ruhig direkt auf das Ziel schreiben lassen, es ist unnötig, die Daten nochmal durch cat zu jagen und sie erst dann zu schreiben. Bringt für die Geschwindigkeit zwar nur wenig, trotzdem vermeidet man überflüssige Prozesse wo es geht. Und so sähe es aus:
dd if=/dev/sda bs=1M | gzip -c > /media/sdb1/backups/lenovoHDfull.bin.gz
3. Grad der Kompression verringern (oder es gleich lassen)
Und das Schönste daran ist, daß ich mir noch einen Prozess und die Umleitung sparen kann, bei Dir sähe das dann so aus:
Ich nutze dd regelmäßig, um die Windows-XP-Systempartition meines Notebook auf eine über USB 2.0 angeschlossene Festplatte zu sichern. Wenn ich die Daten komprimiere, komme ich nicht über 12 MB/sec, selbst bei geringster Kompression (die kann man bei gzip über die Optionen -1 bis -9 einstellen). Meine CPU (Core 2 Duo mit 1,66GhZ) komprimiert die Daten langsamer, als sie der USB-Bus wegschaufeln könnte. Ohne Kompression komme ich auf 25MB/sec, was etwa der netto-Datenrate des USB-Bus entspricht. Da externe Platten extrem billig geworden sind, nehme ich gerne in Kauf, für jedes Backup volle 65GB zu verbrauchen, dafür läuft es in weniger als der halben Zeit durch.
dd if=/dev/sda bs=1M of=/media/sdb1/backups/lenovoHDfull.bin
Du siehst, die Umleitung habe ich vermieden, indem ich dd über den Parameter of direkt mitgeteilt habe, wohin es schreiben soll.
Viele Grüße
Matthias