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


15

Sto cercando di spostare i miei file di backup della macchina del tempo in Backups.backupdb su un'altra unità. Ho avviato una copia del file durante la notte (in b / c ho visto che OSX ha impiegato un'eternità a prepararsi per la copia ... fondamentalmente contava i file per ore). Al mattino ho visto che solo alcuni backup (cartelle con date) venivano copiati. Ho quindi provato a copiare quelli che non venivano copiati ... ma il sistema operativo non mi avrebbe permesso di farlo. Ho ricevuto ed errore che "Impossibile completare l'operazione 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 di nuovo sulla cartella Backups.backupdb.

Abbastanza frustrante. Esiste un modo più veloce per copiare questi file tramite un comando terminale in modo che non esegua tutto il prep di conteggio dei file?

Probabilmente posso caricare l'intera cartella e quindi fare una copia, ma ciò interferirà con le autorizzazioni dei file, ecc.? L'unica cosa con questo approccio è che non ho più spazio sul mio volume di origine per il tar.

AGGIORNARE

Ho provato alcuni dei metodi che le persone hanno suggerito di seguito, in particolare utilizzando la funzione di ripristino di Utility Disco e mi sta dando alcuni messaggi di errore e risultati imprevisti (almeno per me). Ho provato a fare il ripristino in due modi:

  • Con "Cancella destinazione" selezionato: Ogni volta (ho provato due volte), al termine del ripristino vedo il 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 di origine ... anche le dimensioni. Il mio disco di destinazione è in realtà 1 TB, ma dopo il ripristino, viene visualizzato come 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:

    Dimensione nodo B-tree non valida
    Verifica del volume Journaled HFS Plus.
    Dimensione nodo B-tree non valida
    Riparazione volume completata.
    Aggiornamento delle partizioni di supporto di avvio per il volume come richiesto.
    Errore: Utility Disco non è in grado di riparare questo disco. Eseguire il backup del maggior numero possibile di file, riformattare il disco e ripristinare i file di backup.

Non so se suppongo nemmeno di verificare / riparare un disco TM ...

  • Con "Cancella destinazione" deselezionato: il ripristino non si avvia mai e ottengo:
    Impossibile ripristinare - Operazione non consentita


2
Penso che questo vada bene - l'altra domanda affronta il carico di I / O della copia dei collegamenti reali ma è racchiusa nella rete e nell'involucro della capsula del tempo, quindi è un caso speciale del problema generale posto qui.
bmike

Se riesci ad eseguire l'aggiornamento a MacOS 10.13.4+, il bug che impediva la copia su alias / hard link nel Finder è stato corretto. Ho provato io stesso a copiare un disco di Time Machine di backup su un altro e ha funzionato perfettamente (ed è stato anche abbastanza veloce). Maggiori informazioni qui: apple.stackexchange.com/a/323691/261070 .
youngrrrr,

Risposte:


13

Una copia normale (o copia tramite rsync o idem) non replicherà completamente una Time Machine in quanto convertirà due directory collegate tra loro (come avviene nei backup TM successivi senza modifiche tra) in due directory separate.

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


1
Dalla pagina man di idem: "idem preserva i collegamenti fisici dei file (ma non quelli della directory) presenti nelle directory dei sorgenti", quindi nessun aiuto qui. È Utility Disco o uno strumento come SuperDuper o CCC.
Nohillside

@patrix Grazie - la pagina man web non dice nulla a tale proposito - CCC usa idem o rsync per la copia, quindi lo farà solo se fa una copia di blocco help.bombich.com/kb/tro troubleshooting

Il mio disco di origine contiene solo il backup di Time Machine. Il mio disco di destinazione contiene altri file. Non voglio un clone del mio disco di origine. Voglio solo copiare i file di Time Machine sul disco di destinazione.
miglia il

3
Dopo molti tentativi di copiare i miei file TM su un nuovo disco, Disk Utility e Carbon Copy Cloner NON hanno fatto il trucco. SuperDuper lo ha fatto perfettamente al primo avvio e non ha ridotto le dimensioni della mia partizione di destinazione!
miglia il

