Qual è il modo migliore per clonare un disco tra due Mac?

22

Qual è il modo migliore per clonare un disco tra due Mac? Lo chiedo ogni due anni circa e ogni volta ottengo la stessa risposta. "Usa Carbon Copy Cloner ", dicono. Ma il fatto sfortunato è che CCC è una copia a livello di file tra i dischi. Quando eseguo la migrazione al mio nuovo Mac, sono sicuro che tutti i file ci sono ma ci sono stranezze qua e là (incluse le date dei file diverse ecc.).

Quindi, davvero ora, ancora una volta: come si clona il disco su byte per byte?

    
posta erotsppa 27.03.2012 - 20:24
fonte

7 risposte

43

Puoi utilizzare il comando dd fare un clone un po 'perfetto di un disco. È uno strumento da riga di comando fornito con OS X. Per rendere perfetto il clone è necessario assicurarsi che l'origine e la destinazione non siano attivamente in uso.

Per preparare il clone, ti consiglio di creare un disco di avvio secondario da cui puoi eseguire l'avvio. La tua fonte per il clone dovrebbe essere un volume offline, non in uso, quando stai facendo la copia. Altrimenti rischi di copiare cose che sono in stati incompleti su disco.

Con la tua macchina avviata sul tuo disco di avvio secondario, accedi e attiva un terminale o una finestra di iTerm.

Esegui diskutil per ottenere un elenco dei tuoi unità disponibili. Uno di questi sarà la tua unità target che stai cercando di clonare. L'altro sarà il tuo disco sorgente. Ad esempio:

> 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

Diciamo che Macintosh HD è la fonte e Clone è la destinazione della nostra operazione dd . Avvia il clone con:

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

Quando dd finisce potresti vedere un errore come questo:

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)

L'ultimo messaggio di errore è effettivamente a posto. L'ultimo blocco scritto era un blocco breve perché non c'era un blocco completo da 1 MB da copiare. Nessun problema.

Ora hai un clone perfetto per il tuo Macintosh HD . Riavvia il sistema utilizzando l'unità Macintosh HD e goditi il tuo clone!

    
risposta data 27.03.2012 - 21:17
fonte
13

L'utilità della riga di comando su misura di Apple per eseguire la clonazione del disco è asr .

È adattato alle specifiche di OS X che deve eseguire file per file e imaging basato su blocchi e gestisce le differenze nelle dimensioni delle partizioni, consente lo streaming di rete (e anche lo streaming multicast) e la copia tra dischi localmente collegato. A differenza di dd , è a conoscenza dell'ultima gestione del volume Core Storage di Apple ed è il programma che l'utilità grafica del disco chiama per spostare i dati da una partizione o un volume a un altro.

Puoi leggere di più alla pagina di manuale per asr .

    
risposta data 05.01.2014 - 03:55
fonte
8

Utility Disco può eseguire la clonazione da volume a volume con la scheda Ripristino. Tra due volumi Mac OS Extended, questo farà una copia a blocchi, cioè copia solo le strutture del volume, in modo che tutti i file risultino identici (fino ai numeri ID del file). Questa è essenzialmente la stessa cosa che dd fa, eccetto che l'Utility Disco può espandere / contrarre il volume se la destinazione non ha esattamente la stessa dimensione dell'origine, ed è molto più veloce (per qualche ragione, dd è abbastanza lento su OS X).

EDIT: dopo aver visto la nota @ di Ian sulla velocità usando / dev / rdiskN vs / dev / diskN, ho eseguito alcuni benchmark veloci e sporchi che copiano tra due flash drive da 4 GB:

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

Quindi sembra che il suggerimento rdisk faccia girare dd alla stessa velocità di Utility Disco; le vere differenze sono che Utility Disco verifica i propri dati (più lentamente, ma forse più sicuri) e salta lo spazio vuoto (più veloce se il disco non è quasi pieno). Quello, e come ho detto sopra DU può ridimensionare mentre copia.

    
risposta data 27.03.2012 - 21:38
fonte
7

Output dettagliato da dd tramite pv

Lacopiadiunpiccolodiscopuòrichiederemoltotempoeilsilenziopuòesserefrustrante.Seinstalli pv (pipe viewer) puoi utilizzarlo per monitorare lo stato di avanzamento di qualsiasi stream.

Se stai usando homebrew (e dovresti esserlo) l'installazione di pv è facile come:

brew install pv

Quindi decidere quali dischi si desidera copiare.

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 questo caso /dev/disk2 è una scheda Micro SD del mio Raspberry Pi nel lettore interno e /dev/disk3 è una nuova MicroSD in un dongle USB.

Il comando per copiarlo sarà molto simile ai comuni comandi di dd , eccetto che stiamo per trarre vantaggio dal fatto che of (file di output) imposta di default i valori di default STDOUT e if (file di input) a STDIN. Ciò ti consente di utilizzare unix pipes in mezzo.

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

L'output attuale assomiglia a:

dd bs=1m if=/dev/zero count=16000 | pv | dd bs=1m of=/dev/null
16GiB 0:00:06 [2.46GiB/s] [       <=>                                          ]
    
risposta data 15.05.2017 - 18:14
fonte
4

Il cloner di copia carbone era buono, ma sul mio Mac Pro non ha più creato cloni di avvio, l'ho provato 3 volte e ogni clone non è riuscito ad avviarsi diversamente da prima. Così sono passato a SuperDuper! e quel clone è stato avviato bene

    
risposta data 02.02.2013 - 17:29
fonte
0

Che ne dici di buon vecchio stile dd . Può fare una copia bit-by del tuo disco. Ci sono molte guide là fuori su come fare questo come questo o questo uno

    
risposta data 27.03.2012 - 21:08
fonte
-3

Esistono due tipi di unità Mac per la clonazione. Clonazione a livello di file e a livello di blocco. Come sappiamo, il cloner di copia carbone può creare solo cloni a livello di file e uno dei grandi concorrenti Superduper può creare cloni di volumi e partizioni solo non l'intero disco. Quindi, ti suggerirò di provare un nuovo software di clonazione Mac emergente che è Stellar Drive Clone in grado di clonare sia a livello di file che a livello di blocco.

Può creare copia esatta bit per bit dell'intera unità e volumi particolari su qualsiasi unità esterna, volume e unità di rete. Può creare clone di unità su una cartella e ripristinare i backup dalla stessa nella sua versione demo gratuita. Può creare clone di recupero HD e supportare i formati di file della finestra, MBR, ExFAT, FAT32, ecc. Sul tuo Mac.

    
risposta data 04.09.2013 - 09:08
fonte

Leggi altre domande sui tag