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

Quelle est la meilleure façon de cloner un disque entre deux Mac? Je request cela tous les deux ans et chaque fois que je reçois la même réponse. "Utilisez Carbon Copy Cloner ", disent-ils. Mais le fait malheureux est que CCC est une copy au niveau du file entre les disques. Lorsque je migre sur mon nouveau Mac, assurez-vous que tous les files sont là mais il y a des cachets ici et là (y compris les dates des files différentes etc.).

Donc, vraiment maintenant, encore une fois: comment cloner le disque sur byte-by-byte?

Vous pouvez utiliser la command dd pour créer un clone un peu parfait d'un lecteur. C'est un outil de command line qui est livré avec OS X. Afin de rendre le clone parfait, vous devrez vous assurer que la source et la destination ne sont pas actives.

Pour préparer le clone, je recommand de créer une 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 copy. Sinon, vous risquez de copyr des éléments qui sont dans des états incomplets sur le disque.

Lorsque votre machine est démarrée sur votre disque de démarrage secondaire, connectez-vous et lancez une window Terminal ou iTerm.

Exécutez diskutil pour get une list de vos lecteurs disponibles. L'un d'entre eux sera votre cible, 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 HD est la source et Clone est la cible de notre opération dd . Démarrez le clone avec:

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

Lorsque dd termine, 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 vraiment correct. Le dernier bloc écrit était un petit bloc parce qu'il n'y avait pas un bloc complet de 1 Mo à copyr. Pas de soucis.

Maintenant, vous avez un clone parfait de votre disque dur Macintosh HD . Redémarrez votre système en utilisant le lecteur Macintosh HD et profitez de votre clone!

L'utilitaire de command line sur mesure d'Apple pour faire un clonage sur disque est asr .

Il est adapté aux spécificités d'OS X pour effectuer le file par file ainsi que l'imagerie basée sur les blocs et traite des différences dans les tailles de partition, permet la diffusion en réseau (et même le streaming multicast) ainsi que la copy entre des disques connectés localement. Contrairement à dd , il connaît la dernière gestion de volume de 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 à l'autre.

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

Disk Utility peut faire un clonage volume-volume avec l'onglet Restaurer. Entre deux volumes étendus de Mac OS, cela fera une copy de bloc, c'est-à-dire il suffit de copyr les structures de volume, de sorte que tous les files sont identiques (en fonction des numéros d'identification du file). C'est essentiellement la même chose que dd , sauf que Disk Utility peut étendre / contracter le volume si la destination n'est pas exactement la même taille que la source, et c'est beaucoup plus rapide (pour une raison quelconque, dd est assez lent sur OS X ).

EDIT: Après avoir vu la note de Ian sur la vitesse en utilisant / dev / rdiskN vs. / dev / diskN, j'ai exécuté quelques benchmarks rapides et sales 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 

Donc, il semble que la suggestion rdisk permet à dd de fonctionner à peu près à la même vitesse que Disk Utility; les différences réelles sont que Disk Utility vérifie ses données (plus lent, mais peut-être plus sûr) et saute l'espace vide (plus rapidement si le disque n'est pas presque plein). Cela, et comme je l'ai dit plus haut, DU peut resize à mesure qu'il copy.

Le clone de copy de carbone était bon, mais alors, sur mon Mac Pro, il ne faisait plus de clone amorçables, je l'ai essayé 3 fois et chaque clone n'a pas réussi à démarrer à la différence précédemment. Je suis donc passé à SuperDuper! et ce clone a été amorcé

Sortie verbale de dd via pv

entrez la description de l'image ici

Copier même un petit disque peut prendre beaucoup de time et le silence peut être frustrant. Si vous installez pv (channel viewer), vous pouvez l'utiliser pour surveiller la progression de tout stream.

Si vous utilisez homebrew (et vous devriez être), installer pv est aussi simple que:

 brew install pv 

Ensuite, décidez sur les disques que vous souhaitez copyr.

 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/disk2 est une carte Micro SD de mon Raspberry Pi dans le lecteur interne et /dev/disk3 est un nouveau MicroSD dans un dongle USB.

La command à copyr sera très semblable aux commands communes de dd sauf que nous allons profiter du fait que (file de sortie) par défaut est STDOUT et if (file d'input) par défaut est 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 actuelle ressemble à:

 dd bs=1m if=/dev/zero count=16000 | pv | dd bs=1m of=/dev/null 16GiB 0:00:06 [2.46GiB/s] [ <=> ] 

Que diriez-vous du bon dd . Il peut faire une copy bit-by-bit de votre lecteur. Il existe de nombreux guides là-bas sur la façon de procéder comme celui-ci ou celui-ci

Il existe deux types de clonage de disque Mac. Clonage basé sur le niveau de file et le niveau de blocage. Comme nous le soaps, le cloner de copy de carbone peut créer uniquement un clone basé sur le niveau de file et son un des grands concurrents Superduper peut créer un clone de volumes et de partition uniquement non sur le disque entier. Donc, je suggérerais d'aller chercher un nouveau logiciel de clonage Mac qui est Stellar Drive Clone capable à la fois du niveau de file et du clonage au niveau des blocs.

Il peut créer un bit par bit copy exacte de votre lecteur entier et des volumes particuliers sur votre lecteur externe, votre volume et votre lecteur réseau. Il peut créer un clone de lecteur sur un dossier et restaurer des sauvegardes de la même manière dans sa version de démonstration gratuite. Il peut créer un clone de récupération HD et formats de files de window de support, MBR, ExFAT, FAT32, etc. sur votre Mac.