Answers:
这是另一个论坛(我不知道的原始海报)的答案:
Time Machine的“准备”阶段通常很快,因为Time Machine使用文件系统活动的日志来了解在哪里可以找到需要备份的更改。
但是您可以采取一些措施使该日志不可信。当Time Machine发现日志MIGHT无效时,它将对您的文件系统进行全面扫描,以确定真正需要备份的内容。这可能需要一段时间。在我的Powerbook(以及带火线的外部Time Machine驱动器)上,它可能会导致持续20分钟的“准备”阶段。如果让Time Machine继续运行,它将最终确定真正需要添加到备份磁盘的内容并将继续。当然,这比仅仅赌博日志正确或再次备份所有内容要好,即使实际上只有几个文件已更改(这将花费更长的时间并占用更多的Time Machine磁盘空间)。
在Leopard安装的初期,您可以执行的最常见的操作之一就是从Leopard安装DVD进行引导,这会使日志不可信。每次执行此操作时,Time Machine下次运行时,都会发现您的硬盘驱动器MIGHT已修改,但更改未反映在日志中。因此,它会进行全面扫描-一个漫长的“准备”阶段-以确保它能正确处理。
为了赞扬基恩司令的回答,我建议深入阅读Earthling Soft的《时光机》。另外,更多信息通过备份记录到system.log中(这将说明准备状态为何如此之长)。
要轻松查看backupd
日志,请查看Time Machine Buddy小部件。另请注意,备份磁盘本身上还有另一个日志,位于.Backup.log
每个备份文件夹中的隐藏文件中。除了backupd
日志以外,这还提供了其他信息。
请注意,日志通常会显示似乎不匹配的数字:
无需备份前精简:请求821.4 MB(包括填充)[..] 从Macintosh HD卷复制了1630个文件(3.8 MB)。
以上,实际复制的文件少于最初预测的文件。由于Time Machine依赖于仅报告更改目录的FSEvent,因此我假设在上面的示例中,这些目录在文件中总共拥有821.4 MB。在实际复制文件时,Time Machine然后将硬盘上已更改的目录与备份进行比较,发现实际上仅3.8 MB的文件已更改。
要查看已写入备份的内容,请参阅TimeTracker(GUI)或timedog(命令行)。请注意,即使以管理员用户身份运行,有时也需要以root用户身份运行这些程序才能查看所有文件。当不这样做时,例如,这些工具可能不考虑MySQL日志和数据的备份,该备份由group wheel中的_mysql拥有:
cd“ /卷/ XX的备份/Backups.backupdb/XX/最新的” sudo ls -l“ Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86” [..] drwxr-x --- @@ 6 _mysql wheel 374 Jul 2 20:05数据
在这些情况下,这两种工具将(无提示)报告的总备份大小和文件数量少于backupd
控制台中的日志。因此,如果数字与日志不匹配,则对于TimeTracker:
须藤〜/ Downloads / TimeTracker.app / Contents / MacOS / TimeTracker
同样,对于timedog:
cd“ /卷/ XX的备份/Backups.backupdb/XX” 须藤〜/下载/时间狗
要轻松找到硬盘上的大文件,请参阅“ 磁盘清单X”。该程序与Time Machine无关,但可能有助于调查问题,例如,当您想知道为什么备份比硬盘上使用的空间小得多时。请注意,此程序在其窗口标题中报告的总磁盘空间可能总比在其屏幕上可以选择要调查的磁盘的屏幕要少(即使以root身份运行并选择菜单“查看,显示物理文件大小”)。但是,如果报告的总大小确实比Mac上实际使用的总大小小很多,则可能有助于以root用户身份运行:
sudo“ $ HOME / Downloads /磁盘清单X.app/Contents/MacOS/磁盘清单X”
为了从备份中删除文件(例如,如果您偶然发现Time Machine实际上正在备份一些大文件,例如失控的MySQL日志文件),Apple写道:
是否要删除以前备份的文件或文件夹的所有实例?很简单。启动Time Machine,选择要删除的项目,然后从Finder工具栏的操作菜单中选择“从所有备份中删除”。
现在,如果您要删除的那些文件仅对根目录可见,那么您也应该以根目录调用“ Enter Time Machine”。这就要求Finder首先以root身份启动:
须藤/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
这看起来像是普通的Finder,但是您会注意到Finder侧边栏中主文件夹图标旁边的root。现在,例如,使用Shift-Cmd-G(菜单转到,转到文件夹)进入,/usr/local
并找到要从备份磁盘删除文件的文件夹。接下来,输入Time Machine(并再次确认根目录显示在主文件夹图标旁边),然后按照Apple的说明进行操作。从备份中删除文件后,请在终端中按Ctrl-C以停止根查找器。(我还需要注销Mac,因为远程磁盘无法正确卸载。)
如果您使用的是稀疏捆绑包(例如在网络上使用备份时),则不会自动回收任何释放的空间(或:直到需要该空间时才回收)。要强制执行此操作,请参阅如何在OS X上从稀疏包中回收所有/大部分可用空间。这不仅适用于您手动删除的文件,而且还适用于在备份后精简过程中Time Machine每小时或每天备份到期的Time Machine删除的文件。
当磁盘空间用尽时,Time Machine实际上会压缩稀疏包本身。但是,似乎它可能会在备份前的细化过程中首先删除一些旧的备份,因此,如果您曾经删除过一些大文件,或者如果过期的备份中可能包含大文件,则手动压缩可能是明智的选择:
开始备份前间期精简:请求53.57 GB(包括填充), 可用9.90 GB 不存在过期的备份-删除最旧的备份以腾出空间 删除备份/卷/ XX的备份/Backups.backupdb/XX/2007-12-20-172543: 现在提供9.90 GB 删除的备份/卷/ XX的备份/Backups.backupdb/XX/2007-12-31-005523: 现在提供9.90 GB 删除了2个备份:最早的备份现在是2008年1月8日 停止备份。 备份已取消。 弹出的Time Machine磁盘映像。 压缩备份磁盘映像以恢复可用空间 完成备份磁盘映像压缩 开始标准备份 [..] 开始备份前间期精简:请求53.57 GB(包括填充), 可用12.75 GB
非常感谢Adam Cohen-Rose进行了上述测试;看到他的博客了解更多详情!
com.apple.metadata:com_apple_backup_excludeItem
在其文件上设置扩展属性,某些软件可能会将其自身从Time Machine备份中排除。像前1.1.2版本的VMware Fusion:blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html参见10.5:显示文件的Time Machine不备份在macosxhints.com/article。 php?story = 20080328025026826(包含指向time Machine排除项的链接),位于shiftedbits.org/2007/10/31/time-machine-exclusions
当卡在“准备中”(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# 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
这表明它正在做某事-请耐心等待...
fseventsd
以查看“ / Volumes / ..中的事件日志与卷不同步。销毁旧日志。” 新创建的日志还将具有新的标识符,该标识符将不再与备份中存储的ID匹配。这告诉Time Machine将您的硬盘与上次备份进行比较。如果使用多个备份磁盘,则如果fseventsd
创建了新日志,则Time Machine最终将为每个备份磁盘运行一个“事件存储UUID不匹配”。