Quelle est la meilleure façon de cloner un disque entre deux Mac?

25

Quelle est la meilleure façon de cloner un disque entre deux Mac? Je pose cette question tous les deux ans environ et chaque fois que j'obtiens la même réponse. "Utilisez Carbon Copy Cloner ", disent-ils. Mais le fait malheureux est que CCC est une copie de niveau fichier entre les disques. Lorsque je migre vers mon nouveau Mac, bien sûr tous les fichiers sont là mais il y a des bizarreries ici et là (y compris les dates de fichiers étant différentes, etc.).

Alors, vraiment maintenant, encore une fois: comment cloner le disque octet par octet?

erotsppa
la source

Réponses:

44

Vous pouvez utiliser la commande dd pour créer un clone peu parfait d'un lecteur. Il s'agit d'un outil en ligne de commande fourni avec OS X. Pour rendre le clone parfait, vous devez vous assurer que la source et la destination ne sont pas activement utilisées.

Pour préparer le clone, je recommande de créer un disque de démarrage secondaire à partir duquel vous pouvez démarrer. Votre source pour le clone doit être un volume hors ligne, non utilisé, lorsque vous effectuez la copie. Sinon, vous risquez de copier sur le disque des éléments dont l'état est incomplet.

Avec votre machine démarrée sur votre disque de démarrage secondaire, connectez-vous et ouvrez une fenêtre Terminal ou iTerm.

Exécutez diskutil pour obtenir une liste de vos disques disponibles. L'un d'eux sera votre lecteur cible que vous essayez de cloner. L'autre sera votre lecteur source. Par exemple:

> 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

Disons que Macintosh HDc'est la source et Clonela cible de notre ddopération. Démarrez le clone avec:

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

Une fois ddterminé, vous pouvez voir une erreur comme celle-ci:

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)

Ce dernier message d'erreur est en fait correct. Le dernier bloc écrit était un bloc court car il n'y avait pas un bloc complet de 1 Mo à copier. Pas de soucis.

Vous avez maintenant un clone parfait sur votre Macintosh HDdisque. Redémarrez votre système à l'aide du Macintosh HDlecteur et profitez de votre clone!

Ian C.
la source
4
rdisk # contourne un tampon de système d'exploitation de 4 Ko. Plus d'informations. Je vous conseille de choisir un plus petit bs, car aller au-dessus de 1 m le rend plus lent. (Au moins via USB. Je ne peux pas dire s'il s'agit d'un lecteur USB externe ou d'une connexion SATA directe.)
Nick ODell
2
Il peut être utile d'expérimenter un peu avec le paramètre bs. J'ai obtenu une augmentation significative du débit (presque le double) en diminuant la taille de bs = 1m à bs = 65536.
Jens Wegar
1
@JensWegar Je me demande s'il existe un moyen de connaître la meilleure taille de bloc à donner ddpour un transfert donné sans avoir à recourir à des recherches fiables sur Internet ou à des analyses de traces et d'erreurs?
Ian C.
2
@IanC. J'ai lu quelque part que la taille de bloc du disque dur pouvait être utilisée comme indicateur de la taille idéale pour donner dd. D'un autre côté, une autre source a déclaré qu'il n'y avait aucun moyen à toute épreuve de déterminer la taille optimale. Je ne peux donc pas donner de vrai conseil là-bas. Cependant, il n'a pas fallu trop de temps pour expérimenter. La valeur idéale est probablement un facteur de 2, donc je commencerais par 4096, puis 8192, 16384 et ainsi de suite. Vous trouverez le pic assez rapidement de cette façon.
Jens Wegar
1
@ user3.1415927 vous pouvez utiliser l' status=progressoption de ddpour voir la progression et le taux de transfert. Ensuite, vous pouvez abandonner avec CRTL+Cet essayer avec une autre valeur pourbs
Wlad
14

L'utilitaire de ligne de commande sur mesure d'Apple pour faire le clonage de disque est asr .

