昨天下午四点二十,我在书房地板上把那块 2019 年买的 2TB 移动硬盘插上,听见它转起来的那一声轻响,才决定把这件事写下来。硬盘里有一个叫 archive_2019 的目录,目录树展开到第三层的时候,我在 /data/thumb/ 下面看到 4,127 个缩略图文件,命名规则是 t_ 加六位数字,而资料中心现在报错的那批记录,文件名格式是七位数字加下划线后缀。两种命名同时存在,说明这个资料中心至少经历过一次结构迁移,而迁移时的映射表没有完整保留下来——这是我这半个月里最有价值的一个发现,比任何一次成功恢复都让我兴奋,因为它解释了为什么有些条目怎么修都修不回来。
具体说这个过程。3 月 18 日晚上,老陈在微信上发给我一张 1200×1600 的缩略图,附了一句「你看看这张的 EXIF」。我把图存到桌面,用 exiftool 读出来拍摄时间是 2018-11-07 14:22,而资料中心页面上这条记录标称的上传日期是 11 月 18 日。十一天的差距不算大,但方向很重要:缩略图早于记录存在,意味着图库本体曾经独立于元数据运行过一段时间。老陈是我在本地一个摄影资料整理小组里认识的人,做档案出身,他看问题的角度一向是先看文件的物理痕迹再看数据库,这次他又对了。我随后检查了另外 60 张缩略图,其中 41 张的 EXIF 时间都早于记录日期,比例高到不像巧合。
沿着这条线,我把恢复流程重新排了顺序。原先的做法是先重建索引,再从远端拉取缩略图,参考的是 恢复49图库资料版 里那套常规思路。但我改成先按物理文件的时间戳重建缩略图层,再让索引去对齐它,连续跑了四轮,成功率从 31% 提到 62% 左右,四轮波动都在 ±3% 以内。这个数字我不敢说有多权威,样本只有四个批次、合计不到 900 条,但它至少是可复现的。顺便提一句,香港正版资料图库 的接口版本停在 3.7.2,返回字段里没有 cover_hash,这一点反而帮了我:它逼着我承认缩略图恢复只能靠本地缓存,不能指望远端给我对账依据。
再说索引。3 月 25 日凌晨一点四十,我打开浏览器缓存目录,文件名是 8 位十六进制散列,和资料中心的索引表完全对不上。我逐条拆了 137 个文件名,最后确认差异出在时间戳精度:缓存写到毫秒,索引表只存到秒。这个差异在单条记录上毫无影响,但批量比对时会制造大量假阳性,我前三天判定的「损坏记录」里,至少有三分之一其实只是精度不同。这一点我是从 浏览器打开免费网站 的缓存策略说明里得到启发的,它把缓存键的构成写得比较细,我照着改了自己的比对脚本,误报立刻降下来。也是在这时候我翻出 49图库app安卓版下载方法 里提到的 2019 年旧版安装包,18.4MB,解包后在 assets 目录里找到一份 schema_v2.json,里面明确写着早期目录是三层结构,比现在少一层。这就是那块拼图。
坦白讲,我对现在流行的「一键恢复」叙事是有保留意见的。这类工具把恢复包装成按一个按钮的事,实际跑起来,它们做的事和我手工做的一样:重建索引、对齐缩略图、补分类映射,只是把中间状态藏起来了。而中间状态恰恰是最有价值的东西。我宁愿要一个能让我看见 400 多条映射缺失、能让我手工补完的过程,也不要一个显示「已修复 98%」但说不清那 2% 去哪了的黑箱。这个观点在小组里引起过争论,有位朋友说我这是把工程问题做成了考据,我不否认,但我认为资料恢复本来就是一半工程一半考据,丢掉任何一半都会在某个环节栽跟头。参考 17库恢复正常使用免费打开17图库93463 的修复日志,它用的「先校验后写入」流程我也搬过来了,第一次跑就抓出 23 条损坏记录,效率比手工高出一个量级。
还有一个旁证我一直没想通。翻 观看浏览器历史记录 的时候,我发现 2 月 14 日到 2 月 21 日之间有 9 次访问,间隔精确到 7 分 30 秒,像是定时脚本在探测。而这段时间正好是资料中心开始报错的日子。我不敢下结论说两者有因果,但这个时间上的重合值得记一笔。另外,从 澳门49图库官方入口 进去看到的分类树只有 6 个顶层级,比网页版少两个,而少的那两个恰好是我恢复过程中丢失记录最多的两个分类——这个对应关系我还在核实,暂时不写进结论。49629浏览器打开49629 c 里提到绕开主索引直接读分片清单的办法,我也试了,代价是要手工补 400 多条分类映射,但换来了一个完全可复现的中间状态,对写记录来说非常划算。
盘一下手头已经确定的东西:缩略图的物理时间戳是可信的,索引的时间精度需要归一化,2019 年的 schema 是三层而现在是四层,迁移映射表缺失是大部分顽固错误的根因。不确定的东西也摆出来:分类树缺失与顶层级减少是否同源,定时探测和故障起始时间是否相关,以及那 2% 反复修不回来的记录到底卡在哪个字段。我把这份记录写在这里,是想让后来接手的人少走我走过的三天弯路,而不是给一个已经收尾的结论。硬盘还插在电脑上,风扇声很轻,目录树我留着没关,明天接着往下拆。