Wie Sie Ihren Server mit dd-Disk-Images sichern und wiederherstellen
dd erstellt ein sektorweises Abbild einer gesamten Festplatte. Mit diesem Abbild können Sie die Festplatte in den Zustand zurückversetzen, in dem sie sich zum Zeitpunkt der Sicherung befand. Diese Anleitung zeigt, wie Sie mit dd ein Festplattenabbild erstellen und wie Sie es wiederherstellen. Da dd auf Blockebene arbeitet, führen Sie es aus einer Live-Umgebung (Finnix) aus, nicht aus dem laufenden System, das Sie kopieren.
Verwenden Sie dd, wenn Sie eine blockbasierte Kopie einer gesamten Festplatte benötigen. Für Backups auf Dateiebene (einzelne Dateien und Ordner) sind rsync oder tar in der Regel besser geeignet.
Bevor Sie beginnen
- Finnix-ISO
- Zugriff auf das IP-KVM des Servers (IP-basiertes KVM)
- Speicherplatz mit ausreichend freiem Platz für das Abbild (siehe Hinweis in den Sicherungsszenarien)
- SSH-Zugangsdaten, falls Sie auf entfernten Speicher sichern
- Root-Zugriff
1. Kurzer Hinweis zu dd
dd kopiert Daten blockweise. Die relevanten Teile des Befehls:
- if= Quelle (wovon gelesen wird)
- of= Ziel (wohin geschrieben wird)
- bs=8M legt die Blockgröße fest und kann die Kopierleistung verbessern
- status=progress zeigt an, wie viel bereits kopiert wurde, nützlich bei großen Festplatten
Standardmäßig kopieren die folgenden Befehle eine fehlerfreie Festplatte. Wenn die Quellfestplatte Lesefehler aufweist, fügen Sie conv=noerror,sync hinzu: dd setzt dann trotz Lesefehlern fort, anstatt anzuhalten, und füllt nicht lesbare Blöcke mit Nullen auf. Dadurch bleiben die nachfolgenden Blöcke ausgerichtet, die aufgefüllten Bereiche verlieren jedoch ihre Daten, sodass das Dateisystem im Abbild beschädigt sein kann. Bei einer beschädigten Festplatte sollten Sie ddrescue in Betracht ziehen, das speziell zur Datenrettung von defekten Festplatten entwickelt wurde und eine Zuordnung der Lesefehler führt.
dd überschreibt das Ziel vollständig und ohne Rückfrage. Ein falsches of= zerstört Daten. Überprüfen Sie immer die Gerätenamen, bevor Sie einen Befehl ausführen.
2. Vorbereitung
Von Finnix booten. Binden Sie das Finnix-ISO über IP-KVM ein und starten Sie den Server davon. So können Sie mit den Serverfestplatten arbeiten, ohne das installierte Betriebssystem von der Festplatte auszuführen, die Sie sichern. Vermeiden Sie es, ein laufendes System abzubilden: Wenn die Quellfestplatte eingehängte Dateisysteme enthält, die gerade verändert werden, kann das Abbild inkonsistent sein. Stellen Sie sicher, dass die Quellfestplatte nicht von der laufenden Umgebung verwendet wird.
Festplatten identifizieren. Listen Sie die Festplatten mit ihren Größen und Einhängepunkten auf:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS
Alternativ:
fdisk -l
Ermitteln Sie die Systemfestplatte (zum Beispiel /dev/sda) und notieren Sie sich deren Gerätenamen. Dies ist der wichtigste Schritt: dd fragt nicht nach einer Bestätigung, sodass ein Fehler hier die falsche Festplatte löscht. In den folgenden Befehlen ist /dev/sda nur ein Beispiel. Ersetzen Sie es durch die tatsächliche Festplatte, die Sie mit lsblk ermittelt haben. Stellen Sie sicher, dass die Quellfestplatte in der Ausgabe von lsblk keine Einhängepunkte anzeigt, bevor Sie sie abbilden.

