Ich mache ein dd
auf zwei identischen Laufwerken mit diesem Befehl:
dd if=/dev/sda of=/dev/sdb bs=4096
Beide Festplatten haben genau die gleiche Modellnummer und beide haben 1 TB Speicherplatz. /dev/sda
Verwendet eine Blockgröße von 4096. Ist /dev/sda
ein lokales Laufwerk und /dev/sdb
ein Remote-Caddy. Ich kann möglicherweise die folgenden Protokolle verwenden:
- USB2.0 HighSpeed (Derzeit ist der Plan)
- Gigabit Over-The-Network-Klon (Wirklich nicht wollen, auch dies zu versuchen)
- USB3.0 (Wenn ich meinen anderen Laufwerkscaddy finde)
- eSATA (Wenn ich ein Kabel finde / kaufe)
- SATA (Wenn ich ein Kabel finde / kaufe, muss ich Laptop-CD-Laufwerke lieben)
Gibt es eine Möglichkeit, diese Laufwerkskopie auszuführen, die weniger als 96 Stunden dauert? Ich bin offen für andere Tools als dd
.
Ich muss die folgenden Partitionen (einschließlich UUIDs) klonen
- Fat32 EFI-Partition (*)
- NTFS-Windows-Partition (*)
- HFS + OSX-Partition
- EXT4 Ubuntu Partition (*)
- Swap-Partition (*)
*
Unterstützt von Clonezilla
Ich habe Clonezilla ausprobiert (und es war VIEL schneller), aber es unterstützt nicht das intelligente Kopieren von HFS +, das ich benötige. Vielleicht unterstützt die neueste Version dies?
Als ich meinen ersten Klon erstellt habe, habe ich alle Partitionen außer HFS + erstellt und es ging sehr schnell. (Nicht mehr als 3 Stunden insgesamt)
quelle
dd
kopiert alles , einschließlich des freien Speicherplatzes. Die Nachteile werden sehr deutlich, wenn Sie große Festplatten haben, die nicht voll sind.Antworten:
Meiner Erfahrung nach gibt es in der Kommandozeile nicht etwas schnelleres als
dd
. Durch Anpassen desbs
Parameters kann die Geschwindigkeit erhöht werden. Ich habe beispielsweise 2 Festplatten mit einer Lese- / Schreibgeschwindigkeit von mehr als 100 MB / s.Es gibt auch
pv
(muss zuerst installiert werden), die auf beiden Laufwerken nach der schnellsten Geschwindigkeit sucht und dann mit dem Klonen fortfährt. Dies muss natürlich von root aus erfolgen:Mit PV habe ich 156 MB / s
pv
Abgesehen von der Geschwindigkeit ist das Schöne daran, dass es den Fortschritt, die aktuelle Geschwindigkeit, die Zeit seit Beginn und die ETA anzeigt. In Bezug auf HFS + würde ich nicht wissen, versuche nur auf dem "Speed" Teil zu helfen. Mitpv
oder einem sehr optimiertenbs
Parameter können Sie eine 4-TB-Fahrt in weniger als 7 Stunden (6 Stunden, 50 Minuten bei einer aktuellen Geschwindigkeit von 150 MB / s) durchführen.Ich habe einige Tests mit den von Ihnen verwendeten Verbindungstypen und anderen verfügbaren durchgeführt. Ich habe das Asus Z87 Pro und das Intel DZ68DP verwendet. Dies waren meine Ergebnisse, aber zuerst müssen wir wissen, dass die theoretischen Geschwindigkeiten für viele Übertragungsraten (Raw-Geschwindigkeiten) genau diese Theorie sind . Reale Tests haben ergeben, dass sie zwischen 40% und 80% dieser Rohgeschwindigkeit liegen. Diese Tests können sich je nach verwendetem Gerät, Verbindungstyp, Motherboard, Art des Verbindungskabels, Dateisystemtyp usw. ändern. In diesem Sinne habe ich Folgendes erhalten (ich habe nur die Schreibgeschwindigkeit für das Gerät getestet, das Lesen ist normalerweise höher):
quelle
bs
Parametersdd
so schnell wie möglich erfolgencat
. Sie können es genauso gutcat
in erster Linie verwenden.pv
an sich funktioniert sehr sehr gut.dd if=/dev/sda1 | pv | dd of=/dev/sdb1
pv
zwischendd
s verwendet. Ich hätte nie gedacht, dass es allein verwendet werden kann!Verwenden Sie
cat
dd
zum Kopieren einer Partition im Großhandel anstelle von . Ich habe vor einiger Zeit Benchmarks ausgeführt und eine große Datei anstatt einer Partition zwischen zwei Festplatten kopiert (auf derselben Festplatte sind die relativen Zeiteinstellungen unterschiedlich):Die Schlussfolgerung aus diesem Benchmark ist, dass die Wahl der Blockgröße für
dd
Angelegenheiten (aber nicht für viele) undcat
automatisch den besten Weg findet, um eine schnelle Kopie zu erstellen:dd
Kann Sie nur verlangsamen. Bei einer kleinen Blockgröße wirddd
Zeit verschwendet, indem winzige Lese- und Schreibvorgänge verloren gehen. Bei einer großen Blockgröße bleibt eine Festplatte im Leerlauf, während die andere liest oder schreibt. Die optimale Rate wird erreicht, wenn eine Festplatte liest, während die andere schreibt.Um eine Partition zu kopieren, ist es möglicherweise schneller, die Dateien mit zu kopieren
cp -a
. Dies hängt davon ab, wie viele Dateien vorhanden sind und wie viel Speicherplatz im Dateisystem frei ist. Das Kopieren von Dateien hat einen Overhead, der in etwa proportional zur Anzahl der Dateien ist, aber das Kopieren von freiem Speicherplatz kostet Zeit.Die maximale Datenrate für USB2 liegt bei etwas unter 50 MB / s, was 6 bis 7 Stunden für die Übertragung von 1 TB entspricht. Dies setzt eine Festplatte voraus, die schnell genug ist, um den USB-Bus zu überlasten. Ich denke, die schnelleren Laufwerke mit 7200 U / min können das, aber 5900 U / min sind möglicherweise nicht so schnell (vielleicht sind sie für lineare Schreibvorgänge?).
Wenn eine der Festplatten gleichzeitig verwendet wird, kann dies den Kopiervorgang erheblich verlangsamen, da sich die Festplattenköpfe bewegen müssen.
quelle
cat
für verwendet werdendd if=ubuntu.iso of=/dev/usb
?dd
Die Geschwindigkeit für USB2 oder USB3 ist frustrierend langsam.cat ubuntu.iso >/dev/usb
ist genau gleichwertig. Es steckt keine Magie darindd
, es ist nur ein Werkzeug, um seine Eingabe in seine Ausgabe zu kopieren.sudo cat linuxmint-17.3-cinnamon-64bit.iso >/dev/disk1
"-bash: / dev / disk1: Permission denied" zurückzugebenDas Problem ist Ihr Verbindungstyp und die Blockgröße. Für die schnellsten Ergebnisse sollte Ihre Blockgröße die Hälfte der niedrigsten Schreibgeschwindigkeit sein, die Sie normalerweise erhalten. Dies gibt Ihnen einen sicheren Spielraum, lässt aber dennoch eine große Anzahl zu; Natürlich müssen Sie genug RAM haben, um die Daten auch zu halten.
USB 2.0 ist 12 Megabit pro Sekunde (Mbit / s), USB 2.0 High Speed ist 480 Mbit / s. Das ist natürlich die rohe Geschwindigkeit; Bei 8 Bits in einem Byte und Framing-Overhead ist die nutzbare Geschwindigkeit in MB / s normalerweise eine Dezimalstelle höher. So werden zum Beispiel 480 RAW 48 MB nutzbar. Denken Sie daran, dass dies das mathematisch beste ist, in der realen Welt wird es ein bisschen niedriger sein. Für USB 2.0-Hochgeschwindigkeitsverbindungen sollten Sie mit einer maximalen Schreibgeschwindigkeit von 30-35 MB rechnen, vorausgesetzt, das tatsächliche Speichergerät kann die Verbindungsgeschwindigkeiten erreichen oder übertreffen.
quelle
Ich bin damit einverstanden, dass die rohe Geschwindigkeit eines gut abgestimmten
dd
('pv') oder 'cat' Befehls schwer zu übertreffen ist, aber wenn es ein Problem mit der Kopie gibt (fehlerhafter Sektor, Stromausfall, Benutzerfehler usw.), müssen Sie beginnen Über.Ich möchte ddrescue vorschlagen - ein FOSS-Tool mit der Geschwindigkeit von dd, das jedoch Festplattenfehler umgeht und bei einem Fehler zu einem späteren Zeitpunkt fortgesetzt wird.
quelle
Ich habe Windows 7 von einer Festplatte auf eine SSD verschoben und diese und einige andere Antworten gefunden ... Etwas, das ich gelernt habe und das anderen helfen könnte. In meinem Fall ist das Quelllaufwerk größer, sonst hätte ich auf der Geräteebene / dev / sda -> / dev / sdb gearbeitet.
Win7 und seine 3 Partitionen ... Ich habe Xbuntu 14.04 Live-CD auf einem USB verwendet. Nehmen Sie die DVD des Win-Computers heraus und setzen Sie die SSD ein. Partclone installiert und ausprobiert:
partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3
Partclone kotzte auf den ntfs, die unter Windows chkdisk benötigen, so dass partclone mit einer schnellen Lösung glücklich wurde:
Alle Befehle werden als root ausgeführt. Die ncurses-Benutzeroberfläche von Partclone (Option -N) gab an, dass die Übertragung 7 GB / min und 5 GB / min betrug, was 83 MB / s entspricht. Der große Teil ist, dass partclone nicht ungenutzten Speicherplatz kopiert. Dadurch wurde der Klon bemerkenswert schnell.
Zusätzliche mögliche Fallstricke:
Wenn das Laufwerk, auf das Sie übertragen, zuvor verwendet wurde, weist es möglicherweise Reste einer GPT auf. Bei Windows 7-Werksinstallationen handelt es sich normalerweise um MSDOS / MSB-Partitionstabellen. Sie müssen die GPT-Fragmente vom Ziellaufwerk entfernen. Diese Unix- und Linux-Qualitätssicherung hat mir dabei geholfen. Sie müssen
gdisk
auf dem Gerät verwenden, x, dann z und yes verwenden, um GPT-Daten zu zappen und sicherzustellen, dass Sie den MBR behalten.Und vergessen Sie nicht, dass Sie den MBR kopieren müssen, wenn Sie keinen Geräte-Level-Dd durchführen. Verwenden Sie dabei
dd if=/dev/sdb of=/dev/sda bs=446 count=1
SDB als Quelle oder altes Laufwerk und SDA als Ziel oder neues Laufwerk ( Quelle ).
quelle
Ich habe kürzlich ein Image einer 100-GB-Partition (HDD) erstellt und auf die neue SSD-Festplatte geschrieben.
Hier ist ein Tipp, der den Prozess drastisch beschleunigen kann :)
Datei in kleinere Teile aufteilen (je größer die Datei ist, desto langsamer funktioniert sie)
Während des Vorgangs können Sie die Geschwindigkeit mit (in separatem Terminal) überprüfen.
Wenn Sie dann ein Verzeichnis voller Ergebnisdateien haben (maindisk.img000, maindisk.img001 usw.), verwenden Sie
das Image in die neue Partition der SSD 'brennen' (Partition muss die gleiche Größe haben wie die alte)
Für mich hat es ein bisschen schneller geklappt als sonst (ohne zu splitten). Die durchschnittliche Geschwindigkeit zum Erstellen des Bildes betrug ~ 13 MB / s. Wenn ich die "normale" Art und Weise verwende, fängt es mit ~ 15MB / s an und geht dann auf 1MB / s zurück.
quelle
conv=sync
ist die Leistung nachteilig und in diesem Anwendungsfall eher unbrauchbar.Für jeden, der diesen Thread findet, ist es viel einfacher und schneller, ein Tool wie ddrescue für die Datenwiederherstellung zu verwenden . Bei Lesefehlern wird zunächst versucht, die guten Teile zu retten. Sie können die Rettung auch jederzeit unterbrechen und später an derselben Stelle fortsetzen.
Führe es zweimal aus:
Kopieren Sie in der ersten Runde jeden Block ohne Lesefehler und protokollieren Sie die Fehler in rescue.log.
Kopieren Sie in der zweiten Runde nur die fehlerhaften Blöcke und versuchen Sie dreimal, aus der Quelle zu lesen, bevor Sie aufgeben.
Jetzt können Sie das neue Laufwerk einbinden und das Dateisystem auf Beschädigungen überprüfen.
Weitere Informationen:
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
quelle
Ich würde empfehlen, die Eingabe / Lesedatei / Festplatte auf SATA zu speichern, um die Lesegeschwindigkeit zu erhöhen. Die USB 2.0-Hochgeschwindigkeit ist auch gut, da ich mit ddrescue eine durchschnittliche Geschwindigkeit von 33816 kb / s erhalte, verglichen mit der Einstellung von USB 2.0 auf SATA bei 2014 kb / s
quelle
Verwenden Sie eine andere Blockgröße. Es ist die Datenmenge, die gleichzeitig
dd
gelesen wird. Wenn zu wenig gelesen wird, wird ein größerer Teil der Zeit für die Programmlogik aufgewendet, und wenn zu viel gelesen wird, wird viel Zeit für das Verschieben der großen Daten aufgewendet.Verwenden Sie das folgende
bash
Skript, um die Geschwindigkeit bei verschiedenen Blockgrößen zu messen :$dev
auf das Gerät einstellencbtotal
sicher, dass Ihre erwartete Lesegeschwindigkeit mindestens das 5-fache beträgtDas Ergebnis kann aufgrund des bevorstehenden Lesens des Datenträgers in Richtung einer größeren Größe verzerrt sein - daher ist es wichtig, eine
cbtotal
ausreichende Größe festzulegen.quelle