如何让 Time Machine 进行新的完整备份而不丢失旧版本的备份文件?
详细:
我正在使用 OS X(Snow Leopard)上的 Time Machine 备份将整个计算机备份到外部驱动器。我特别喜欢“历史记录”,即允许您恢复文件旧版本的功能。
问题:我的外部备份驱动器上有一些数据损坏,我用系统工具修复了它,它发现了一些故障。我让磁盘工具修复了外部驱动器。之后,外部驱动器就没问题了,我可以再次使用 Time Machine。
我让 Time Machine 再做一次备份。
现在我根据 验证 Time Machine 备份,
即沿着
sudo diff -qr . $HOME/Desktop 2>&1 | tee $HOME/timemachine-diff.log
但是:执行上述命令后,报告了几个差异和丢失的文件,总共约 200 个文件。
虽然一些丢失的文件是缓存或排除的目录,但差异确实困扰着我,特别是当我的一些重要文件被列为不同时。
我如何确保外部驱动器上的数据正确同步?
是否可以使用 Time Machine 进行全新备份而不丢失历史记录?
或者让 Time Machine 比较所有文件的差异并重写所有不同的文件?
或者我可以在那些不匹配的文件上设置一些标志,以便再次复制它们吗?(就像 Windows/Dos 中的存档标志一样)。我宁愿不碰这些文件,因为我想保留上次更改的日期/创建日期)
谢谢你的想法!
答案1
时间机器使用FS事件告诉哪些目录中的文件在一段时间后被添加、更改或删除。(有一个很好的Ars Technica 的解释)即使以某种方式强制 OS X 重建 FSEvents 数据库,我思考Time Machine 仍然只会考虑上次备份日期之后发生的更改。我认为它只是假设所有旧备份都是有效的,并丢弃旧文件,因为它假设它已经复制了它们。
即使 FSEvents 告诉 Time Machine某物文件夹中的内容已发生改变,非常有深度的文章Quarter Life Crisis 声称:
如果两个文件的路径、日期和大小相同,Time Machine 就会认为它们是相同的。
因此,修改文件而不更改文件大小或日期,Time Machine 就不会注意到文件更改。但也许这仅适用于将上次备份与磁盘上的当前状态进行比较。如果您在上次备份中根本看不到文件,那么 Time Machine 也无法将当前文件与上次备份进行比较。或者,如果文件夹很长时间没有更改,那么 Time Machine 将完全跳过它。所以,或许你只需要让 Time Machine 处理该文件的文件夹再次。只需将文件添加到同一文件夹并将其删除,这会将该文件夹的名称添加到 FSEvents 数据库中。然后,当 Time Machine 运行时,它肯定会知道该文件夹需要处理。如果它只查看创建的文件后上次备份,那么这对您没有帮助。但也许它确实会检查该文件夹中每个文件的存在,因此最终将丢失的文件复制到备份中。试一试。
如果只是戳文件夹不起作用,那么你只能更改文件日期。如果你同意,那么touch
命令可以这样做:
touch my-file