Il est adapté aux spécificités d'OS X pour effectuer l'imagerie fichier par fichier ainsi que par blocs et traite les différences de taille de partition, permet la diffusion en réseau (et même la diffusion multidiffusion) ainsi que la copie entre des disques connectés localement. contrairement àdd , il connaît la dernière gestion de volume Core Storage d'Apple et est le programme que l'utilitaire de disque graphique appelle pour déplacer des données d'une partition ou d'un volume à un autre.

Vous pouvez en savoir plus sur la page de manuel pour asr .

bmike
la source
2
Notez que asrc'est le même outil que l'onglet Restauration de l'Utilitaire de disque utilise (voir ma réponse). L'interface de ligne de commande a des options supplémentaires que l'interface graphique omet, telles que la conversion entre les formats HFS + (insensible à la casse) et HFSX (sensible à la casse) et la mise de la copie dans un groupe de volumes Core Storage. Mais il peut être plus difficile à utiliser pour les personnes qui ne sont pas habituées à la ligne de commande.
Gordon Davisson
Mauvais lien .......
Traderhut Games
Je ne sais pas si archive.org ou un nouveau lien est le chemin à parcourir ici. web.archive.org/web/20150923065146/https://developer.apple.com/… Merci @TraderhutGames
bmike
FYI: J'obtenais des écritures de 122 Mo / sec en utilisant dd et une taille de bloc de 64K, je l'ai tué pour passer à asr, en faisant une restauration --verbose --source / Volumes / X / -target / Volumes / Y - effacer et je dois dire que je suis impressionné. --verbose ne m'a rien montré en termes de statistiques (DD a une option Ctrl / T pour vous montrer la progression) - peut-être que je devais faire la --verbose à la fin ... Néanmoins, je suis impressionné. J'obtenais 134 Mo / sec en lecture et en écriture en utilisant DD, et asr donne un coup de pied à 25 Mo / sec. Donc, au lieu que la copie prenne 4 heures ... je regarde 21 heures! Oui, je ne sais pas si cela a plus de chances de fonctionner, mais
Traderhut Games
mais je peux d'abord faire un test avec dd, puis s'il échoue, laissez-le prendre un jour pour copier 2 To d'un disque à l'autre en utilisant asr ...
Traderhut Games
8

L'Utilitaire de disque peut effectuer un clonage volume à volume avec l'onglet Restaurer. Entre deux volumes Mac OS étendus, cela fera une copie de bloc, c'est-à-dire qu'il copie simplement les structures de volume, de sorte que tous les fichiers sortent identiques (jusqu'aux numéros d'identification des fichiers). C'est essentiellement la même chose dd, sauf que l'utilitaire de disque peut augmenter / réduire le volume si la destination n'est pas exactement de la même taille que la source, et c'est beaucoup plus rapide (pour une raison quelconque,dd est assez lent sous OS X).

EDIT: Après avoir vu la note de @ Ian sur la vitesse à l'aide de / dev / rdiskN vs / dev / diskN, j'ai exécuté des tests de référence rapides et sales en copiant entre deux lecteurs flash de 4 Go:

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

Il semble donc que la suggestion rdisk fasse fonctionner dd à la même vitesse que l'Utilitaire de disque; les vraies différences sont que l'Utilitaire de disque vérifie ses données (plus lentement, mais peut-être plus sûrement) et saute l'espace vide (plus rapide si le disque n'est pas presque plein). Cela, et comme je l'ai dit ci-dessus, DU peut être redimensionné lors de la copie.

Gordon Davisson
la source
1
L'Utilitaire de disque pour OS X est documenté sur docs.info.apple.com/article.html?path=DiskUtility/10.5/en/… .
KatieK
8

Sortie verbale ddviapv

entrez la description de l'image ici

Copier même un petit disque peut prendre beaucoup de temps et le silence peut être frustrant. Si vous installez pv (pipe viewer), vous pouvez l'utiliser pour surveiller la progression de n'importe quel flux.

