W skrócie: Przygotowywanie kopii zapasowej to Time Machine ustalający, co się zmieniło od ostatniego razu. Zwykle odczytuje to z dziennika zmian, który prowadzi system. Gdy ten dziennik jest nieużywalny, przechodzi przez każdy plik na dysku, i to jest różnica między czterdziestoma sekundami a czterema godzinami.
Polecenie w następnej sekcji powie Ci, który z dwóch przypadków zachodzi, więc nie musisz zgadywać.
Zanim skopiuje choć jeden bajt, Time Machine musi zdecydować, co kopiować. macOS prowadzi bieżący dziennik zmian systemu plików o nazwie FSEvents, a w dobrym przypadku Time Machine pyta ten dziennik o wszystko, co zmieniło się od ostatniej kopii, co trwa sekundy nawet na pełnym dysku.
W złym przypadku ten dziennik nie potrafi odpowiedzieć. Wtedy Time Machine wraca do głębokiego skanowania, czyli porównuje każdy plik źródła z ostatnią kopią, jeden po drugim. Na Macu z milionem plików, w większości malutkich, to godziny pracy, zanim cokolwiek zostanie skopiowane. Pasek postępu nic Ci o tym nie mówi. W obu przypadkach pisze „Przygotowywanie kopii zapasowej”.
Dwa polecenia. Żadne niczego nie zmienia.
tmutil status
Szukaj Percent i BytesCopied. W prawdziwej fazie przygotowania oba stoją na zerze, i tak ma być. Potrzebny Ci jest dziennik, który mówi wprost, którą drogą poszedł:
log show --predicate 'subsystem == "com.apple.TimeMachine"' --last 1h --info | grep -i -E "deep|event|scan|prepar"
Wiersz z Deep event scan lub event database is not usable to odpowiedź. Skanuje wszystko. Wiersz o czytaniu zdarzeń i niewielkiej liczbie ścieżek oznacza, że dziennik zmian zadziałał, a wolne jest coś innego.
Żeby zamiast tego oglądać na żywo i zatrzymać przez Control-C:
log stream --predicate 'subsystem == "com.apple.TimeMachine"' --info
Bez wcześniejszej kopii do porównania czytany jest cały dysk. Kilka godzin to norma dla pełnego dysku przez USB, a przez Wi-Fi znacznie dłużej. Aktualizacja macOS też unieważnia dziennik zmian, więc pierwsza kopia po niej to z definicji głębokie skanowanie. Podłącz, zostaw na noc i sprawdź rano, zanim zrobisz cokolwiek innego.
To częsty przypadek na Macu, który działa od dłuższego czasu. Nieczyste wyłączenie, pełny dysk lub naprawiony wolumin mogą zostawić FSEvents nieużywalnym, a potem każda kopia to głębokie skanowanie, dopóki coś go nie odbuduje. Kopia nadal działa. Po prostu za każdym razem kosztuje godziny.
Restart w wielu przypadkach odbudowuje dziennik dla woluminu startowego i to najtańsza rzecz do wypróbowania.
Przerwana kopia zostawia w miejscu docelowym folder z końcówką .inProgress. Time Machine próbuje go uzgodnić, zanim zacznie coś nowego, a w miejscu sieciowym to uzgadnianie może trwać dłużej niż sama kopia. Zajrzyj na dysk kopii, do Backups.backupdb na dysku HFS+ lub do własnego folderu woluminu na APFS.
Usunięcie folderu .inProgress wyrzuca niedokończoną kopię i nic więcej. Każda ukończona kopia to osobny folder i nie jest ruszana. Przenieś go do Kosza w Finderze, opróżnij Kosz i uruchom kopię ręcznie.
Głębokie skanowanie zależy od liczby plików, nie od ich rozmiaru. Jeden plik wideo 40 GB to jedno porównanie. Katalog node_modules 40 GB to może być dwa miliony. DerivedData z Xcode, pamięci podręczne npm i yarn, obrazy Dockera, cellar Homebrew i biblioteka Steam to zwykli podejrzani, a każde z nich da się odtworzyć.
Wyklucz je w Ustawieniach systemowych, Ogólne, Time Machine, Opcje. To skraca zarówno skanowanie, jak i kopiowanie, i nie kosztuje Cię niczego, czego kiedykolwiek chciałbyś z powrotem.
Time Machine zapisuje obraz dysku na NAS lub udostępnionym Macu, a każde z tych porównań plików idzie przez sieć. Przez Wi-Fi, na drugim końcu domu, dokładne skanowanie może trwać dobę. Przenieś Maca obok routera albo użyj Ethernetu i sprawdź, czy ta sama kopia skończy się w godzinę.
Jeśli w ogóle się nie kończy, problemem jest raczej sam udział, a weryfikacja to sposób, by sprawdzić, czy to, co już tam jest, da się odczytać.
.inProgress. Time Machine można bezpiecznie zatrzymać z menu na pasku menu albo poleceniem tmutil stopbackup.Przygotowywanie kopii zapasowej to status, i to ten sam status, czy zadanie skończy się za minutę, czy nigdy. Liczba, której naprawdę potrzebujesz, to czas zakończenia ostatniej udanej kopii, a Time Machine chowa ją w menu, które trzeba otworzyć.
Copy Shelter pokazuje na głównym ekranie wiek ostatniej ukończonej kopii i odzywa się po siedmiu dniach bez niej. Podczas pracy podaje też fazę i plik, nad którym pracuje, więc długie zadanie wygląda na długie, a zawieszone wygląda na zawieszone.
A gdy kopia się kończy, to, że się skończyła, jest stwierdzeniem o kopii, której nikt nie sprawdził. Copy Shelter odczytuje ją z zapisanymi hashami według harmonogramu, więc o kopii, której po cichu nie da się już odczytać, dowiadujesz się w zwykły wtorek.
Od kilku sekund do paru minut, gdy dziennik zmian działa, bez względu na rozmiar dysku. Godziny, gdy wrócił do głębokiego skanowania. Polecenie dziennika powyżej mówi, który przypadek masz, i to jedyny pewny sposób, by to wiedzieć.
Tak. W tej fazie nic jeszcze nie zostało zapisane. Zatrzymaj to z menu Time Machine na pasku menu albo uruchom tmutil stopbackup. Ryzykowne jest wymuszenie zamknięcia lub wyjęcie dysku w fazie kopiowania, i to zostawia folder .inProgress.
Tylko jeśli wykluczysz coś niezastąpionego. Pamięci podręczne, katalogi kompilacji, foldery menedżerów pakietów i pobrane biblioteki gier da się odbudować z internetu. Poradnik Co kopiować na Macu przechodzi przez tę listę.
Wtedy skanuje źródło i jeszcze nic nie zapisuje. Dysk zaczyna pracować w fazie kopiowania. Jeśli godzina wyjścia dziennika nie pokazuje nic z podsystemu TimeMachine, sam proces mógł się zawiesić, a następnym krokiem jest restart.
Ma do wykonania to samo zadanie i te same dwa sposoby, więc pierwsze uruchomienie czyta wszystko. Różnica polega na tym, że mówi, w której fazie jest i nad czym pracuje, a wynik na głównym ekranie liczy ostatnią kopię, która się zakończyła, a nigdy tę, która się zaczęła.
Zobacz też: Time Machine mówi, że brakuje miejsca, gdy kopia przestaje działać i nic nie mówi i Copy Shelter i Time Machine w porównaniu.