Come forzare una traversata profonda di Time Machine?


12

Dopo un po 'di panico nel kernel e uno scollegamento accidentale accidentale della mia unità Firewire Time Machine, mi piacerebbe assicurarmi che Time Machine corrisponda esattamente al mio Macintosh HD, proprio come rsync -a. Esiste un modo per forzare Time Machine a eseguire un attraversamento profondo per verificare che il backup corrisponda?

Sapere come farlo su Leopard, Snow Leopard e Lion sarebbe utile.


Un'opzione extra-sicura (ma che richiede tempo e denaro) sarebbe quella di avviare un nuovo disco di backup.
Thilo,

Risposte:


7

L'impostazione della destinazione Time Machine su nulla e quindi la sua reimpostazione nella stessa posizione di prima impone una traversata profonda per me. Potresti provare a riavviare tra il cambio di destinazione e il ri-aggiunta per aumentare la possibilità di innescare un attraversamento profondo.

Nel peggiore dei casi, potremmo andare in giro in modalità utente singolo per distruggere la directory fseventsd in un momento sicuro quando il sistema non conta su di essa per essere corretto, quindi hai forzato un nuovo database che non corrisponderà. Potresti presumibilmente eliminarlo dal lato TM, ma rimuoverei la copia di avvio come leggermente più sicura e meno soggetta a distruggere i dati di cui hai bisogno o rovinare il backup.

Se sei propenso a usare la riga di comando / terminale, inizierei tmutil compareprima ancora di te a forzare un attraversamento profondo. Confronta esplicitamente le cose così come sono ora con l'ultima istantanea e puoi forzare le cose specificando una specifica istantanea esterna se sei preoccupato del confronto di un'istantanea locale.


Come si imposta la destinazione Time Machine su niente? tmutil setdestinationrichiede un percorso come argomento, vero? (O suppongo che sia sufficiente selezionare il disco di backup, quindi premere "Rimuovi disco" per deselezionarlo?) Sono bloccato in una posizione terribile. Time Machine sta creando un nuovo backup ogni volta che provo a eseguire il backup (lo annullo prima che elimini i miei vecchi backup), quindi voglio costringerlo a eseguire un attraversamento profondo in modo da vedere che la maggior parte dei file non è cambiata dall'ultimo di backup.
Gary,

Bene, quindi ho appena usato l'interfaccia di Time Machine e ho premuto "Rimuovi disco", quindi l'ho aggiunta di nuovo. Non riesco ancora ad attraversare in profondità. Lo so perché la fase "Preparazione del backup" ha richiesto 12 minuti, quando ieri ho effettivamente eseguito un attraversamento profondo quando ci sono voluti 120 minuti per completarlo, che è esattamente quello che voglio ora ma non sono in grado di capire come farlo.
Gary,

1

L'avvio in modalità utente singolo può causare un attraversamento profondo. Lo ha fatto per me una volta, ma non i tempi successivi. L'eliminazione di /.fseventsd lo farà sicuramente. Dovrebbe essere sicuro farlo in modalità utente singolo. L'eliminazione di /.fseventd sul volume di backup non ha innescato un attraversamento profondo per me. (Il mio sistema è continuato normalmente e non lo ha nemmeno ricreato.)

tmutil compareè solo un po 'preciso. Sembrava identificare con precisione i file di cui non era stato eseguito il backup all'inizio. Ho attivato una traversata profonda per correggere questo problema, ma Time Machine non sta ancora eseguendo il backup di molti file. Eppure tmutil compareora afferma che non c'è nessun problema. Mi fiderei:

rsync --dry-run --itemize-changes --checksum --protect-args -aNHAXx --protect-decmpfs --fileflags --force-change --delete path/to/source_dir/ path/to/destination_dir/

Utilizzare /Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/come percorso di origine o destinazione. --itemize-changesvediamo cosa è diverso; '--checksum' dice rsyncdi confrontare effettivamente il contenuto del file, piuttosto che solo i tempi di modifica e la dimensione del file; e --dry-rundice a rsync di non fare il backup (quindi ci dice cosa farebbe). Il resto degli argomenti sono flag che indicano a rsync di rendere la destinazione identica alla fonte in ogni modo, inclusi i metadati e lo stato di compressione HFS. Credo che Time Machine aggiunga metadati contabili che rimuove durante il ripristino, quindi rsyncpotrebbe trovare cambiamenti spuri nei metadati.


1

Risposta breve per almeno macOS 10.13.6:

  1. Rimuovere qualsiasi backup .inProgress dal volume di backup. Ciò può richiedere l'utilizzo di root, /bin/rm -rfquindi procedere con cautela .

  2. Utilizzare il tmutil associatediskcomando per ricollegare il volume di backup al volume principale. Per esempio:

sudo tmutil associateisk -a / "/ Volumes / Time Machine Backups / Backups.backupdb / Macintosh HD / Latest / Macintosh HD"

Quindi avvia un backup dalla voce di menu Time Machine. Nel mio caso, invece di terminare la scansione in 10 minuti (chiaramente non una scansione completa) e mostrare un terabyte per il backup, la scansione ha richiesto oltre 30 e le dimensioni del backup corrispondevano a quanto tmutil comparedetto.

Sfondo:

Avevo bisogno di forzare un attraversamento profondo / scansione completa dopo che un programma di installazione non autorizzato (Reallusion) ha cambiato le autorizzazioni su tutto in "/ Users / Shared" (circa 1 terabyte di file altrimenti non modificati). Li ho cambiati tutti indietro e ho tmutilconfermato che la macchina del tempo non aveva più bisogno di eseguire il backup di quei file, ma uno dei due dischi di backup ha insistito sull'uso di una scansione cache che diceva di sì.

Cose che non hanno funzionato:

  • Rimuovere e aggiungere nuovamente il volume di backup dalle preferenze di sistema

  • Cancellare /.fseventsd

  • Installazione di un aggiornamento del sistema

  • Rimozione del backup .inProgress senza esecuzione tmutil associated disk

  • In esecuzione tmutil associated disksenza rimuovere .inProgress

  • Avvio in modalità utente singolo, montaggio / come lettura / scrittura e toccando un file

Nella maggior parte dei casi, i log di backupd affermano di fare un attraversamento profondo, ma impiegano solo pochi minuti e quindi tentano di eseguire il backup di tutto. Ecco il comando per monitorare in backupddiretta su 10.13 in un secondo momento:

log stream --style syslog --predicate 'senderImagePath contiene [cd] "TimeMachine"' --info

Ciò mostrerà solo nuovi eventi. Per accedere dagli ultimi tre giorni:

log show --style syslog --predicate 'senderImagePath contiene [cd] "TimeMachine"' --info --last 3d

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.