Was ist der beste Weg, um eine Festplatte zwischen zwei Macs zu klonen?

25

Was ist der beste Weg, um eine Festplatte zwischen zwei Macs zu klonen? Ich frage dies alle paar Jahre oder so und jedes Mal, wenn ich die gleiche Antwort bekomme. "Use Carbon Copy Cloner ", heißt es. Leider ist CCC eine Kopie auf Dateiebene zwischen Festplatten. Wenn ich auf meinen neuen Mac umsteige, stelle ich sicher, dass alle Dateien vorhanden sind, aber es gibt hier und da Macken (einschließlich unterschiedlicher Dateidaten usw.).

Also jetzt wirklich noch einmal: Wie klonen Sie die Festplatte Byte für Byte?

erotsppa
quelle

Antworten:

44

Mit dem Befehl dd können Sie ein Laufwerk perfekt klonen. Es ist ein Kommandozeilen-Tool, das im Lieferumfang von OS X enthalten ist. Um den Klon zu perfektionieren, müssen Sie sicherstellen, dass die Quelle und das Ziel nicht aktiv verwendet werden.

Um sich auf den Klon vorzubereiten, empfehle ich, eine sekundäre Bootdiskette zu erstellen, von der Sie booten können. Ihre Quelle für den Klon sollte ein Offline-Volume sein, das beim Erstellen der Kopie nicht verwendet wird. Andernfalls besteht die Gefahr, dass Sie Objekte, die sich in einem unvollständigen Zustand befinden, auf die Festplatte kopieren.

Melden Sie sich an, und starten Sie ein Terminal- oder iTerm-Fenster, während Ihr Computer von Ihrer sekundären Bootdiskette gestartet ist.

Führen Sie diskutil aus , um eine Liste der verfügbaren Laufwerke abzurufen . Eines davon ist Ihr Ziellaufwerk, das Sie klonen möchten. Das andere wird Ihr Quelllaufwerk sein. Beispielsweise:

> diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            319.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3       
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS Backup                  499.8 GB   disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Clone                   499.8 GB   disk2s2

Nehmen wir an, das Macintosh HDist die Quelle und Clonedas Ziel für unsere ddOperation. Starten Sie den Klon mit:

> sudo dd if=/dev/rdisk0 of=/dev/rdisk2 bs=1m conv=noerror,sync

Wenn der ddVorgang abgeschlossen ist, wird möglicherweise folgender Fehler angezeigt:

dd: /dev/rdisk2: short write on character device
dd: /dev/rdisk2: Input/output error
3726+1 records in
3726+1 records out
500107862016 bytes transferred in 14584.393113 secs (34290619 bytes/sec)

Diese letzte Fehlermeldung ist eigentlich in Ordnung. Der letzte geschriebene Block war ein kurzer Block, da kein vollständiger 1-MB-Block zum Kopieren vorhanden war. Keine Bange.

Jetzt haben Sie einen technisch perfekten Klon Ihres Macintosh HDLaufwerks. Starten Sie Ihr System über das Macintosh HDLaufwerk neu und genießen Sie Ihren Klon!

Ian C.
quelle
4
rdisk # umgeht einen 4-KB-Betriebssystempuffer. Mehr Info. Ich würde raten, dass Sie sich für eine kleinere bsVariante entscheiden, da eine Geschwindigkeit über 1 m die Geschwindigkeit tatsächlich verlangsamt. (Zumindest über USB. Ich kann nicht sagen, ob es sich um ein externes USB-Laufwerk oder eine direkte SATA-Verbindung handelt.)
Nick ODell
2
Es kann sich lohnen, ein wenig mit der Einstellung bs zu experimentieren. Durch Verringern der Größe von bs = 1 m auf bs = 65536 wurde der Durchsatz erheblich gesteigert (fast verdoppelt).
Jens Wegar
1
@JensWegar Ich frage mich, ob es eine Möglichkeit gibt, die beste Blockgröße ddfür eine bestimmte Übertragung zu ermitteln, ohne auf vertrauenswürdige Internetsuchen zurückgreifen oder Fehlerbehebungsläufe durchführen zu müssen.
Ian C.
2
@ IanC. Ich habe irgendwo gelesen, dass die Blockgröße der Festplatte als Indikator für die ideale Größe für dd verwendet werden könnte. Andererseits gibt es laut einer anderen Quelle keinen kugelsicheren Weg, um die optimale Größe herauszufinden. Kann dort also keinen wirklichen Rat geben. Das Experimentieren dauerte jedoch nicht lange. Wahrscheinlich ist der ideale Wert ein Faktor von 2, also würde ich mit 4096, dann 8192, 16384 usw. beginnen. Auf diese Weise finden Sie den Gipfel ziemlich schnell.
Jens Wegar
1
@ user3.1415927 Mit der status=progressOption können Sie ddden Fortschritt und die Übertragungsrate anzeigen . Dann können Sie CRTL+Cmit einem anderen Wert fürbs
Wlad
14

Apples maßgeschneidertes Befehlszeilen-Dienstprogramm für das Klonen von Datenträgern ist asr.

