陈默那份 2019 年 3 月的备份目录截图,替我补上了 imtoken最新版和老版 那段空白
陈默是我在山东路一家打印店里认识的,他手机相册里存着一张 2019 年 3 月的目录树截图,文件名前缀全是 49tk_。我拿它跟自己的备份比对了四十分钟,发现少了整整一层缩略图缓存。
那天晚上十一点四十分,我把硬盘里标着「49tuku_backup_2019」的文件夹拖进解压软件,看着进度条一格一格爬过去——这大概是我今年最兴奋的一次资料整理。下面这批文章,都是围绕「找回49图库图片」这件事写下来的线索、错题和半成品方法,按时间和主题混排。
陈默是我在山东路一家打印店里认识的,他手机相册里存着一张 2019 年 3 月的目录树截图,文件名前缀全是 49tk_。我拿它跟自己的备份比对了四十分钟,发现少了整整一层缩略图缓存。
不要迷信文件名。2019 年那批图的命名规则中途换过一次,前半段是六位数字,后半段改成日期加序号。真正稳定的是 PNG 的 IHDR 块,头 8 字节固定,CRC 校验值一旦对上,哪怕文件名被改成 DSC_0001 也能认出来。
周启明 2022 年在一次小型分享里说,图片是本体,索引只是影子。我不太同意。恰恰相反:索引能重建,原始像素丢了就是丢了,但反过来,只要索引在,缺的图往往还能循着哈希去别处捞回来。
这是我犯过最蠢的错误。当时用的是批量工具默认参数,EXIF 和 iTXt 块直接丢弃,等我想按拍摄时间重建索引时,全部变成了统一时间戳。后来花了三天从原始磁盘镜像里恢复,只救回不到六成。
林知远在合肥做嵌入式,他把脚本放在一个叫 findtk 的私有仓库里,用 os.walk 遍历,按魔数分类,输出 CSV。我改了两处:把阈值从 0.75 调到 0.9,加了断点续跑。跑满 11,406 个文件,用时 26 分 41 秒。
我在旧笔记本里翻到 2018 年 9 月 14 日的一个安装包,大小 87.3 MB,安装完成后目录结构跟后来的完全不同——图按年份分箱,没有分类索引。这条时间线目前推到了 2021 年 6 月,中间还有两段缺口待补。
这一条反直觉,但确实发生过:有 9 张图的原图彻底损坏,只剩缩略图,而缩略图里恰好保留了右下角一行极小的编号水印。放大、锐化、人工辨读,编号反推回原始索引,最终在镜像里找到了副本。
梁一舟是中学老师,业余帮人恢复老设备。他不用脚本,就开着双栏窗口一条条看,一天 600 条左右。「慢是慢,但我能记住异常长什么样,」他说,「机器只告诉你不一样,人知道为什么不一样。」
三款工具,全部宣称一键完成,实际成功率最高的一款在我这批样本上是 23.7%,最低的 4.1%。更麻烦的是其中一款在扫描过程中改写了源目录的时间戳,导致后续比对基准失效。这类工具适合救急,不适合做归档。
一行一条,四个字段:哈希前 16 位、原始路径、尺寸、来源批次。用 awk 就能查,用 diff 就能比,迁移零成本。数据库当然更强,但在这个体量上,纯文本的可读性和可移植性无可替代,我甚至把它打印了出来。
纯属巧合。我在整理自己 2020 年的聊天记录截图时,一张截图的背景里能看到当时的图库界面边缘,右上角的分类标签栏比现在多出两格。这为分类结构在 2020 年中期改版提供了直接的视觉证据。
2019 年 12 月的批次目前只找回 41%,缺的那部分大概率在另一块旧硬盘上,那块盘上次通电是 2023 年,还不确定能不能读。2020 年 4 月更麻烦,连索引都没有,只能靠同批次邻近文件的哈希分布去推测边界。