简短回答:备份未通过自身的一致性检查。你的文件可能还在,但 Time Machine 不再信任历史记录,而且没有修复工具。
在接受新建备份的提议之前,先把你需要的东西从旧备份中取出来。那个提议会删除它。
Time Machine 会记录它写入的内容。验证会重新读取备份,并与该记录比对。当它说无法验证备份时,意味着两者中有一方与另一方不再一致:要么文件不在索引所说的位置,要么字节不是它写入的那些字节。
这说的是索引,通常不是你的文件。大部分数据仍在磁盘上。Time Machine 失去信心的,是它遍历历史记录、为你提供特定日期特定文件的特定版本的能力,而这正是它存在的意义。
Time Machine 备份没有 fsck。Apple 没有提供修复工具,这就是为什么每个论坛帖子的结局都一样:删掉重来。
对话框会提议开始新的备份。接受这个提议会删除你现有的一切。即使是未通过验证的备份,也很可能包含你文件的可读副本,所以在证明并非如此之前,把它当作某些东西的最后一份副本。
Backups.backupdb,然后是你的 Mac 名称,再然后是带日期的文件夹。那些都是装满普通文件的普通文件夹,你可以从中拖出文件。如果磁盘本身工作异常,动它之前先克隆一份,在克隆上操作。“磁盘工具”>“文件”>“新建映像”>“来自[你的磁盘]的映像”,并选择只读。正在损坏的驱动器每读一次就更糟,你只有一次好机会。
去找这个设置的人往往会感到意外。按住 Option 键点按菜单栏中的“时间机器”图标,会出现验证备份,但只在备份位于网络共享上时才有。在 USB 或雷雳驱动器上不会出现此选项,因为 macOS 根本不对本地磁盘运行这项检查。
所以大多数人是在 NAS 或 Time Capsule 上遇到这条消息的,而桌上放着驱动器的人都处于另一种情况:没有验证,也不会有验证失败。根本没有东西在检查。
在本地磁盘上最接近手动检查的方法是:
tmutil compare -s
它会把你的 Mac 与最新快照进行比较,并列出差异。这是比较,而不是完整性检查,在大磁盘上需要很长时间。它会告诉你备份能被读取和遍历,这比你一分钟前知道的要多。
diskutil verifyVolume /Volumes/YourBackup,并在“系统信息”的“储存”中查看 SMART 状态。有重新分配扇区的磁盘正在向你发出警告。文件取出来之后,诚实的选择很少。你可以开始新的备份,这正是 Apple 对话框所提供的,几乎每个人最后也都这么做。你失去历史记录,保住现在。或者,你可以原封不动地保留旧磁盘作为冷备份,在别处开始新的备份,这要多花一块驱动器的钱,但如果历史记录很重要,这是更好的答案。
你不该做的是关掉消息继续照常。未通过验证的备份不会自行恢复,它会在接下来几周不断报错,却什么有用的事也不做。
你之所以发现,是因为碰巧有东西去检查了。在本地磁盘上,什么都不会去检查,而第一次有人检查,就是需要这些文件的那天。
只有读回过,你才知道备份是好的。USB 驱动器上的 Time Machine、定时运行的 rsync、同步到云的文件夹都是如此。真正有用的是一个能读回副本、并在不再一致时告诉你的工具。
Copy Shelter 会按计划这样做:每个数据块都用存储时的哈希检查,不一致会作为事实报告,在它不知情时被删除的数据块会被报告为缺失。它可以写入驱动器、NAS,或你已付费的云账号中的文件夹,一个位置免费。如果你更想自己来,命令在这里。
通常不是。失败的检查针对的是备份的内部一致性,大部分数据通常仍然可读。在 Finder 中装载磁盘,打开 Backups.backupdb,在对它做任何其他操作之前,把你需要的东西拖出来。
没有。Apple 没有提供修复工具,也没有受支持的方式重建索引。这就是为什么你找到的每个答案都说从头再来,这并不是大家太早放弃。
它只对网络共享上的备份显示。按住 Option 键点按菜单栏中的“时间机器”图标。对于本地 USB 或雷雳磁盘,macOS 不提供此选项,因为它根本不对本地磁盘运行这项检查。
只有在确认硬件完好之后才可以。对它运行 diskutil verifyVolume 并检查其 SMART 状态。如果磁盘没问题,抹掉它并开始新的备份是合理的。如果有问题,坏磁盘上的新备份一个月后会以同样的方式失败。
在网络共享上:备份期间保持 NAS 和 Mac 唤醒,给稀疏捆绑包留足空间,并把备份磁盘从任何杀毒扫描中排除。更普遍地说,一份备份就是一个单点故障。在别处的第二份副本,是唯一能把这从灾难变成麻烦的东西。
它可能遇到同样的底层问题,因为磁盘和共享对每个人的故障方式都一样。区别在于你何时发现。验证按计划运行,它会指出不再一致的数据块,并把真正检查过的副本与未检查的副本区分开。
相关:如何检查备份确实可读,以及 3-2-1 规则,它其实讲的正是这样一个早晨。