2
Un altro voto per SuperDuper! Qui. v3.2.4 ha copiato correttamente una grande cartella di backup di Time Machine su un nuovo disco, in macOS 10.14.2 Mojave, senza occupare più spazio. (Quale Finder non poteva fare ...) Time Machine continua felicemente a usare il nuovo disco come se fosse quello vecchio.
salta il

5

Durante la migrazione di un'unità crittografata Time Machine completa da 3 TB a una nuova da 8 TB su macOS 10.14, ho riscontrato problemi di ogni genere. Tentativo 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 ricevere nuovi interessanti messaggi di errore come "Il file di catalogo su immagine / volume è troppo frammentato", ma nessuna copia.

Cosa ha funzionato alla fine, al terminal:

  1. Cancella il nuovo disco con Utility Disco, abbinando il formato dell'unità di origine: MacOS Extended (Journaled, Encrypted)
  2. Utilizzare diskutil cs listnel terminale per ottenere la dimensione esatta dei byte del volume logico sulla vecchia unità e il GUID del nuovo volume logico, nonché i numeri del disco per entrambi, ad es disk4.
  3. Utilizzare la dimensione esatta del byte dal passaggio 2 come dimensione del nuovo volume. Nel mio caso con un'unità da 3 TB sono stati 2.999.772.905.472 byte:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Utilizzando il pvcomando da homebrew, eseguire una copia di blocco di basso livello dei dischi. È un po 'come usare dd, tranne che per ottenere un indicatore di progresso con ETA.

    È necessario ottenere i numeri del disco diskutil cs listdall'output. Stai attento. È molto semplice sovrascrivere accidentalmente l'unità di backup completo con la nuova unità vuota qui.

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

    Se ricevi un'autorizzazione negata / errore operazione non consentita qui, vai in Preferenze di sicurezza e privacy e aggiungi Accesso al disco completo per Terminal.app.

    Per me ci sono volute circa 10 ore - l'ho lasciato correre durante la notte - ma, pvalmeno, ottieni un indicatore di progresso con un ETA.

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

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Questa operazione ha richiesto circa 3 ore, con circa 5 anni di backup. La maggior parte del tempo è stato dedicato a macOS fscking.

Ora puoi goderti il ​​tuo nuovo, più spazioso disco Time Machine. È possibile riutilizzare quello vecchio o riporlo in un luogo sicuro nel caso in cui accada qualcosa alla nuova unità.


Le fasi di ridimensionamento sembrano essere importanti; saltandoli si ottenne una copia del file di 10 ore che generava un volume di 8 TB contenente un file system da 3 TB che non riuscivo a capire come ridimensionare.


AGGIORNAMENTO Un potenziale svantaggio di questo approccio è che, poiché si tratta di una copia bit per bit, gli identificatori sono gli stessi tra il vecchio disco e il nuovo disco. Se collego il vecchio disco completo, Time Machine pensa che sia il nuovo disco, tenta di eseguire il backup e inizia a eliminare i vecchi backup per fare spazio a quelli nuovi. Sembra un buon approccio per spostare i dati su un disco più grande dove verrà quindi cancellato il disco più piccolo più vecchio.


Ciao Andrew! Grazie per aver dedicato del tempo a scrivere questa guida passo-passo (e spero di usarlo per trasferire il mio backup da 1 TB su un disco da 4 TB, che finora non ha avuto successo perché cartelle e file copiati da Finder occupare molto più spazio sul nuovo disco rispetto a quello originale). La mia domanda per te è: posso fare questi passaggi senza cs aka corestorage abilitato? L'abilitazione dell'archiviazione core sembra essere una PITA potenzialmente non necessaria , ma potrebbe essere necessaria a causa del passaggio guid 3.
Michael Dautermann,

@MichaelDautermann Core Storage è necessario per FileVault che è altamente raccomandato per le unità di backup, al fine di proteggere la tua privacy in caso di smarrimento, furto o smaltimento improprio.
Andrew,

Vorrei aggiungere che non sono stato in grado di copiare con il metodo menzionato. Il motivo era che il sistema ha richiesto che questa "operazione non è consentita". Dopo una breve ricerca ho scoperto che ho bisogno di disattivare tutte le funzionalità SIP. Questo può essere fatto riavviando macOS tenendo premuto il comando + R e aprendo un terminale. Qui è necessario disabilitare digitando "csrutil disable". Con il successivo riavvio sono stato in grado di copiare il backup TM
Oliver Koehler il