Si vous utilisez homebrew (et vous devriez l'être), l'installation pvest aussi simple que:

brew install pv

Décidez ensuite des disques que vous souhaitez copier.

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

Dans ce cas /dev/disk2est une carte Micro SD de mon Raspberry Pi dans le lecteur interne et /dev/disk3est un nouveau MicroSD dans un dongle USB.

La commande pour la copier va être très similaire aux ddcommandes courantes, sauf que nous allons profiter du fait que of(fichier de sortie) est par défaut STDOUT et if(fichier d'entrée) par défaut STDIN. Cela vous permet d'utiliser des tuyaux Unix entre les deux.

# 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)

La sortie réelle ressemble à ceci:

dd bs=1m if=/dev/zero count=16000 | pv | dd bs=1m of=/dev/null
16GiB 0:00:06 [2.46GiB/s] [       <=>                                          ]
Bruno Bronosky
la source
2
Ou, vous pouvez appuyer sur Ctrl-T en attendant que DD se termine, il vous montrera combien il a fait et à quelle vitesse .. charge: 2,25 cmd: dd 50443 exécutant 1.50u 55.87s 899897 + 0 enregistrements dans 899896 + 0 enregistre 58975584256 octets transférés en 473,978101 s (124426812 octets / s)
Traderhut Games
4

Le cloneur Carbon Copy était bon, mais sur mon Mac Pro, il ne faisait plus de clones amorçables, je l'ai essayé 3 fois et chaque clone n'a pas pu démarrer contrairement à ce qui se faisait auparavant. Je suis donc passé à SuperDuper! et ce clone a bien démarré

Jigs
la source
1
Sa réponse comprenait une explication: Carbon Copy a cessé de fonctionner, a expliqué pourquoi il est passé, vers quoi il est passé et que cela a fonctionné. Agréable et concis. Trois pouces vers le haut! Je ne veux pas lire un long livre pour obtenir le «essayez SuperDuper! - ça marche '- quand c'était tout ce dont j'avais besoin.
Traderhut Games
0

Que diriez-vous de la bonne vieille dd. Il peut faire une copie bit par bit de votre lecteur. Il y a beaucoup de guides sur la façon de le faire, comme celui-ci ou celui-ci

binarybob
la source
2
Les réponses à Ask Different doivent être plus qu'un simple lien. Il est correct d'inclure un lien, mais veuillez le résumer ou l'extraire dans la réponse. L'idée est de rendre la réponse autonome.
nohillside
-3

Il existe deux types de clonage de disque Mac. Clonage basé sur les niveaux de fichiers et de blocs. Comme nous le savons, le cloneur de copie carbone peut créer un clone basé sur le niveau du fichier uniquement et son super concurrent Superduper peut créer un clone de volumes et partitionner uniquement pas le disque entier. Je proposerai donc d'opter pour un nouveau logiciel de clonage Mac émergeant qui est Stellar Drive Clone capable à la fois de cloner au niveau du fichier et du bloc.

Il peut créer une copie exacte, bit par bit, de l'intégralité de votre lecteur et de volumes particuliers sur n'importe quel lecteur externe, volume et lecteur réseau. Il peut créer un clone du lecteur sur le dossier et restaurer les sauvegardes à partir de celui-ci dans sa fonction de version de démonstration gratuite. Il peut créer un clone de récupération HD et prendre en charge les formats de fichiers de fenêtre, MBR, ExFAT, FAT32, etc. sur votre Mac.

Crestine
la source
1
Telle que rédigée, votre réponse n'est pas beaucoup plus qu'une liste de caractéristiques du produit, mais sans aucune explication sur la façon dont l'outil mentionné peut résoudre le problème du PO. Pouvez-vous rendre votre réponse plus utile en décrivant plus en détail les étapes nécessaires (et peut-être en expliquant également les avantages de cette méthode par rapport à ceux décrits dans les autres réponses)?
nohillside