验证 Time Machine 备份

验证 Time Machine 备份

我正在为 Snow Leopard 升级准备系统,并且做好了最坏情况的准备:完全重新安装和恢复。

我想验证我的 Time Machine 备份是否有效,并且能够正确恢复。我的 Time Machine 备份发送到运行 Netatalk 的 Linux 服务器,备份成功完成。

如何进行测试还原到其他位置,或者在不覆盖任何现有文件的情况下验证我的数据?如果我必须从头开始重新安装,是否需要在外部保存任何特定内容以确保可以访问备份?

答案1

Time Machine 没有任何内置机制来验证一组备份是否有效。这是 Time Machine 的一个问题,它面向消费者而非企业...

在磁盘实用程序中执行磁盘修复不会验证 Time Machine 备份数据,但会验证备份磁盘的结构和完整性。(当然,Disk Warrior 以互补的方式进行验证/修复)。

我认为验证备份中的数据的唯一方法是进行完整恢复。

请注意,您可以打开控制台日志,并根据 BACKUPD 进行过滤,查看备份期间发生的情况,并查看是否发生任何错误情况。

编辑:

如果您按住选项键并单击 Time Machine 菜单栏插件,Time Machine 确实包含一个选项“验证备份”。

这不会验证备份的内容。换句话说,备份文件 abcd.txt 与 abcd.txt 相同,而是验证磁盘映像的时间机器数据没有损坏。

看一眼http://support.apple.com/kb/HT4076

答案2

最后,Time Machine 备份是每个备份日期的文件夹集合。每个文件夹都包含该日期存在的所有†文件。因此,您可以将所有这些文件的名称和内容与 Mac 上的名称和内容进行比较。

当然,许多文件只需使用 Mac 即可更改。因此,结果需要一些常识来解释。最好的选择是关闭所有正在运行的应用程序,运行 Time Machine,然后立即进行比较。

连接备份磁盘后,在终端中使用以下命令查找差异。对于cd以下命令,您可能需要使用Tab 命令行完成而不是仅仅粘贴第一行:

cd /Volumes/Backup*/Backups.backupdb/*/Latest/*/
echo "备份磁盘上的当前文件夹:$(pwd -P)"
sudo diff -qr . / 2>&1 | tee $HOME/timemachine-diff.log

这会将当前文件夹(即最新备份)与 Mac 的根目录进行比较。它会在屏幕上显示结果,同时还会将这些结果捕获到timemachine-diff.log主文件夹中的文件中。

上述操作将运行很长时间(数小时,甚至数天),因此为了进行测试,您可以先限制到特定文件夹。例如您的桌面:

cd /Volumes/Backup*/Backups.backupdb/*/Latest/*/$HOME/Desktop
echo "备份磁盘上的当前文件夹:$(pwd -P)"
sudo diff -qr . $HOME/Desktop 2>&1 | tee $HOME/timemachine-diff.log

如果没有输出,则没有区别。为了进行测试,只需重命名桌面上的文件,这将为您提供“只有在 。”原始名称(仅在您的备份中)和“仅限于 /Users/用户名/Desktop”新名称(不在备份中)。

笔记:

  • 通过网络备份时,您可能会使用稀疏束。只需双击该稀疏包文件即可在运行上述命令之前将其挂载。完成后,右键单击并弹出它。

  • 有些文件是设计为排除的,有些软件可能会自行排除,并且 FileVault 文件夹仅在您首次注销时才会写入备份。请参阅苹果的 Time Machine 应用程序真的可以复制所有内容吗?

  • 要查看(最新)备份中写入的内容,请参阅时间追踪器(GUI)或时间狗(命令行)。请注意,即使以管理员用户身份运行,有时也需要以 root 身份运行这些程序才能查看所有文件。请参阅如何从另一台计算机的 Time Machine 备份中检索文件?求助。

  • 日志消息不仅写入控制台(在应用程序、实用程序中;过滤backupd,或使用时光机伙伴),但不同的日志消息也保存在.Backup.log备份磁盘本身的隐藏文件中,该文件位于具有备份日期的文件夹中。另请参阅时间机器在做什么?由于服务器故障。

  • 自从10.6.3我注意到 Time Machine 中有一个“正在验证备份...”阶段,后面跟着“正在准备 51,959 个项目...”,然后才是“正在备份”。控制台提到“正在运行备份验证”、“仅快速检查;文件系统已清理”和“备份验证已通过!”

    我不知道验证是起什么作用。或许它正在将备份与当前磁盘内容进行比较:当我的 Mac 上只有大约 3.5 GB 的可用磁盘空间时,我注意到“CopyHFSMeta 达到了低磁盘空间阈值”,显然它正在将大量数据复制回我的 Mac?然后是“CopyHFSMeta 期间跳过备份验证”、“启动卷上没有足够的空间来完成备份验证”和错误的“用户跳过备份验证!”而我确实不是我自己跳过这个。这些消息只出现在日志中;对用户没有任何提示,备份完成时没有任何警告。

  • Apple 提供了名为关于“Time Machine 已完成对您的备份的验证。为了提高可靠性,Time Machine 必须为您创建新的备份。”在那篇文章中,手动验证备份磁盘的步骤仅检查磁盘映像的物理状况,而不会将其内容与 Mac 的磁盘进行比较。所以我猜那个错误与备份无关内容都不是。那篇文章中有一段奇怪的引言:

    注意:请勿使用磁盘工具修复磁盘映像。

Time Machine 使用硬链接,这使得每个备份看起来都包含所有文件。请参阅详细的技术说明在 Ars Technica

答案3

按照 Mac OS X 10.6.4,您可以通过按住 Option 键并单击菜单栏中的 Time Machine 图标来启动备份验证。

我不确定具体验证了什么,但是当我这样做时,Time Machine 建议我开始新的备份以提高可靠性。

进一步阅读:Apple 知识库文章

答案4

您可以尝试 Mac 实用程序(应用程序->实用程序)中的一个应用程序:迁移助手。使用此工具,您可以使用一个选项将信息从备份 Time Machine 传输到本地计算机。

另一种方法是使用此工具将 Time-machine 上的 Mac 安装到 HD 上的另一个虚拟 Mac。我还没有尝试过。不确定是否可以使用 OSX 制作虚拟盒。

相关内容