Иногда OS X говорит мне, что это «Подготовка резервной копии ...» в течение огромного количества времени. Время, которое требуется, похоже, не связано с объемом данных, подлежащих резервному копированию. То же самое для этапа «Завершение резервного копирования ...».
Вопрос: что делает OS X, когда идет «Подготовка резервной копии ...» и «Завершение резервного копирования ...»?
Я знаю, что он выясняет, что нужно резервировать, а затем записывает изменения, но, конечно, время, которое на это требуется, должно быть пропорционально количеству данных, которые изменились. На диске достаточно места (поэтому я предполагаю, что старые резервные копии не удаляются). Я использую TimeCapsule, если это имеет значение. Все в порядке, мне просто любопытно.
Вот ответ с другого форума (оригинальный плакат мне неизвестен):
Этап «подготовки» в Time Machine обычно проходит быстро, потому что Time Machine использует журнал действий файловой системы, чтобы знать, где найти изменения, для которых необходимо создать резервную копию.
Но есть способы сделать этот журнал ненадежным. Когда Time Machine обнаруживает, что журнал МОЖЕТ быть недействительным, он выполняет полное сканирование вашей файловой системы, чтобы определить, что действительно необходимо создать. Это может занять некоторое время. На моем Powerbook (и с внешним накопителем Time Machine Firewire) это может привести к этапу «подготовки», который длится 20 минут. Если вы позволите Time Machine продолжить, она, в конце концов, определит, что действительно нужно добавить на резервный диск, и продолжит работу. Это, конечно, лучше, чем просто играть в журнал правильно или просто резервировать ВСЕ заново, даже если на самом деле могли измениться только несколько файлов (что заняло бы гораздо больше времени и потребляло бы больше дискового пространства Time Machine).
В первые дни установки Leopard одна из самых распространенных вещей, которые могут сделать журнал ненадежным, - это загрузка с установочного DVD Leopard. Каждый раз, когда вы это делаете, при следующем запуске Time Machine обнаруживает, что ваш жесткий диск МОЖЕТ быть изменен без отражения изменений в журнале. Таким образом, он выполняет полное сканирование - длительный этап «подготовки» - чтобы убедиться, что все сделано правильно.
В дополнение к ответу командира Кина я рекомендую прочитать подробный обзор Машина времени пользователя Earthling Soft. Кроме того, дополнительная информация регистрируется в system.log с помощью backupd (в котором будет сказано, почему статус подготовки такой длинный и т. Д.)
Чтобы легко просмотреть backupd
журнал взгляните на Бадди из машины времени виджет. Также обратите внимание, что на самом резервном диске есть еще один журнал в скрытом файле. .Backup.log
которые можно найти в папке каждой резервной копии. Это дает некоторую другую информацию, кроме backupd
журналы.
Обратите внимание, что часто в журналах отображаются цифры, которые кажутся не совпадающими:
No pre-backup thinning needed: 821.4 MB requested (including padding) [..] Copied 1630 files (3.8 MB) from volume Macintosh HD.
Фактически копируется меньше файлов, чем предполагалось ранее. Поскольку Time Machine полагается на FSEvents который сообщает только об измененных каталогах, я предполагаю, что в приведенном выше примере эти каталоги содержали в общей сложности 821,4 МБ в файлах. Во время фактического копирования файлов Time Machine затем сравнивает измененные каталоги на жестком диске с резервной копией и обнаруживает, что фактически были изменены только файлы размером 3,8 МБ.
Чтобы увидеть, что было записано в резервную копию видеть TimeTracker (GUI) или таймер (командная строка). Обратите внимание, что даже при запуске от имени администратора, иногда эти программы необходимо запускать от имени пользователя root, чтобы увидеть все файлы. Если этого не делать, эти инструменты могут, например, не учитывать резервные копии журналов и данных MySQL, принадлежащие _mysql в группе рулевое колесо:
cd "/Volumes/Backup of XX/Backups.backupdb/XX/Latest" sudo ls -l "Macintosh HD/usr/local/mysql-5.0.51a-osx10.5-x86" [..] drwxr-x---@ 6 _mysql wheel 374 Jul 2 20:05 data
В этих случаях оба инструмента будут (незаметно) сообщать о меньшем общем размере резервной копии и меньшем количестве файлов, чем backupd
журналы в консоли. Так, если числа не совпадают с журналами, то для TimeTracker:
sudo ~/Downloads/TimeTracker.app/Contents/MacOS/TimeTracker
Аналогичным образом для Timedog:
cd "/Volumes/Backup of XX/Backups.backupdb/XX" sudo ~/Downloads/timedog
Чтобы легко находить большие файлы на жестком диске видеть Дисковая инвентаризация X. Эта программа не имеет ничего общего с Time Machine, но может помочь в исследовании проблем, например, когда вы задаетесь вопросом, почему ваша резервная копия намного меньше места, используемого на жестком диске. Обратите внимание, что эта программа, вероятно, всегда будет сообщать меньше общего дискового пространства в заголовке своего окна, чем на экране, где можно выбрать, какой диск исследовать (даже при запуске от имени пользователя root и выборе меню View, Show Physical File Size). Но если заявленный общий размер действительно намного меньше фактических итогов, используемых на вашем Mac, тогда может помочь запуск от имени пользователя root:
sudo "$HOME/Downloads/Disk Inventory X.app/Contents/MacOS/Disk Inventory X"
Чтобы удалить файлы из резервной копии (например, если вы случайно обнаружите, что Time Machine на самом деле выполняет резервное копирование некоторых огромных файлов, таких как сбойный файл журнала MySQL), Apple пишет:
Хотите удалить все экземпляры файла или папки, для которых ранее была создана резервная копия? Достаточно просто. Запустите Time Machine, выберите элемент, который нужно удалить, затем выберите «Удалить из всех резервных копий» в меню действий на панели инструментов Finder.
Сейчас, если те файлы, которые вы хотите удалить, видны только пользователю root, тогда вы также должны вызвать «Enter Time Machine» как root. И это требует, чтобы Finder сначала был запущен как root:
sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
Это похоже на обычный Finder, но вы заметите корень рядом со значком домашней папки на боковой панели Finder. Теперь используйте Shift-Cmd-G (меню «Перейти», «Перейти к папке»), чтобы перейти, например, к /usr/local
и найдите папку, из которой вы хотите удалить файлы с резервного диска. Затем введите Time Machine (и еще раз подтвердите, что корень отображается рядом со значком домашней папки) и следуйте инструкциям Apple. Когда вы закончите удаление файлов из резервной копии, нажмите Ctrl-C в Терминале, чтобы остановить root-Finder. (Мне также нужно было выйти из системы Mac, так как удаленный диск не мог отключиться должным образом.)
Если вы используете разреженный пакет (например, при использовании резервной копии в сети) тогда любое освобожденное пространство не будет восстановлено автоматически (или: пока оно не понадобится). Чтобы обеспечить это, см. Как освободить все / большую часть свободного места из разреженного набора в OS X. Это относится не только к файлам, которые вы удалили вручную, но и к файлам, удаленным Time Machine для истекших ежечасных или ежедневных резервных копий, в течение прореживание после резервного копирования.
Time Machine фактически сожмёт разреженный пакет, когда на диске закончится место. Но кажется, что он может сначала удалить некоторые старые резервные копии во время прореживание перед резервным копированием, поэтому, возможно, будет разумно выполнить сжатие вручную, если вы когда-либо удалили несколько огромных файлов или резервные копии с истекшим сроком действия могли включать огромные файлы:
Starting pre-backup thinning: 53.57 GB requested (including padding), 9.90 GB available No expired backups exist - deleting oldest backups to make room Deleted backup /Volumes/Backup of XX/Backups.backupdb/XX/2007-12-20-172543: 9.90 GB now available Deleted backup /Volumes/Backup of XX/Backups.backupdb/XX/2007-12-31-005523: 9.90 GB now available Deleted 2 backups: oldest backup is now 8 Jan 2008 Stopping backup. Backup canceled. Ejected Time Machine disk image. Compacting backup disk image to recover free space Completed backup disk image compaction Starting standard backup [..] Starting pre-backup thinning: 53.57 GB requested (including padding), 12.75 GB available
Большое спасибо Адаму Коэн-Роузу за тестирование вышеизложенного; видеть его блог Больше подробностей!
Когда застревает в "Подготовка" (ThinningPreBackup)
root# tmutil status
Backup session status:
{
BackupPhase = ThinningPreBackup;
ClientID = "com.apple.backupd";
DateOfStateChange = "2018-10-20 12:02:54 +0000";
DestinationID = "XXXXXX0A-1XB7-4X3B-A791-6XXXXX4325D89B";
DestinationMountPoint = "/Volumes/TimeMachineXXX";
Percent = "-1";
Running = 1;
Stopping = 0;
}
Используйте lsof (обязательно запускайте его как root), чтобы увидеть, к каким файлам доступны резервные копии - последний файл должен измениться:
root# ps -ef | grep backupd
0 91 1 0 9:39pm ?? 0:00.15 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -launchd
0 552 1 0 9:59pm ?? 0:49.54 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
0 1244 1156 0 10:30pm ttys003 0:00.01 grep backupd
root# lsof -p 552
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
backupd 552 root cwd DIR 1,4 1292 2 /
backupd 552 root txt REG 1,4 769168 67640888 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
backupd 552 root txt REG 1,4 26771408 67698052 /usr/share/icu/icudt59l.dat
backupd 552 root txt REG 1,4 236208 67730774 /private/var/db/timezone/tz/2018e.1.0/icutz/icutz44l.dat
backupd 552 root txt REG 1,4 841456 67695858 /usr/lib/dyld
backupd 552 root txt REG 1,4 1174183936 69140457 /private/var/db/dyld/dyld_shared_cache_x86_64
backupd 552 root 0r CHR 3,2 0t0 306 /dev/null
backupd 552 root 1u CHR 3,2 0t0 306 /dev/null
backupd 552 root 2u CHR 3,2 0t0 306 /dev/null
backupd 552 root 3w REG 1,9 686 5515544 /Volumes/TimeMachine2/Backups.backupdb/XXXXXXXXXX/2018-10-20-220254.inProgress/.Backup.561729775.162983.log
backupd 552 root 4r DIR 1,4 136 68977542 /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/English.lproj
Это означает, что он что-то делает - и проявить терпение ...