验证Time Machine备份


21

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

我想验证我的Time Machine备份是否有效,并且可以正确还原。我的Time Machine备份转到运行Netatalk的Linux服务器,并且备份成功完成。

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


Answers:


14

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

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

我看到可以验证备份中数据的唯一方法是执行完全还原。

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

编辑:

如果按住Option键并单击“ Time Machine”菜单栏加载项,则Time Machine确实包含一个选项,以“验证备份”。

这不会验证备份的内容。换句话说,该备份文件abcd.txt与abcd.txt相同,相反,它验证了在计算机数据不损坏的情况下的磁盘映像。

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


并不是我真正想要的东西,但是经过更多研究,它可以准确地描述情况。消费者级备份解决方案在这方面一直很烂。我可能会长期考虑另一种解决方案。
jtimberman

1
试试SuperDuper!—可以确保已复制磁盘
tig

2
实际上,如果您单击菜单栏中的Time Machine图标,然后按“选项”,则将获得“验证备份”选项。
William Macdonald

1
我的理解是TM使用的目录和文件结构实质上是实际目录的镜像。这是否意味着假设文件系统相对安静,我们就可以使用diff来验证备份吗?
kec 2014年

1
这是错误的或过时的。时间机器的命令行界面包含“ verifychecksums”命令。目前尚不清楚这是否会作为常规备份过程的一部分偶尔运行,但似乎可以这样做。
阿比·贝克特

12

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

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

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

cd /卷/备份* / Backups.backupdb / * /最新/ * /
回声“备份磁盘上的当前文件夹:$(pwd -P)”
sudo diff -qr。/ 2>&1 | tee $ HOME / timemachine-diff.log

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

上面的代码将运行很长时间(几小时,甚至几天),因此要进行测试,您可以先限制到特定的文件夹。就像在您的台式机上一样:

cd /卷/备份* / Backups.backupdb / * /最新/ * / $ HOME /桌面
回声“备份磁盘上的当前文件夹:$(pwd -P)”
sudo diff -qr。$ HOME / Desktop 2>&1 | tee $ HOME / timemachine-diff.log

如果没有输出,那么就没有区别。为了进行测试,只需在您的桌面上重命名文件,这将使您俩都“仅在。代表原始名称(仅在备份中),“仅位于/ Users / username / Desktop中”代表新名称(不在备份中)。

笔记:

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

  • 有些文件是设计排除的,某些软件可能只是排除自身的,而FileVault文件夹仅在您首次注销时才写入备份。请参阅Apple的Time Machine应用程序是否真的可以复制所有内容?

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

  • 日志消息不仅被写入控制台(在Applications,Utilities中;在上过滤backupd,或使用Time Machine Buddy),而且不同的日志消息也被保存在.Backup.log备份磁盘本身的隐藏文件中,该文件包含备份日期。另请参阅Time Machine在做什么?服务器故障时。

  • 10.6.3开始,我注意到Time Machine中的“正在验证备份...”阶段,接着是“正在准备51,959个项目...”,然后是“备份”。控制台提到“正在运行备份验证”,“仅快速检查; FILESYSTEM CLEAN”和“已通过备份验证!”

    我不知道验证会做什么。也许它正在将备份与当前磁盘内容进行比较:当我的Mac上只有大约3.5 GB可用磁盘空间时,我注意到“ CopyHFSMeta达到磁盘空间不足的最低阈值”,因此很显然它将大量数据复制回了Mac吗?然后是“在CopyHFSMeta期间跳过备份验证”,“启动卷上的空间不足以完成备份验证”和错误的“用户跳过备份验证!”。虽然我自己没有跳过。这些消息仅在日志中找到。不会向用户发出任何指示,并且备份将完成而不会发出任何警告。

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

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

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


我想知道操作系统可能在什么情况下CopyHFSMeta(当前在hfs-191.1中)运行。
格雷厄姆·佩林

4

根据Mac OS X 10.6.4,您可以通过单击菜单栏中的Time Machine图标来启动备份验证。

我不确定要验证的内容是什么,但是当我完成验证时,Time Machine建议我开始新的备份以提高可靠性。

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


1
真好 奇怪的是OS X不能在不删除历史记录的情况下创建新的最新备份,但是也许那几天也会到来……
Arjan 2010年

1
该验证过程仅在Time Capsule上的“磁盘”映像上运行“磁盘工具”“验证”。如果您没有时间胶囊,则不会发生任何事情。它不是在验证备份数据,而只是在验证存储在其上的磁盘映像的完整性。
本杰明·肖尔尼克

@Benjamin,你能告诉我们你怎么知道吗?当MacBook上只有3.5 GB可用磁盘空间时,我刚遇到“启动卷上的空间不足,无法完成备份验证”,这以某种方式告诉我,它正在将大量数据复制回该MacBook。(备份磁盘上还有很多空间。在我的设置中,该磁盘已连接到另一台Mac,并且通过AFP无线共享,但是另一台Mac也有足够的空间。)
Arjan 2010年

@ Arjan,Time Machine不会对单个文件进行验证(例如,复制文件,验证文件以确保正确复制或未损坏)。进行最新的TM备份,更改特定文件,然后在TM菜单上单击鼠标右键,然后选择“验证备份”。它不会报告备份错误。。请参阅上面的Apple KBase文章。还有blog.fosketts.net/2010/08/11/…。Time Machine的备份周期中没有验证阶段。
本杰明·肖尔尼克

哦,真正的证明是,运行Time Machine备份验证。我有356 GB的备份,验证时间不到10秒。但是我的TM磁盘直接连接到我的系统,因此没有稀疏的磁盘映像,因此可以快速完成。
Benjamin Schollnick

2

Time Machine命令行实用程序具有执行此操作的选项:“ tmutil比较”。检查“ man tmutil”以获取所有可用的各种开关。

https://www.google.com/search?q=tmutil%20compare


请不要在答案中使用指向非静态信息(例如Google搜索结果)的链接。编辑它以包含要表达的内容的简短摘要,或者(在这种情况下)可能只是删除链接,因为搜索词非常简单。
jstarek '16

1

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

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


迁移助手->来自Time Machine并没有显示任何有用的信息。
jtimberman

0

众所周知,将Time Machine备份到基于网络的共享上比较冒险,而且充满了问题。因此,如果您确实真的不想冒升级时遇到麻烦然后再回到原先的麻烦,那么我强烈建议您暂时使用本地磁盘和诸如ShirtPocket的SuperDuper之类的工具抄袭克隆

但是,对于蛮力地验证数据,我认为最好的办法是将sparsebundle手动安装在网络驱动器上,并使用“ diff -cr”之类的简单工具来比较“针对您的系统驱动器的“最新”版本(显然,这会抛出自上次运行TimeMachine以来发生的更改)。


刚刚尝试了diff方法,它似乎不起作用...我怀疑Diff不能很好地管理硬链接?
本杰明·肖尔尼克

我不明白为什么它会迷迷糊糊。我只是在随后的两个Time Machine层次结构的一小部分中尝试了一下(“ diff -r --brief”似乎更好地工作了,它似乎还行,报告了“ Files ... different”,“ Only在...中。” 如果无法将它们解析为实际文件,则会引发一些与符号链接有关的错误。这些似乎是因为即使在源副本中实际上也存在悬挂的符号链接。
jrg

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.