3. Szenario A: Sicherung in Cloud-Speicher über SSHFS (CloudBox)
Verwenden Sie dies, um das Abbild auf INTROSERV CloudBox oder einem beliebigen SSH-Speicher zu speichern. Entnehmen Sie die SSH-Zugangsdaten (Benutzer, Host, Pfad) Ihren Bestelldetails.
Erstellen Sie einen Einhängepunkt:
mkdir -p /mnt/backup
Binden Sie den Cloud-Speicher ein:
sshfs user@host:/path /mnt/backup
Erstellen Sie das Festplattenabbild:
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M status=progress
Wenn dd fertig ist, meldet es, wie viele Daten kopiert wurden. Das Abbild sda.img befindet sich jetzt auf Ihrem Cloud-Speicher.
Eine große Kopie über SSHFS kann langsam sein. Wenn die SSH-Verbindung abbricht, kann die Kopie fehlschlagen und das Abbild unvollständig sein.
Die Größe des Abbilds entspricht in etwa der Größe der gesamten Quellfestplatte, nicht der Menge der genutzten Daten. Eine 2-TB-Festplatte mit 100 GB Daten erzeugt trotzdem ein Abbild von etwa 2 TB. Stellen Sie sicher, dass der Speicher genügend freien Platz hat.
Optional: Um Speicherplatz zu sparen und die Netzwerkübertragung zu verringern, komprimieren Sie das Abbild bei der Erstellung:
dd if=/dev/sda bs=8M status=progress | gzip -c > /mnt/backup/sda.img.gz
Ein komprimiertes Abbild wiederherstellen:
gunzip -c /mnt/backup/sda.img.gz | dd of=/dev/sda bs=8M status=progress
Die komprimierte Größe hängt davon ab, wie stark sich der Festplatteninhalt komprimieren lässt. Die unten beschriebene Prüfsummenkontrolle gilt für eine unkomprimierte .img-Datei.
4. Szenario B: Sicherung auf eine weitere physische Festplatte im selben Server
Verwenden Sie dies, wenn der Server über eine zweite Festplatte verfügt (zum Beispiel /dev/sdb), die groß genug ist, um das Abbild aufzunehmen. Die Zielfestplatte muss genügend freien Platz für ein Abbild der gesamten Quellfestplatte haben und darf nicht die Quellfestplatte selbst sein.
Erstellen Sie einen Einhängepunkt und binden Sie die zweite Festplatte ein:
mkdir -p /mnt/backup mount /dev/sdb1 /mnt/backup
Erstellen Sie das Festplattenabbild:
dd if=/dev/sda of=/mnt/backup/sda.img bs=8M status=progress
5. Abbild überprüfen (optional)
Um das Abbild zu überprüfen, berechnen Sie die SHA-256-Prüfsumme der Quellfestplatte und des Abbilds und vergleichen Sie diese. Die Quellfestplatte darf sich zwischen der Erstellung des Abbilds und der Berechnung der Prüfsumme nicht ändern. Dabei wird die gesamte Festplatte erneut gelesen, was bei großen Festplatten Zeit in Anspruch nimmt:
sha256sum /dev/sda sha256sum /mnt/backup/sda.img
Die beiden Werte sollten übereinstimmen.
6. Wiederherstellung
Die Wiederherstellung ist die Sicherung in umgekehrter Reihenfolge: Das Abbild wird zur Quelle (if=) und die Festplatte wird zum Ziel (of=). Booten Sie erneut von Finnix und binden Sie den Speicher ein, der das Abbild enthält, genauso wie bei der Sicherung.
Bevor Sie wiederherstellen, stellen Sie sicher, dass die Zielfestplatte nicht kleiner als die ursprüngliche ist. Ein vollständiges Festplattenabbild kann nicht auf eine kleinere Festplatte wiederhergestellt werden, selbst wenn auf der Quelle nur wenig Daten genutzt wurden.
Aus dem Cloud-Speicher:
dd if=/mnt/backup/sda.img of=/dev/sda bs=8M status=progress
Von einer zweiten Festplatte: Binden Sie diese zunächst ein und führen Sie dann denselben Befehl aus. Auch hier ist /dev/sda nur ein Beispiel. Ersetzen Sie es durch die tatsächliche Zielfestplatte.
Die Wiederherstellung überschreibt die gesamte Zielfestplatte. Stellen Sie sicher, dass of= auf die Festplatte verweist, die Sie wiederherstellen möchten. Wenn dd fertig ist, starten Sie den Server neu und booten Sie von der wiederhergestellten Festplatte.
Wenn die Zielfestplatte größer als die ursprüngliche ist, bleibt der zusätzliche Speicherplatz ungenutzt. Sie können die Partition und das Dateisystem anschließend bei Bedarf erweitern; die genauen Befehle hängen vom Partitionslayout und Dateisystem ab. Wenn Sie auf anderer Hardware wiederherstellen, kann eine zusätzliche Boot-Konfiguration erforderlich sein. Wenn die Quellfestplatte LVM, LUKS, RAID oder eine andere Speicherebene verwendet, kann nach der Wiederherstellung eine zusätzliche Konfiguration erforderlich sein, insbesondere auf anderer Hardware.