以下是我要尝试避免的情况:
- 今天是 2024 年 11 月 11 日。我的 Mac 的 SSD 一切正常(我希望……)。我从 Mac 备份到 NAS。
- 时间继续流逝……
- 现在“今天”是 2025 年 6 月 1 日。我从 Mac 向 NAS 做了新的备份。但我不知道的是,Mac 上的同一个文件已经因为降级而损坏,现在 Mac 的 SSD 中的损坏版本已经覆盖了 NAS 上的“OK”版本。“OK”版本丢失了,现在我有两个损坏版本的副本。
— https://en.wikipedia.org/wiki/Data_degradation
是否有可能避免这种情况?工作流程应该是什么?
系统也无法意识到数据已损坏。不幸的是,Apple 的 APFS不保留数据校验和(您的 NAS 可能使用 ZFS 或 Btrfs,它们会保留)。因此,您需要自行维护这些校验和 - 找到一个可以为所有照片生成 sha1sum 或 xxhash 的工具并将其放入文件中;将其配置为增量工作(即为新文件生成哈希值,但永远不会为“已知”文件重新生成哈希值);然后在备份之前验证这些哈希值,并在导入照片的任何地方生成新哈希值。
不要使用“每季度复制并粘贴一次整个文件夹”作为备份系统。存在各种“重复数据删除”备份系统(例如 Borg、Restic),其工作方式与 Git 类似,随着时间的推移保留许多快照,其中相同的数据仅存储一次。(Apple 的 Time Machine 类似,但我认为它不太符合要求。)
由于此类工具中的重复数据删除是基于存储数据的哈希值而不是文件名,因此这也意味着不相同的数据(例如突然损坏的文件)将被单独存储并且永远不会覆盖以前存储的不同版本,这意味着您不需要在备份频率上妥协 - 例如即使您每天运行备份作业,拥有这些旧快照仍然可以让您有几周或几个月的时间重新运行前面提到的手动 sha1 / hash 检查并注意损坏情况。