在几次内核崩溃和意外拔出Firewire Time Machine驱动器后,我想确保Time Machine与Macintosh HD完全匹配,就像rsync -a
。有没有一种方法可以强迫Time Machine进行深入遍历以检查备份是否匹配?
知道如何在Leopard,Snow Leopard和Lion上执行此操作将很有用。
在几次内核崩溃和意外拔出Firewire Time Machine驱动器后,我想确保Time Machine与Macintosh HD完全匹配,就像rsync -a
。有没有一种方法可以强迫Time Machine进行深入遍历以检查备份是否匹配?
知道如何在Leopard,Snow Leopard和Lion上执行此操作将很有用。
Answers:
将Time Machine目的地设置为空,然后将其重新设置为与以前相同的位置,这对我来说是一次深度遍历。您可以尝试在更改目的地和重新添加目的地之间重新引导,以增加触发深度遍历的机会。
最坏的情况是,当系统认为该目录不正确时,我们可以在安全的时间以单用户模式破坏fseventsd目录,因此您强制使用了一个不匹配的新数据库。您可能可以从TM端删除此文件,但是我将删除引导副本,因为它在安全性和安全性方面都较小,不容易破坏所需的数据或弄乱您的备份。
如果您倾向于使用命令行/终端,那么我将tmutil compare
在您开始进行深度遍历之前先进行介绍。它显式比较当前存在的事物与上一个快照,如果您担心要比较本地快照,可以通过指定特定的外部快照来强制事物。
tmutil setdestination
需要一个路径作为参数,不是吗?(或者我猜只是选择备份磁盘,然后单击“删除磁盘”以取消选择它?)我陷入了可怕的境地。每当我尝试备份时,Time Machine都会创建一个新备份(我先删除它,然后再删除旧的备份),所以我想强制其执行深度遍历,以便看到实际上大多数文件自上次以来都没有更改。备份。
以单用户模式引导可能会导致深度遍历。它为我做了一次,但后来没有。删除/.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
可能会发现虚假的元数据更改。
至少为macOS 10.13.6的简短答案:
从备份卷中删除所有.inProgress备份。这可能需要root使用,/bin/rm -rf
因此请谨慎操作。
使用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