2. Oktober 2013

Linux: Backup einer Festplatte erstellen mit dd

Um unter Linux ein Backup einer Festplatte zu erstellen bietet sich der Befehl dd (Abk. für Diskdump) an. Das Programm erstellt eine 1:1-Kopie der kompletten Festplatte indem es diese Byte für Byte in eine Image-Datei kopiert.

Erstellen eines Festplatten-Backups


Um eine Festplatte mittels dd zu spiegeln darf diese nicht in das Dateisystem eingehängt sein. Es ist also nicht möglich von einem System aus diejenige Festplatte zu sichern auf der das Linux-Betriebssystem installiert ist. Für einen solchen Fall kann das Backup etwa von einer Live-CD ausgeführt werden. Die Festplatte auf der das Backup-Image erstellt werden soll muss dagegen mit Schreibrechten eingehängt sein und über mindestens so viel Speicherplatz verfügen wie die zu sichernde Platte. Um alle vorhandenen Festplatten und Partitionen anzuzeigen ist der folgende Befehl nützlich, der mit Root-Rechten ausgeführt werden muss:
 # fdisk -l  
Um stattdessen nur diejenigen Partitionen anzuzeigen, die momentan in das Dateisystem eingehängt sind, kann der folgende Befehl genutzt werden:
 $ mount -l  
Falls Partitionen der Festplatte, die gesichert werden soll, noch gemountet sind, lassen sich diese über den folgenden Befehl aushängen. Die Bezeichnung /dev/sdb1 ist dabei durch die tatsächliche Bezeichnung der Partition zu ersetzen.
 # umount /dev/sdb1  
Um die Festplatte, auf der das Backup gespeichert werden soll, einzuhängen kann der folgende Befehl genutzt werden. Bei /dev/sdc1 handelt es sich dabei um die Bezeichnung der Partition, die gemountet werden soll, /media/sdc1 definiert das Verzeichnis unter dem die Partition eingehängt werden soll.
 # mount -t ext3 /dev/sdc1 /media/sdc1  
Nähere Informationen über das Mounten, bzw. Unmounten von Partitionen unter Linux finden sich unter diesem Link.

Beispielhafte Ausgabe des Befehls fdsisk -l (Klicken zum Vergrößern) 

Erstellen eines unkomprimierten Backups


Nachdem die Bezeichnungen der zu sichernden Festplatte und der Partition, auf der das Backup-Image erstellt werden soll, identifiziert wurde und sichergestellt ist, dass die betroffenen Partitionen wie bereits beschrieben aus-, bzw. eingehängt sind, kann ein unkomprimiertes Backup über den folgenden Konsolenbefehl erstellt werden:
 # dd if=/dev/sdb of=/media/sdc1/backup.img bs=4M  
Der Parameter if gibt die Festplatte an, die gesichert werden soll, of bezeichnet die Partition auf die die Sicherung kopiert werden soll und bs legt fest, wie groß die Blöcke sein sollen, die auf einmal kopiert werden. Dieser Wert bestimmt die Geschwindigkeit des Kopiervorgangs, wobei ausprobiert werden sollte, mit welchem Wert die Sicherung am schnellsten abläuft. Der Backup-Vorgang dauert je nach Festplattengröße eine bestimmte Zeit, während der es so scheint, als würde das Programm nicht mehr reagieren.


Erstellen eines komprimierten Backups


Um das Backup zusätzlich mittels gzip zu komprimieren kann der folgende Befehl genutzt werden:
 # dd if=/dev/sdb bs=4M | gzip > /media/sdc1/backup.img.gz  
Somit kann der Speicherplatz, den das Backup benötigt, verringert werden, was jedoch zu einer zeitaufwändigeren Erstellung führt.

Wiederherstellen eines Backups


Ein unkomprimiertes Backup lässt sich über den folgenden Befehl wiederherstellen. Die Partition auf der sich die Sicherung befindet muss hierfür gemountet sein (in diesem Beispiel unter /media/sdc1), während die Festplatte auf die das Backup zurückgespielt werden soll (hier /dev/sdb) ausgehängt sein muss.
 # dd if=/media/sdc1/backup.img of=/dev/sdb bs=4M  
Um stattdessen ein Backup wiederherzustellen, das wie oben beschrieben komprimiert wurde, kann der folgende Befehl genutzt werden:
 # gunzip -c /media/sdc1/backup.img.gz | dd of=/dev/sdb bs=4M  

Weiterführende Links: