Jak wymusić głębokie przejście wehikułu czasu?

12

Po kilku panikach jądra i przypadkowym odłączeniu dysku Firewire Time Machine na gorąco chciałbym się upewnić, że mój Time Machine dokładnie pasuje do mojego Macintosha HD rsync -a. Czy istnieje sposób zmuszenia Time Machine do wykonania głębokiego przejścia w celu sprawdzenia, czy kopia zapasowa pasuje?

Przydałoby się wiedzieć, jak to zrobić w Leopardzie, Snow Leopardzie i Lwie.

Blair Zajac
źródło
Wyjątkowo bezpieczną (ale czasochłonną i nieco droższą) opcją byłoby uruchomienie nowego dysku z kopią zapasową.
Thilo

Odpowiedzi:

7

Ustawienie celu Wehikułu Czasu na nic, a następnie ponowne ustawienie go w tym samym miejscu, co przedtem, wymusza dla mnie głębokie przejście. Możesz spróbować zrestartować komputer między zmianą miejsca docelowego a ponownym dodaniem go, aby zwiększyć szansę na wywołanie głębokiego przejścia.

W najgorszym przypadku możemy zepsuć się w trybie pojedynczego użytkownika, aby zniszczyć katalog fseventd w bezpiecznym czasie, gdy system nie liczy na to, że jest poprawny, więc wymusiłeś nową bazę danych, która nie pasuje. Prawdopodobnie możesz to usunąć ze strony TM, ale usunę kopię rozruchową jako nieco bezpieczniejszą i mniej podatną na niszczenie potrzebnych danych lub zepsucie kopii zapasowej.

Jeśli masz skłonność do korzystania z linii poleceń / terminala, zacznę od tego, tmutil comparezanim zaczniesz wymuszać głębokie przejście. Wyraźnie porównuje rzeczy takie, jakie są obecnie, z ostatnią migawką i możesz wymusić to, określając konkretną zewnętrzną migawkę, jeśli martwisz się porównywaniem lokalnej migawki.

bmike
źródło
Jak ustawić cel Time Machine na nic? tmutil setdestinationwymaga ścieżki jako argumentu, prawda? (Czy chyba po prostu wybierz dysk kopii zapasowej, a następnie naciśnij „Usuń dysk”, aby go odznaczyć?) Utknąłem w okropnej pozycji. Time Machine tworzy nową kopię zapasową za każdym razem, gdy próbuję wykonać kopię zapasową (anuluję ją przed usunięciem moich starych kopii zapasowych), więc chcę zmusić ją do wykonania głębokiego przejścia, aby upewnić się, że większość plików nie zmieniła się od czasu ostatniej utworzyć kopię zapasową.
Gary
Okej, więc właśnie użyłem interfejsu Time Machine i nacisnąłem „Usuń dysk”, a następnie dodałem go ponownie. Nadal nie mam głębokiego przejścia. Wiem o tym, ponieważ faza „Przygotowywania kopii zapasowej” zajęła 12 minut, a wczoraj wykonałem głębokie przejście, gdy zajęło to 120 minut, czego dokładnie teraz chcę, ale nie jestem w stanie wymyślić, jak to zrobić.
Gary,
1

Ładowanie w trybie pojedynczego użytkownika może spowodować głębokie przejście. Zrobiło to dla mnie raz, ale nie później. Usunięcie /.fseventd na pewno to zrobi. Powinno być to bezpieczne w trybie pojedynczego użytkownika. Usunięcie /.fseventd na woluminie kopii zapasowej nie wywołało dla mnie głębokiego przejścia. (Mój system działał normalnie i nigdy go nie odtworzył.)

tmutil comparejest tylko dość dokładne. Wydawało się, że dokładnie identyfikuje pliki, których kopia zapasowa początkowo nie została utworzona. Wywołałem głębokie przejście, aby to naprawić, ale Time Machine wciąż nie tworzy kopii zapasowych wielu plików. tmutil compareTeraz jednak twierdzi, że nie ma problemu. Ufałbym:

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

Użyj /Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/jako ścieżki źródłowej lub docelowej. --itemize-changespozwala nam zobaczyć, co jest inne; „--checksum” mówi, rsyncaby faktycznie porównać zawartość pliku, a nie tylko czasy modyfikacji i rozmiar pliku; i --dry-runmówi rsync, aby nie tworzył kopii zapasowej (więc mówi nam tylko, co by zrobił). Pozostałe argumenty to flagi informujące rsync, aby pod każdym względem uczynił miejsce docelowe identycznym ze źródłem, w tym metadanymi i stanem kompresji HFS. Uważam, że Time Machine dodaje metadane księgowości, które usuwa podczas przywracania, więc rsyncmogą znaleźć fałszywe zmiany metadanych.

yig
źródło
1

Krótka odpowiedź dla co najmniej macOS 10.13.6:

  1. Usuń dowolną kopię zapasową .inProgress z woluminu kopii zapasowej. Może to wymagać użycia root, /bin/rm -rfwięc postępuj ostrożnie .

  2. Użyj tmutil associatediskpolecenia, aby ponownie powiązać wolumin kopii zapasowej z woluminem głównym. Na przykład:

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

Następnie rozpocznij tworzenie kopii zapasowej z pozycji menu Time Machine. W moim przypadku zamiast dokończyć skanowanie w ciągu 10 minut (najwyraźniej nie pełny skan) i pokazać terabajt do wykonania kopii zapasowej, skan zajął ponad 30, a rozmiar kopii zapasowej był zgodny z tym, co tmutil comparepowiedziałem.

Tło:

Musiałem wymusić głębokie przejście / pełne skanowanie po tym, jak nieuczciwy instalator (Reallusion) zmienił uprawnienia do wszystkiego w „/ Users / Shared” (około 1 terabajta niemodyfikowanych plików). Zmieniłem je wszystkie z powrotem i tmutilpotwierdziłem, że wehikuł czasu nie musi już tworzyć kopii zapasowej tych plików, ale jeden z dwóch dysków z kopiami zapasowymi nalegał na użycie skanu z pamięci podręcznej, który to powiedział.

Rzeczy, które nie działały:

  • Usuwanie i ponowne dodawanie woluminu kopii zapasowej z preferencji systemowych

  • Usuwanie /.fseventd

  • Instalowanie aktualizacji systemu

  • Usuwanie kopii zapasowej .inProgress bez uruchamiania tmutil associated disk

  • Uruchamianie tmutil associated diskbez usuwania .inProgress

  • Uruchamianie w trybie pojedynczego użytkownika, montowanie / jako odczyt-zapis i dotykanie pliku

W większości przypadków kopie zapasowe dzienników twierdzą, że wykonują głębokie przejście, ale zajmie to tylko kilka minut, a następnie spróbują wykonać kopię zapasową wszystkiego. Oto polecenie monitorowania backupdna żywo w 10.13 później:

strumień dziennika - style syslog --predicate 'senderImagePath zawiera [cd] „TimeMachine” ”- informacje

To pokaże tylko nowe wydarzenia. Do dzienników z ostatnich trzech dni:

log show - style syslog --predicate 'senderImagePath zawiera [cd] „TimeMachine” ”--info --last 3d

Seth Noble
źródło