URSPRÜNGLICHE FRAGE:
Wenn ich 2 identische Festplatten mit folgenden Eigenschaften habe:
- SATA 6,0 Gbit/s
- 5400 U/min
- 3 TB
Wie lange sollte eine vollständige dd-Kopie dauern?
Bisher läuft es seit 5 Stunden und läuft immer noch…
Ich verwende Linux Ubuntu 12.04 64bit und der Befehl, den ich verwende, lautet:
dd if=/dev/sdb of=/dev/sdc
AKTUALISIERUNG:1
Ich kann jetzt den Fortschritt sehen, und es sind mehr als 6 Stunden für die Kopie von 430 GB vergangen. Die Festplatte ist 3 TB…
Gibt es dafür keinen schnelleren Weg?
AKTUALISIERUNG:2
Das scheint viel besser als zuvor (Danke an Groxxda für die Vorschläge):
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
ETA beträgt etwa 9 Stunden für 3 TB, während es nach 6 Stunden 430 GB erreichte, also schätze ich, dass es mit dem vorherigen Befehl etwa 36 Stunden gedauert hätte.
Akzeptierte Antwort:
dd war früher nützlich, als die Leute Bänder verwendeten (als Blockgrößen eine Rolle spielten) und einfachere Tools wie cat möglicherweise nicht binärsicher.
Heutzutage dd if=/dev/sdb of=/dev/sdc ist nur eine komplizierte, fehleranfällige und langsame Art, cat /dev/sdb >/dev/sdc zu schreiben . Während dd immer noch nützlich für einige relativ seltene Aufgaben, ist es viel weniger nützlich, als die Anzahl der Tutorials, die es erwähnen, glauben lässt. In dd steckt keine Magie , die Magie liegt in /dev/sdb .
Ihr neuer Befehl sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K ist wiederum unnötig langsam und kompliziert. Die Daten werden jeweils mit 128 KB gelesen (was besser ist als dd Standardwert 512B, aber nicht so gut wie noch größere Werte). Es durchläuft dann zwei Pipes, bevor es geschrieben wird.
Verwenden Sie das einfachere und schnellere cat Befehl. (In einigen Benchmarks, die ich vor ein paar Jahren unter Linux gemacht habe, cat war schneller als cp für eine Kopie zwischen verschiedenen Platten und cp war schneller als dd mit beliebiger Blockgröße; dd mit einer großen Blockgröße war beim Kopieren auf dieselbe Festplatte etwas schneller.)
cat /dev/sdb >/dev/sdc
Wenn Sie diesen Befehl in sudo ausführen möchten , müssen Sie die Umleitung als root durchführen:
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Wenn Sie einen Fortschrittsbericht wünschen, können Sie ihn, da Sie Linux verwenden, leicht erhalten, indem Sie die PID der cat notieren Prozess (z. B. 1234) und sich die Position seines Eingabe- (oder Ausgabe-) Dateideskriptors ansehen.
# cat /proc/1234/fdinfo/0
pos: 64155648
flags: 0100000
Wenn Sie einen Fortschrittsbericht wünschen und Ihre Unix-Variante keine einfache Möglichkeit bietet, an eine Dateideskriptorposition zu gelangen, können Sie pv installieren und verwenden statt cat .