@andrew la mia versione è 10.14.6 e capisco perfettamente il rischio che hai citato. Tuttavia non sono stato in grado di eseguire il dd o pv del mio TimeMachine - backup senza disattivare SIP. Se c'è un altro modo che sarei felice di sentire.
Oliver Koehler

Continuo a ricevere "pv: scrittura non riuscita: errore di input / output" al 99% (dopo 30 ore, 3 tentativi - quindi in realtà 90 ore). I dischi sono smontati. Le funzioni SIP sono disabilitate. Cercare su Google l'errore non sta arrivando a nulla. Simile alla situazione originale (3 TB -> 8 TB). sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- l'8 TB è stato precedentemente ridimensionato con successoResized Core Storage Logical Volume to 3,000,249,008,128 bytes
ks

2

Perché non usare solo il terminale:

cp -RnpP Backups.backupdb
  • -R ricorsivo
  • -n non sovrascrivere (se i resti di copia esistenti rimangono dal tentativo precedente)
  • -p preservare ACL, permessi, date di creazione / mod, ecc.
  • -P preservare i collegamenti fisici, non seguire alcun collegamento reale o simbolico.

Questo non è vero. Leggi man cpper macOS. Il cpcomando normale fornito con macOS non copia i collegamenti reali con -P. La pagina man in realtà dice "Nota che cp copia i file hard-link come file separati. Se hai bisogno di conservare i collegamenti hard, considera invece di usare tar (1), cpio (1) o pax (1)."
Chmac,

0

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

  1. Utilizzando Utility disco, crea un'immagine del disco più grande della directory Backups.backupdb. Vorrei anche suggerire di utilizzare l'immagine del disco bundle sparse per Formato immagine e Disco rigido 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 usando il finder copia la cartella Backups.backupdb sull'immagine montata. Il cercatore ti chiederà le autorizzazioni di superutente per copiare i dati. Prendi un drink o fai qualcos'altro per un po '.

  3. Al termine della copia, assicurati che tutto sia a posto e smonta l'immagine. Da Utility Disco, seleziona Converti e trasforma l'immagine in bundle sparsa in un'immagine compressa. Ancora una volta, questo potrebbe richiedere del tempo.

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

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

Ho anche provato rsync e cp, ma sembra che non mantengano la struttura del collegamento reale che finirebbe per fare x volte la dimensione, x essendo la quantità di date che hai avuto in passato. Questo metodo ha funzionato bene, ma potrebbe non riuscire a ottenere la velocità di una soluzione di copia a blocchi.


0

Apple ha un tutorial ufficiale per questo: " Time Machine: come trasferire i backup da un'unità di backup corrente a una nuova unità di backup ".

I passaggi di alto livello da quella pagina:

  1. Controlla il formato della tua nuova unità di backup
  2. Imposta le autorizzazioni sulla tua nuova unità di backup
  3. Spegni temporaneamente Time Machine
  4. Copia i dati di backup dall'unità originale alla nuova unità
  5. Imposta Time Machine per utilizzare la tua nuova unità

Ecco come la pagina consiglia di eseguire il passaggio di copia:

Copia i dati di backup dall'unità originale alla nuova unità

  1. Apri una nuova finestra del Finder. Nella barra laterale del Finder, fai clic sull'icona dell'unità di backup originale.
  2. Apri una nuova finestra del Finder. Nella barra laterale del Finder, fai clic sull'icona della nuova unità di backup.
  3. Trascina la cartella "Backups.backupdb" dall'unità di backup originale al livello superiore della nuova unità di backup.
  4. Immettere un nome e una password dell'amministratore, quindi fare clic su OK per avviare il processo di copia.

La copia dei dati di backup potrebbe richiedere del tempo, a seconda delle dimensioni del backup.


5
Per prima cosa sto esaminando questa domanda perché seguendo quel tutorial (che suggerisce di copiare la cartella di backup con Finder) e lasciarlo in esecuzione durante la notte, si è concluso con un problema di autorizzazione con circa 500/940 GB copiati. Poi ho fatto l' sudo rsyncultima notte, ma stamattina ERROR: out of memory in flist_expand [sender]ho trovato e la mia copia ora è ~ 600 gb. Non ho deciso cosa fare dopo, ma sospetto che molte persone che leggono siano già a conoscenza del tutorial ufficiale.
PeterT

