如何强制Time Machine深度遍历?


12

在几次内核崩溃和意外拔出Firewire Time Machine驱动器后,我想确保Time Machine与Macintosh HD完全匹配,就像rsync -a。有没有一种方法可以强迫Time Machine进行深入遍历以检查备份是否匹配?

知道如何在Leopard,Snow Leopard和Lion上执行此操作将很有用。


一个额外的安全(但耗时又昂贵的价格)选项是启动新的备份磁盘。
Thilo 2012年

Answers:


7

将Time Machine目的地设置为空,然后将其重新设置为与以前相同的位置,这对我来说是一次深度遍历。您可以尝试在更改目的地和重新添加目的地之间重新引导,以增加触发深度遍历的机会。

最坏的情况是,当系统认为该目录不正确时,我们可以在安全的时间以单用户模式破坏fseventsd目录,因此您强制使用了一个不匹配的新数据库。您可能可以从TM端删除此文件,但是我将删除引导副本,因为它在安全性和安全性方面都较小,不容易破坏所需的数据或弄乱您的备份。

如果您倾向于使用命令行/终端,那么我将tmutil compare在您开始进行深度遍历之前先进行介绍。它显式比较当前存在的事物与上一个快照,如果您担心要比较本地快照,可以通过指定特定的外部快照来强制事物。


如何将Time Machine目的地设置为空?tmutil setdestination需要一个路径作为参数,不是吗?(或者我猜只是选择备份磁盘,然后单击“删除磁盘”以取消选择它?)我陷入了可怕的境地。每当我尝试备份时,Time Machine都会创建一个新备份(我先删除它,然后再删除旧的备份),所以我想强制其执行深度遍历,以便看到实际上大多数文件自上次以来都没有更改。备份。
加里

好的,所以我只使用了Time Machine界面并单击“删除磁盘”,然后重新添加了它。我仍然没有深入的遍历。我之所以知道这一点,是因为“准备备份”阶段花费了12分钟,而昨天我确实花了120分钟才能完成一次深度遍历,这正是我现在想要的,但是无法弄清楚该怎么做。
加里

1

以单用户模式引导可能会导致深度遍历。它为我做了一次,但后来没有。删除/.fseventsd肯定会。在单用户模式下执行此操作应该是安全的。在备份卷上删除/.fseventd 并不会触发我的深入遍历。(我的系统继续正常运行,甚至从未重新创建它。)

tmutil compare只是有点准确。似乎可以准确地识别出最初没有备份的文件。我触发了一次遍历以更正此错误,但是Time Machine仍未备份许多文件。但是tmutil compare现在声称这没有问题。我会相信:

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

使用/Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/作为源或目标路径。--itemize-changes让我们看看有什么不同;'--checksum'指示rsync实际比较文件内容,而不仅仅是修改时间和文件大小;并--dry-run告诉rsync不实际备份(所以它只是告诉我们它将做什么)。其余参数是标志,告诉rsync在所有方面都使目标与源相同,包括元数据和HFS压缩状态。我相信Time Machine会添加簿记元数据,还原时会删除它,因此rsync可能会发现虚假的元数据更改。


1

至少为macOS 10.13.6的简短答案:

  1. 从备份卷中删除所有.inProgress备份。这可能需要root使用,/bin/rm -rf因此请谨慎操作

  2. 使用tmutil associatedisk命令将备份卷重新绑定到主卷。例如:

sudo tmutil relatedisk -a /“ /卷/时间机器备份/Backups.backupdb/Macintosh HD /最新/ Macintosh HD”

然后从“ Time Machine”菜单项开始备份。以我为例,该扫描并没有花10分钟(显然不是完整扫描)完成扫描并显示要备份的TB数据,而是接管了30多个备份,并且备份大小与tmutil compare之前所说的相符。

背景:

流氓安装程序(Reallusion)更改了“ / Users / Shared”中所有内容的权限(大约1 TB的其他未修改文件)后,我需要强制进行深度遍历/完全扫描。我把它们全部改回来了,并tmutil确认时间机器不再需要备份那些文件,但是两个备份磁盘之一坚持使用表示确实可以的某些缓存扫描。

事情并没有工作:

  • 从系统偏好设置中删除并重新添加备份卷

  • 清除/.fseventsd

  • 安装系统更新

  • 删除.inProgress备份而不运行 tmutil associated disk

  • tmutil associated disk不删除.inProgress的情况下运行

  • 引导到单用户模式,挂载/读写,并触摸文件

在大多数情况下,备份的日志声称会进行深度遍历,但是只需要几分钟,然后尝试备份所有内容。这是backupd稍后在10.13上实时监视的命令:

日志流--style syslog --predicate'senderImagePath contains [cd]“ TimeMachine”'--info

那只会显示事件。要记录最近三天的日志:

日志显示--style syslog-谓词'senderImagePath contains [cd]“ TimeMachine”'--info --last 3d

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.