Esiste un modo più rapido per copiare i file della macchina del tempo da un disco a un altro?

12

Sto provando a spostare i file di backup della mia macchina del tempo tutti in Backups.backupdb su un'altra unità. Ho avviato una copia di file durante la notte (b / c ho visto che ci voleva OSX per sempre per preparare la copia ... fondamentalmente stava contando i file per ore). Al mattino ho visto che solo alcuni backup (cartelle con le date) sono stati copiati. Poi ho provato a copiare quelli che non sono stati copiati ... ma il sistema operativo non mi permetteva di farlo. Ho ottenuto ed errore che "L'operazione non può essere completata perché gli elementi di backup non possono essere modificati." Quindi il mio piano è quello di eliminare la copia incompleta sulla nuova unità e quindi provare a copiare nuovamente la cartella Backups.backupdb.

Abbastanza frustrante. C'è un modo più veloce per copiare questi file tramite un comando di terminale in modo che non esegua tutta quella preparazione per il conteggio dei file?

Probabilmente posso tarare l'intera cartella e poi fare una copia, ma questo interferirà con i permessi dei file, ecc.? L'unica cosa con questo approccio è che non ho più spazio sul mio volume sorgente per il tar.

Aggiorna

Ho provato alcuni dei metodi suggeriti dalle persone di seguito, in particolare utilizzando la funzione di ripristino di Utility Disco e mi dà alcuni messaggi di errore e risultati imprevisti (almeno per me). Ho provato a eseguire il ripristino in due modi:

  • Con "Cancella destinazione" selezionato: Ogni volta (l'ho provato due volte), quando il ripristino è terminato, vedo un messaggio "Impossibile ripristinare - Operazione non valida" e "Impossibile ripristinare - Argomento non valido". Tuttavia, il mio disco di destinazione ottiene una copia dei miei file TM. La cosa strana è che il mio disco di destinazione è ESATTAMENTE come il mio disco sorgente ... anche le dimensioni. Il mio disco di destinazione è in realtà 1 TB, ma dopo il ripristino, mostra 200 GB quando ottengo informazioni dal finder. Ma in Utility Disco, mostra una partizione da 1 TB!

Ho quindi provato a verificare / riparare il disco e ho ottenuto:

    Invalid B-tree node size
    Checking Journaled HFS Plus volume.
    Invalid B-tree node size
    Volume repair complete.
    Updating boot support partitions for the volume as required.
    Error: Disk Utility can’t repair this disk. Back up as many of your files as possible, reformat the disk, and restore your backed-up files.

Non so se sono nemmeno supposto che verifichi / ripari un disco TM ...

  • Con "Cancella destinazione" deselezionato: il ripristino non inizia mai e ottengo:
    Could not restore - Operation not permitted
    
posta milesmeow 31.12.2011 - 20:37
fonte

7 risposte

6

Una copia normale (o copia tramite rsync o idem) non replicherà completamente una macchina del tempo poiché convertirà due directory collegate insieme (come avviene nei successivi backup TM senza modifiche tra) in due directory separate.

Il modo migliore è copiare l'intero disco usando Utility Disco o la parte di copia di Carbon Copy Cloner e probabilmente simile su SuperDuper .

    
risposta data 01.01.2012 - 12:09
fonte
5

Perché non usare solo il terminale:

cp -RnpP Backups.backupdb
  • -R ricorsivo
  • -n non sovrascrive (se resti di copie esistenti rimangono dal tentativo precedente)
  • -p conserva ACL, permessi, date di creazione / mod, ecc.
  • -P preserva i collegamenti reali, non seguire hard o symlink.
risposta data 23.03.2014 - 23:01
fonte
2

Migrando un'unità piena da 3TB Time Machine crittografata a una nuova da 8 TB su macOS 10.14, mi sono imbattuto in tutti i tipi di problemi. Cercando di eseguire un ripristino in Utility Disco errato con "Impossibile convalidare l'origine" o "Operazione non consentita". Provando alcuni altri suggerimenti in questo post e in altri, sono stato in grado di ottenere nuovi eccitanti messaggi di errore come "File di catalogo su immagine / il volume è troppo frammentato, "ma non copia.

Che cosa ha funzionato alla fine, al terminale:

  1. Cancellare il nuovo disco con Utility Disco, in modo che corrisponda al formato dell'unità di origine: MacOS Extended (Journaled, Encrypted)
  2. Utilizza diskutil cs list nel terminale per ottenere la dimensione esatta dei byte del volume logico sulla vecchia unità e il GUID del nuovo volume logico, così come i numeri del disco per entrambi, ad esempio disk4 .
  3. Utilizza la dimensione esatta del byte del passaggio 2 come dimensione del nuovo volume. Nel mio caso con un'unità da 3 TB, erano 2,999,772,905,472 byte:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Usando il comando pv di homebrew, esegui una copia di blocco di basso livello dei dischi. Questo è molto simile all'utilizzo di dd , tranne che ottieni un indicatore di avanzamento con ETA.

    Devi ottenere i numeri del disco dall'output diskutil cs list . Stai attento. È molto facile sovrascrivere accidentalmente l'unità di backup completo con quella nuova vuota qui.

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    Se ottieni un permesso negato / operazione non consentita errore qui, vai in Sicurezza e amp; Preferenze sulla privacy e aggiungi l'accesso Full-Disk per Terminal.app.

    Per me ci sono volute circa 10 ore - l'ho lasciato girare per una notte - ma, con pv , almeno ottieni un indicatore di avanzamento con un ETA.

  5. Ora, espandi il volume per occupare tutto lo spazio rimanente sull'unità:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Ci sono volute 3 ore per me, con circa 5 anni di backup. La maggior parte di quel tempo è stata spesa da macOS fsck ing.

Ora puoi goderti il tuo nuovo e più spazioso drive Time Machine. Puoi riutilizzare il vecchio o riporlo in un posto sicuro nel caso in cui qualcosa accada al nuovo disco.

I passaggi di ridimensionamento sembrano essere importanti; saltandoli si è verificata una copia di file di 10 ore che ha prodotto un volume da 8 TB contenente un file system da 3 TB che non riuscivo a capire come ridimensionare.

    
risposta data 27.11.2018 - 12:33
fonte
0

Questa risposta non lo farà più velocemente, ma ho trovato un modo per copiare i dati correttamente preservando la deduplicazione (collegamenti fisici) e le autorizzazioni. Come bonus aggiuntivo, lo utilizzo per creare un dmg compresso del prodotto finale per l'archiviazione.

  1. Usando Disk Utilities, crea un'immagine del disco più grande della directory Backups.backupdb. Vorrei anche suggerire di utilizzare l'immagine del disco di tipo sparse per il formato immagine e l'hard disk per le partizioni. Dopo aver montato questa immagine, Ottieni informazioni su di essa e deseleziona Ignora proprietà su questo volume.

  2. Ora spegni Time Machine e, utilizzando il mirino, copia la cartella Backups.backupdb sull'immagine montata. Il cercatore ti chiederà le autorizzazioni super utente per copiare i dati. Prendi un drink o fai qualcos'altro per un po '.

  3. Al termine della copia, accertati che tutto sia a posto e smonta l'immagine. Da Utility Disco, selezionare Converti e trasformare l'immagine del fascio sparse in un'immagine compressa. Di nuovo, questo potrebbe richiedere del tempo.

Dovresti finire con due copie del tuo backup di Time Machine, puoi eliminare la versione di bundle sparse e mettere il dmg in un posto sicuro come un archivio nel tempo.

Una cosa che non ho provato con questo è di fare un ripristino del sistema dal dmg, ma ho il sospetto che dovrebbe funzionare, il mio obiettivo era più per archiviare le modifiche incrementali della macchina del tempo e mantenere la struttura del collegamento duro.

Ho anche provato rsync e cp, ma non sembravano mantenere la struttura del collegamento duro che avrebbe finito per fare x volte la dimensione, x era la quantità di date che avevi in passato. Questo metodo ha funzionato bene, ma potrebbe non ottenere la velocità di una soluzione di copia a blocchi.

    
risposta data 14.07.2014 - 16:37
fonte
0

Apple ha un tutorial ufficiale per questo .

    
risposta data 12.12.2014 - 13:59
fonte
-1

rsync è una grande utilità per cose come questa. Generalmente lo uso per cose come questa. In questo caso potrei usare i flag -aP. Penso che parte di -a ("archivio") sia anche per preservare permessi, ACL e simili, ma non ne sono sicuro.

IIRC, c'è anche un'opzione --delete che consente di cancellare il file sorgente una volta che è stato copiato con successo nella destinazione. Sarei diffidente nell'usarlo - di solito faccio un mirror completo senza l'opzione --delete, quindi eseguirò di nuovo il comando con le opzioni -c e --delete. -c è checksum, quindi controlla tutti i file che hai scaricato rispetto a tutti quelli presenti nella fonte tramite checksum, quindi elimina la sorgente se c'è una corrispondenza, altrimenti copia nuovamente o riprende la copia a seconda dei casi.

    
risposta data 01.01.2012 - 19:12
fonte
-1

Con i dischi rigidi, quando si spostano più file da un'unità, il lettore si muove avanti e indietro facendo un rumore di clic spaventoso e rallenta notevolmente la velocità di trasferimento, ad esempio un file con USB 2.0 si sposta a 30 mbps sul mio computer da 2 hard disk esterni, ma 2 file si muovono a 11 mbps. e 3 file si muovono a 6 Mbps. ecc. ecc. i file zip si sposteranno più velocemente dei file.

    
risposta data 18.07.2013 - 22:50
fonte

Leggi altre domande sui tag