@PeterT Ho appena provato anche il tuto e ho avuto lo stesso problema. Non sono sicuro che qualcuno conoscesse il tutorial, altrimenti qualcuno lo avrebbe menzionato qui e il risultato sarebbe seguito. Ora, la gente sa che non vale la pena provare.
David Andreoletti,

1
L'uso di finder per copiare la cartella richiede un'età per costruire l'elenco dei file e poi fallisce comunque con spazio su disco insufficiente, quindi deve essere calcolato male.
Malhal,

1
Questo è esattamente il mio problema. Il volume TM originale è di 550 GB, quello nuovo di 600 GB. Mojave si è ancora lamentato per lo spazio insufficiente sul volume. Sto usando SuperDuper! in modalità "Backup - tutti i file".
Markus Rudel,

1
Il tutorial di Apple non è riuscito per me, in macOS Mojave 10.14.2. Ho provato a copiare un archivio di backup da 3 TB su un'unità da 8 TB; Finder impiegò quasi 5 giorni a copiare (dicendo "5 secondi rimanenti" per la maggior parte), prima di arrendersi e lamentarsi del fatto che l'unità era piena! Ed era - anche se aveva copiato solo circa 2/3 dei backup. Chiaramente, non sta preservando i collegamenti fisici ma creando nuove copie di ciascuno. Quindi questa risposta non è attualmente corretta.
fa il

0

+1 per le utilità del disco, troppo lungo per i commenti:

12.250.329 file valutati, 10.408.594 file copiati. Velocità effettiva di copia 8,68 MB / s.

per la clonazione di un'unità di backup magnetico da 2 TB con diversi anni di backup tramite SuperDuper! quest'anno.

Ciò ha richiesto 63 ore in totale (SuperDuper ha ripristinato il suo orologio ogni 24 ore, quindi alla fine ha mostrato 15:04:43) al contrario di una copia del Finder che ho annullato dopo circa 4 giorni e un quarto dei file.

Ovviamente il disco magnetico non è stato il motivo per cui ci è voluto così tanto tempo. Il motivo per cui Finder copia lo stallo su dischi di backup a esecuzione prolungata è il semplice numero di collegamenti simbolici a cascata su file invariati, specialmente per molti piccoli file come gli indici Git.


0

rsync è un'ottima utility per cose come questa. Lo uso generalmente per cose come questa. In questo caso potrei usare i flag -aP. Penso che parte di -a ("archivio") sia anche quello di preservare permessi, ACL e simili, ma non ne sono sicuro.

IIRC, c'è anche un'opzione --delete che ti permette di eliminare il file sorgente una volta che è stato correttamente copiato nella destinazione. Sarei diffidente nell'usarlo però - di solito faccio un mirror completo senza l'opzione --delete, quindi eseguirò nuovamente il comando con le opzioni -c e --delete. -c è checksum, quindi controlla tutti i file scaricati su tutti quelli presenti sul sorgente tramite checksum, quindi elimina il sorgente in caso di corrispondenza, altrimenti copia nuovamente o riprende la copia a seconda dei casi.

EDIT: si prega di utilizzare il flag -H in questo caso come da commenti, al fine di preservare i collegamenti.


5
rsync non mantiene hard link nelle directory. Copiando un po 'di backup TM si duplicheranno molte directory
nohillside

1
@patrix - Posso confermare questo. L'ho provato I collegamenti diretti alla directory sono quasi univoci per HFS + e rsync non li comprende.
Nome falso

3
-H, --hard-links preserva i collegamenti reali
Pete Ashdown il

-2

Con i dischi rigidi, quando si spostano più file da un'unità, il lettore si muove avanti e indietro facendo un rumore spaventoso facendo clic e rallenta significativamente 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 spostano a 11 mbps. e 3 file si spostano a 6 mbps. ecc. ecc. i file zip si sposteranno più velocemente dei file.


2
Come risponde alla domanda del PO?
fsb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.