mit dd die Festplatte blockweise klonen oder ein Image erzeugen
Mit dem Linux-Befehl dd kann eine Festplatte blockweise auf eine andere geschrieben werden. Da alle Blöcke übertragen werden, spielt es keine Rolle welches Dateisystem, welche Partitionlayout oder Betriebssystem geklont werden soll, einzig die Zielfestplatte sollte nicht größer als das Partitionslayout der Quellfestplatte sein, siehe: mithilfe kostenloser Tools eine große Festplatte auf eine kleinere klonen.
Mithilfe eines bootfähigen Linux-Medium kann der PC gestartet und eine beliebige Installation geklont werden, siehe auch: Ubuntu installieren oder Live-System starten und Festplatte klonen, kopieren, Image erstellen, Tools.
Festplatten und Partitionen anzeigen
Vorab können die Festplatten oder Partitionen mit dem Befehl fdisk -l
oder in der GUI mit gparted
ausgelesen werden.
Klonen
Zum Klonen einer Festplatte auf eine andere kann folgender Befehl verwendet werden:
sudo dd if=/dev/sda of=/dev/sdb bs=100M status=progress
sda und sdb müssen entsprechend der Ausgabe des fdisk Befehls angepasst werden. Dieser Befehl überschreibt die 2te Festplatte, entsprechende Vorsicht ist geboten.
if ... Quellfestplatte
of ... Zielfestplatte
bs=100M ... Größe der Blöcke die gelesen und geschrieben werden:
ohne diesem Parameter hatte ich ca. 46 MB/s, mit 320 MB/s Durchsatz
status=progress ... zeigt den Fortschritt an
Image
Für das Erstellen eines Images kann dieser Befehl verwendet werden:
sudo dd if=/dev/sdg status=progress bs=100M > /daten/image/W10.img
Für das Erstellen eines komprimierten Images kann dieser Befehl verwendet werden:
sudo dd if=/dev/sdb status=progress | gzip -c > /daten/image/W10.img.gz
Sollte die Quellfestplatte fehlerhaft sein, setzt folgender Parameter das Kopieren auch beim Auftreten von Fehlern fort:
conv=sync,noerror
, also:
sudo dd if=/dev/sdb status=progress conv=sync,noerror bs=16M | gzip -c > /daten/image/W10.img.gz
Ein kurzes Wort zur Geschwindigkeit:
Ursprünglich habe ich bzip2 für das Komprimieren verwendet, der Imagevorgang war damit extrem langsam:
sudo dd if=/dev/sda | bzip2 > /media/usb/abbild.bz2
lieferte ca. 3,4MB/s; der gzip-Befehl läuft bei mir mit 15MB/s.
Zum Wiederherstellen kann folgender Befehl verwendet werden:
gunzip -c /daten/image/W10.img.gz | sudo dd of=/dev/sdc3
dd Fortschrittsanzeige – Status ausgeben
Sollte der Parameter status=progress beim Starten nicht angegeben worden sein, kann dieser im Nachhinein ausgegeben werden:
der Status von laufenden dd-Jobs können mit folgendem Befehl aktualisiert werden:
sudo kill -SIGUSR1 $(pidof dd)
dd gibt dann im Terminal einen Status aus:
3184084+0 Datensätze ein
3184083+0 Datensätze aus
208672063488 bytes (209 GB, 194 GiB) copied, 13861 s, 15,1 MB/s
Status alle 30 Sekunden ausgeben:
Der Befehl muss dazu in einem 2ten Terminal ausgeführt werden:
watch -n30 'sudo kill -USR1 $(pgrep ^dd)'
{{percentage}} % positiv
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
Ich klone gerade eine 2TB SSD auf eine neue 2TB SSD. Allerdings sind sie beide nicht exakt gleich groß, die Ursprungsplatte hat 2.048.408.248.320 bytes und die Zielplatte hat 2.000.398.934.016 bytes, also 48.009.314.304 bytes kleiner. Daher habe ich die Ursprungsplatte (wie empfohlen) mit Gparted verkleinert, nämlich um 45785.25 MiB (das ist von bytes umgerechnet auf MiB), das geht aber nicht so genau in Gparted, daher dann nur um 45785 MiB. Die Ursprungsplatte ist aber auch überhaupt nicht voll. Könnte das ein Problem werden? Oder ist das einfach so, dass wenn jetzt in dem 0.25 MiB Bereich (ganz am Ende) den die Ursprungsplatte ja noch größer ist, etwas steht, das ja dann nicht kopiert wird und diese Datei(en) dann halt nicht gelesen werden könnten? Das wäre ja eher unwahrscheinlich und notfalls kopiere ich das dann halt manuell (sofern es auffällt überhaupt). Oder wie ist das? Danke für eine Antwort, Gruß franc