GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vollständige Dd-Kopie von Festplatte auf Festplatte?

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 .


Linux
  1. Wie kopiere ich Text von meinem xterm ohne Maus?

  2. Vollständiger Prozessname aus task_struct

  3. Wie kopiere ich Dateien von Dockerfile auf den Host?

  4. pscp kopiert die Datei remote von Windows nach Linux

  5. Datei von windows nach linux kopieren

Kopieren Sie eine Datei in mehrere Verzeichnisse von der Befehlszeile unter Linux

Wenn ich kann, wie installiere ich Ubuntu von Ubuntu?

So kopieren Sie eine Tabelle von einer MySQL-Datenbank in eine andere MySQL-Datenbank

PostgreSQL-CSV-Import über die Befehlszeile

So kopieren Sie Text von less

VMware-Ballooning-Status aus dem Inneren des Gasts