一、拆开安装包之前,先核对了一遍哈希
昨天下午六点二十左右,我在书房把一台 2016 年的 ThinkPad T460 摊开,电源插上,系统是当天中午刚重装完的 Windows 10 22H2,干净得有点陌生。之所以折腾这台旧机器,是因为我打算把三年来散在两块移动硬盘里的图库资料集中到一处,而安装49tk图库这个动作,是这套整理工作里绕不开的第一步。我习惯在动手前先花十分钟做一件看起来有点笨的事:把安装包从下载目录复制到桌面上的一个独立文件夹里,再用 certutil 算一遍 SHA-256,和官方发布页上那串字符逐位对照。这次对得很顺利,前 16 位完全一致,说明包没有在下载中被截断。这个动作我坚持了四年,起因是有一次在图书馆的公共网络上,我下载的一个安装器被替换成了十几 KB 的空壳文件,文件名一模一样,那次之后我再没省略过校验。
二、周航那句「先别急着重装」
真正让我卡住的不是安装本身,而是安装之前的那次只读检查。晚上十一点零八分,我给周航打了个电话——他是我本科同学,在一家做政务系统的公司干运维,脾气很好,被我半夜打扰也不恼。他听完我的描述后只说了句「先别急着重装,你把旧目录的配置文件导一份出来看看」,然后我们就用命令行逐层扫了一遍。结果在 AppData 的一个子目录里,发现了一个 2024 年 9 月留下的配置文件残骸,里面有一条指向上世纪式的相对路径,让新装程序一直认为图库已经存在,于是跳过了初始化步骤。这个坑很隐蔽,如果不是他这句提醒,我大概会像前两次那样,装到一半以为程序坏了,然后重启、重装、再重启,把整个晚上耗进去。四十分钟之后这个问题被解决,我把那条路径改成了绝对路径,程序第一次正常走完了初始化流程,屏幕上出现图库目录结构的那一刻,我看了一眼手表,十一点四十七分。
三、索引比对,一个不擅长被忽略的细节
装完之后,我做的第一件事不是打开图库欣赏,而是把旧硬盘里的索引文件和新建索引做了字段级比对。这是一个很容易被跳过、但一旦跳过就会在半个月后付出代价的步骤:安装49tk图库本身并不会自动识别你过去的分类逻辑,它只是建立一套默认结构,如果你有旧数据,就必须手动把旧索引里的分类号、标签、时间戳映射过去。我的旧索引文件一共 2134 个,按月份分十六个目录,命名规则在 2025 年 3 月改过一次,改的时候没有留变更日志——这是整件事里最麻烦的部分。我用 Python 写了个小脚本,批量提取文件名里的日期段,再按新旧两套规则分别解析,跑完 2134 个文件用了 7 分钟,其中有 61 个文件因为命名不合法被跳过,我后来逐个手工确认,发现是当时手动拖拽产生的重复副本。关于这类索引与权限的关系,我在之前那篇讲权限的记录里写过一部分,这里不再重复。
四、我的一点偏见
说实话,我认为「先备份再安装」这句话被重复得太多,以至于很多人已经把它当成一句口号,而不是一个需要逐项执行的动作。备份的对象到底是什么,备份到什么位置,备份之后如何验证可恢复——这三件事里,我认为第三件最重要,也最常被省略。一个没有验证过可恢复性的备份,本质上只是一种心理安慰。这次我在安装之前,特意从旧索引文件里随机抽了 20 个,逐一在新环境里还原并打开,确认无误之后才开始正式安装。这个动作花了我不到十五分钟,但它让我在后来遇到那 61 个异常文件时完全不慌,因为我知道哪些是真正丢失的,哪些只是命名重复。安装49tk图库的过程本身没什么可写的,真正值得记录的是安装前后这些笨功夫,它们决定了你半年后还能不能找到那张照片。