Es ist auf die Besonderheiten von OS X zugeschnitten, um Datei-für-Datei- und blockbasierte Imaging-Vorgänge durchzuführen, und es berücksichtigt Unterschiede in der Partitionsgröße, ermöglicht Netzwerk-Streaming (und sogar Multicast-Streaming) sowie das Kopieren zwischen Laufwerken, die lokal verbunden sind. Im Gegensatz dddazu kennt es das neueste Core Storage-Volume-Management von Apple und ist das Programm, das das grafische Festplatten-Dienstprogramm aufruft, um Daten von einer Partition oder einem Volume auf eine andere zu verschieben.

Weitere Informationen finden Sie auf der Handbuchseite für ASR .

bmike
quelle
2
Beachten Sie, dass dies asrdasselbe Tool ist, das auf der Registerkarte "Wiederherstellen" des Festplatten-Dienstprogramms verwendet wird (siehe meine Antwort). Die Befehlszeilenschnittstelle verfügt über zusätzliche Optionen, die in der grafischen Benutzeroberfläche fehlen, z. B. das Konvertieren zwischen den Formaten HFS + (Groß- und Kleinschreibung beachten) und HFSX (Groß- und Kleinschreibung beachten) sowie das Ablegen der Kopie in einer Core Storage-Datenträgergruppe. Für Benutzer, die nicht an die Befehlszeile gewöhnt sind, ist die Verwendung möglicherweise schwieriger.
Gordon Davisson
Bad link .......
Traderhut Games
Ich bin mir nicht sicher, ob archive.org oder ein neuer Link der richtige Weg ist. web.archive.org/web/20150923065146/https://developer.apple.com/… Danke @TraderhutGames
bmike
Zu Ihrer Information: Ich habe mit dd und einer Blockgröße von 64 KByte Schreibgeschwindigkeiten von 122 MByte / Sek. Erzielt. Das habe ich getötet, um auf asr umzuschalten. löschen und ich muss sagen, ich bin beeindruckt. --verbose zeigte mir nichts in Bezug auf Statistiken (DD hat eine Strg / T-Option, um dir den Fortschritt zu zeigen) - vielleicht musste ich die --verbose am Ende machen ... Trotzdem bin ich beeindruckt. Ich habe 134 MB / s Lese- und Schreibgeschwindigkeit mit DD erhalten, und asr hat eine Geschwindigkeit von 25 MB / s. Also, anstatt dass die Kopie 4 Stunden dauert ... Ich schaue auf 21 Stunden! Ja, ich weiß nicht, ob es eine höhere Chance hat zu arbeiten, aber
Traderhut Games
Aber ich kann zuerst einen Test mit dd machen. Wenn dies fehlschlägt, dauert es einen Tag, bis 2 TB mit asr ...
Traderhut Games
8

Das Festplatten-Dienstprogramm kann über die Registerkarte "Wiederherstellen" von Volume zu Volume klonen. Zwischen zwei Mac OS Extended-Volumes wird eine Blockkopie erstellt, dh es werden nur die Volume-Strukturen kopiert, sodass alle Dateien identisch ausgegeben werden (bis auf die Datei-ID-Nummern). Dies ist im Wesentlichen dasselbe dd, mit der Ausnahme, dass das Festplatten-Dienstprogramm das Volume vergrößern / verkleinern kann, wenn das Ziel nicht genau dieselbe Größe wie die Quelle hat und es viel schneller ist (aus irgendeinem Grund ddist es unter OS X ziemlich langsam).

BEARBEITEN: Nachdem ich @ Ians Hinweis zur Geschwindigkeit mit / dev / rdiskN vs. / dev / diskN gesehen hatte, führte ich einige schnelle und fehlerhafte Benchmarks durch, die zwischen zwei 4-GB-Flash-Laufwerken kopiert wurden:

dd using /dev/diskN: 2737 seconds
dd using /dev/rdiskN: 907 seconds
Disk Util, full volume: 840 seconds to copy + 213 seconds to verify
Disk Util, empty volume: 4 seconds to copy + 1 second to verify

Es sieht also so aus, als würde der Festplattenvorschlag dazu führen, dass dd ungefähr mit der gleichen Geschwindigkeit wie das Festplatten-Dienstprogramm ausgeführt wird. Die wirklichen Unterschiede bestehen darin, dass das Festplatten-Dienstprogramm seine Daten überprüft (langsamer, aber möglicherweise sicherer) und Leerzeichen überspringt (schneller, wenn die Festplatte fast nicht voll ist). Das, und wie ich oben sagte, DU kann die Größe ändern, während es kopiert.

Gordon Davisson
quelle
1
Das Festplatten-Dienstprogramm für OS X ist unter docs.info.apple.com/article.html?path=DiskUtility/10.5/en/… dokumentiert .
KatieK
8

Ausführliche Ausgabe von ddviapv

Bildbeschreibung hier eingeben

Das Kopieren selbst einer kleinen Festplatte kann lange dauern und die Stille kann frustrierend sein. Wenn Sie pv (pipe viewer) installieren , können Sie damit den Fortschritt eines Streams überwachen.

Wenn Sie Homebrew verwenden (und Sie sollten es sein), pvist die Installation so einfach wie:

brew install pv

Entscheiden Sie dann, welche Datenträger Sie kopieren möchten.

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage SSD                     250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            SSD                    +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 2CFBB247-D59D-474F-8467-2B1BDB275524
                                 Unencrypted

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk2
   1:             Windows_FAT_32 boot                    43.0 MB    disk2s1
   2:                      Linux                         15.5 GB    disk2s2

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk3
   1:             Windows_FAT_32 NO NAME                 15.6 GB    disk3s1

In diesem Fall /dev/disk2befindet sich eine Micro-SD-Karte von meinem Raspberry Pi im internen Lesegerät und /dev/disk3eine neue MicroSD in einem USB-Dongle.

Der Befehl zum Kopieren wird den allgemeinen ddBefehlen sehr ähnlich sein, außer dass wir die Tatsache ausnutzen werden, dass of(Ausgabedatei) standardmäßig STDOUT und if(Eingabedatei) standardmäßig STDIN ist. Auf diese Weise können Sie dazwischen Unix-Pipes verwenden .

# I'm going to define variables to make your copy-paste easier
SRC=/dev/rdisk2
DST=/dev/rdisk3

# This is the command you want
sudo dd bs=1m if=$SRC | pv | sudo dd bs=1m of=$DST

# Notice how similar this is to doing a simple
sudo dd bs=1m if=$SRC |      sudo dd bs=1m of=$DST

# ...which is functionally identical to
sudo dd bs=1m if=$SRC                      of=$DST

# (except 2 processes vs. 1)

Die tatsächliche Ausgabe sieht folgendermaßen aus:

dd bs=1m if=/dev/zero count=16000 | pv | dd bs=1m of=/dev/null
16GiB 0:00:06 [2.46GiB/s] [       <=>                                          ]
Bruno Bronosky
quelle
2
Oder drücken Sie Strg-T, während Sie auf den Abschluss von DD warten. Es wird angezeigt, wie viel und wie schnell dies getan wurde. Laden: 2,25 cmd: dd 50443 mit 1,50u 55,87s 899897 + 0 Datensätzen in 899896 + 0 zeichnet 58975584256 Bytes auf, die in 473.978101 Sekunden übertragen wurden (124426812 Bytes / Sekunde)
Traderhut Games
4

Carbon Copy Cloner war gut, aber auf meinem Mac Pro wurden keine bootfähigen Klone mehr erstellt. Ich habe es dreimal versucht und jeder Klon konnte anders als zuvor nicht gebootet werden. Also bin ich zu SuperDuper gewechselt! und dieser Klon bootete gut

Jigs
quelle
1
Seine Antwort beinhaltete eine Erklärung: Carbon Copy hat aufgehört zu arbeiten, erklärt, warum er gewechselt hat, worauf er gewechselt hat und dass es funktioniert hat. Schön und prägnant. Drei Daumen hoch! Ich möchte kein langes Buch lesen, um SuperDuper zu testen! - es funktioniert '- als das alles war was ich brauchte.
Traderhut Games
0

Wie wäre es gut altmodisch dd. Es kann eine schrittweise Kopie Ihres Laufwerks erstellen. Es gibt viele Anleitungen, wie man das macht, wie diese oder diese

binarybob
quelle
2
Antworten auf Ask Different müssen mehr als nur ein Link sein. Es ist in Ordnung, einen Link einzufügen, aber bitte fassen Sie ihn in der Antwort zusammen oder extrahieren Sie ihn. Die Idee ist, die Antwort allein zu lassen.
Nohillside
-3

Es gibt zwei Arten des Klonens von Mac-Laufwerken. Klonen auf Datei- und Blockebene. Wie wir wissen, kann Carbon Copy Cloner nur Klone auf Dateiebasis erstellen, und Superduper, einer der großen Konkurrenten, kann nur Klone von Volumes und Partitionen erstellen, nicht die gesamte Festplatte. Daher werde ich vorschlagen, eine neu aufkommende Mac-Klon-Software zu verwenden, die Stellar Drive Clone ist und sowohl das Klonen auf Dateiebene als auch auf Blockebene unterstützt.

Es kann Stück für Stück eine exakte Kopie Ihres gesamten Laufwerks und bestimmter Volumes auf jedem externen Laufwerk, Volume und Netzwerklaufwerk erstellen. Es kann einen Klon des Laufwerks in einem Ordner erstellen und von diesem Backups in seiner kostenlosen Demoversion wiederherstellen. Es kann einen Klon von Recovery HD erstellen und Windows-Dateiformate, MBR, ExFAT, FAT32 usw. auf Ihrem Mac unterstützen.

Crestine
quelle
1
Wie bereits geschrieben, ist Ihre Antwort nicht viel mehr als eine Liste von Produktmerkmalen, aber ohne eine Erklärung darüber, wie das erwähnte Tool das Problem des OP lösen kann. Können Sie bitte Ihre Antwort nützlicher machen, indem Sie die erforderlichen Schritte detaillierter beschreiben (und möglicherweise auch erläutern, welche Vorteile diese Methode im Vergleich zu den in den anderen Antworten beschriebenen hat)?
Nohillside