Backup & Restore mit dd

HDD

Im folgenden wird in einzelnen Schritten beschrieben, wie man mithilfe des Befehls dd eine Sicherung der gesamten Festplatte und des Home-Verzeichnisses erstellen und diese im Notfall auch unter einem Linux-Live-System wiederherstellen kann. Der Gebrauch von dd gilt für jede Linux-Version und ist somit distributionsübergreifend.

a. Sicherung

Die gesammte Sicherung soll auf ein USB-Stick ausreichender Größe oder auf eine externe Festplatte oder SSD angelegt werden, die bereits angesteckt und gemountet ist.

Nun wird der Mountpunkt des USB Sticks / die Festplatte / SSD im Terminal geöffnet bzw. man wechselt auf diese mit rechter Maustaste auf den Datei Manager und Mausklick auf "Terminal hier öffnen". Der Aufruf lsblk zeigt, auf welcher Festplatte das Betriebssystem liegt, hier soll es beispielsweise auf /dev/sda installiert sein.

Der Inhalt der gesamten Festplatte /dev/sda wird nun mit gzip komprimiert und in eine Datei namens "backup.img.gz" in das aktuelle Verzeichnis des Sicherungsmediums kopiert. Um den Sicherungsvorgang zeitlich zu verkürzen, wird noch der Parameter bs angefügt.

  sudo dd if=/dev/sda bs=4M | gzip > backup.img.gz

Wird der Befehl pv zwischen dd und gzip eingehängt, liefert der Sicherungsvorgang eine einfache Fortschrittsanzeige:

  sudo dd if=/dev/sda bs=4M | pv | gzip > backup.img.gz

Es hat gewisse Vorteile, das Homeverzeichnis auf eine extra Partition anzulegen. Liegt diese z.B. auf /dev/sda4, so läßt sich mit einer Fortschrittsanzeige das komplette Homeverzeichnis in einer komprimierten Datei "backup-home.img.gz" ebenfalls sichern:

  sudo dd if=/dev/sda4 bs=4M | pv | gzip > backup-home.img.gz

Als Ergänzung sei noch angemerkt, daß das Backup auch unkomprimiert vorgenommen werden kann, sofern die Zielfestplatte mindestens genauso groß ist wie die Quellfestplatte.

  dd if=/dev/sda bs=4M | pv | of=/dev/sdd1/meinbackup_2.img
b. Restore

Es kann viele Gründe geben, im Falle eines Falles auf sein Backup zurückgreifen zu müssen; sei es, daß die Festplatte defekt ist, sei es, daß man mit seinem "alten" Betriebssystem auf den neuen Rechner umziehen möchte oder daß das System nicht mehr bootet.

Für die Wiederherstellung sollte man zuvor ein Linux-Live-System seiner Wahl auf einem USB-Stick oder auf CD/DVD erstellt haben, mit dem man jetzt ins Live-System bootet und von dort aus den Restore bzw. die Wiederherstellung starten kann. Wie sich das Linux-Live-System anfertigen läßt, steht unter der Rubrik "Linux Bootstick erstellen".

Jetzt muß noch der USB-Stick oder die Festplatte, auf der sich das Backup "backup.img.gz" und "backup-home.img.gz" befindet, angeschlossen und gemountet werden. Der Mountpunkt des soeben angeschlossenen Gerätes wird sodann im Terminal geöffnet bzw. man wechselt auf diese mit rechter Maustaste auf den Datei Manager und Mausklick auf "Terminal hier öffnen".

Folgender Aufruf zeigt die Zuordnung aller angeschlossenen Datenträger.

  sudo lsblk

Auch hier soll das Laufwerk mit dem aktuellen Betriebssystem beispielsweise auf /dev/sda liegen. Dann geht die System-Wiederherstellung mit Fortschrittsanzeige:

  gzip -dc backup.img.gz | pv | sudo dd of=/dev/sda bs=4M

Die auf /dev/sda4 liegende Home-Partition wird ebenfalls wiederhergestellt:

  gzip -dc backup-home.img.gz | pv | sudo dd of=/dev/sda4 bs=4M

Liegt das Homeverzeichnis hingegen gemeinsam auf der Root-Partition mit dem Betriebssystem, entfällt natürlich dieser letzte Schritt.

Falls das Backup auf eine neue Festplatte / SSD zurückgespielt werden soll, muß sie mindesten die gleiche Größe besitzen wie die alte. Ist die Kapazität größer, kann man (unter dem jetzigen Linux-Live-System) mit GParted die Home-Partition auf die neue Größe anpassen. Alternativ geht auch der Befehl

  sudo resize2fs /dev/sda4

Liegt das Homeverzeichnis auf der Root-Partition, so ersetzt man sda4 durch die Systempartition.