用 Library Doctor 修复损坏的 JW Library 备份
JW Library 不肯还原你的 .jwlibrary 文件?Library Doctor 会在你的浏览器里扫描这个备份,修复常见问题,并生成一个能正常还原的干净副本。
一个还原不了的备份,不一定就是一个已经丢了笔记的备份。人们口中「损坏」的文件,大多结构完好,只是因为某个可修复的原因被拒绝,或者是在传输中受损、换一份新的就好了。在给这个文件判死刑之前,值得先把各种原因过一遍。
有时候 JW Library 会拒绝一个备份文件——还原失败、报错,或者文件根本打不开。常见原因有:下载中断、云盘把文件搞坏了、扩展名在传输途中被改掉,或者多年使用中积累下来的内部不一致。
JW Sync 内置了 Library Doctor:一个检查工具,它扫描 .jwlibrary 文件并修复常见问题——完全在你的浏览器里进行,文件绝不离开你的设备。
分步操作
打开 JW Sync,载入有问题的文件
去 jwsync.org,载入那个还原不了的 .jwlibrary 文件。(如果文件到手时被改名成了 .zip,先改回 .jwlibrary——光是这一步就能解决不少情况。)
运行 Library Doctor 扫描
Doctor 会检查备份的内部结构,并用大白话列出它发现的一切——从无害的小毛病到真正的损坏。
应用修复
点一下就修好所有可修的地方。Doctor 绝不改动你的原始文件;它生成的是一个清理过的副本,原件原封不动地留着当退路。
下载并还原修复后的文件
在 JW Library 里通过备份和还原 → 还原,把清理过的 .jwlibrary 装回去。
每次合并时 Doctor 也会跑一遍
同样的检查会在合并引擎内部自动运行,所以合并出来的备份始终是干净的——哪怕其中一个输入文件有你从来不知道的问题。
当一个文件真的修不好了
如果文件被截断得太厉害,数据根本就不在里面,那么任何工具都变不出来。Doctor 会老老实实告诉你,而不是生成一个可疑的文件——那就是去邮件、Drive 或 iCloud 里翻找更早副本的信号,这也是为什么留着旧备份是值得的。
「损坏」通常意味着什么
实际上很少是数据本身坏了。常见的原因是文件在传输中被截断——上传失败或者聊天应用压缩了它——或者压缩包完好但里面存在应用不接受的内部不一致。因为 .jwlibrary 文件是一个包着 SQLite 数据库的 ZIP,两层里的任何一层都可能出问题,而它们需要不同的处理。被截断的文件修不好,只能重新弄一份;不一致的数据库通常修得好。
一次扫描到底检查了什么
扫描会确认压缩包打得开,userData.db 是一个能读、能通过完整性检查的 SQLite 数据库,表结构符合 JW Library 的预期,以及清单文件和它所描述的数据库彼此吻合——包括应用用来确认文件未被改动的那个哈希值。清单与数据库对不上,是一个技术上完好的备份在还原时被拒绝的最常见原因之一,而且修起来很直接。
孤立的记录行通常无害
扫描一个真实的备份,常常会报出一些指向已不存在之物的记录行——比如一处标注指着一个已经挪走的出版物位置。JW Library 自己做的备份里动辄有几百条这种东西,还原起来毫无怨言。它们是出版物随时间更新的正常结果,不是损坏的证据,清不清掉都不影响文件能不能用。
从一个还原不了的文件里抢救笔记
即使一个备份修不到 JW Library 肯接受的程度,里面的笔记往往仍然读得出来。在浏览器里打开这个文件,你可以直接看到并复制笔记正文,这就把一个用不了的文件变成了抢救回来的研读材料。如果你还有另一个较旧、能正常还原的备份,从损坏文件里读出来的内容可以跟它汇到一起,而不必重新打一遍。
还原失败但没有明确报错时
JW Library 经常在拒绝一个文件时不解释原因。最常见的几种情况是:清单里的哈希值与它所描述的数据库对不上;文件在传输中被截断;或者备份是由比你要还原进去的那个版本更新的应用写出来的。第一种修得好,第二种需要从原始来源重新取一次文件,第三种在还原前把应用更新一下就解决了。
下次怎么避免
大多数损坏发生在传输途中。请把备份当作文件来搬,而不要经过任何可能重新压缩它的东西,优先用云端存储、AirDrop 或数据线,少用聊天应用。传完之后确认文件大小和原件一致——比你发出去的明显小一截,就说明被截断了,而任何修复都变不回从未到达的字节。
如果什么办法都不行
一个修不好的文件仍然可能读得出来,而读得出来往往就够了——即便 JW Library 拒绝这个文件,笔记正文还是能直接取回。把它和任何一个能正常还原的旧备份合起来,你通常还是能保住书库的大部分。在断定一个文件没救之前,先打开它,看看里面究竟有什么。
常见问题
- 扫描时我的数据会被上传吗?
- 不会。扫描、修复和导出全都在浏览器本地运行。
- 它能找回我在 JW Library 里删掉的笔记吗?
- 不能——它修的是文件结构。在做备份之前就已经在应用里删掉的笔记,本来就不在文件里,也就无从找回。
- 修复文件会丢掉笔记吗?
- 修复是在副本上进行的,处理的是结构问题而不是内容。你的原始文件绝不会被改动,所以随时可以推倒重来。
- 我的备份为什么会损坏?
- 最常见的是文件在传输中被改动了——经过某个压缩或截断了它的应用,或者上传没有完成。从原始来源重新传一次通常就能解决。
- 扫描能找回我在 JW Library 里删掉的笔记吗?
- 不能。一旦在应用里删掉并做了新备份,那条笔记在这个文件里就没有了。删除之前做的旧备份里仍然会有。
- 能从文件大小看出它是不是被截断了吗?
- 常常可以。如果原件还在,拿来比一比;明显短了一截就说明传输没有完成。
- 能在浏览器里打开的备份,就一定能还原吗?
- 不能保证,但这是压缩包和数据库都完好的有力信号,最常见的几种失败也就排除了。