我刚刚发现了一款非常棒的工具,名为 par2。它可以为我想要的任何文件生成错误纠正块,并在以后使用这些块来恢复损坏的数据。我开始怀疑 par2 生成的恢复块文件本身是否存在冗余?也就是说,par2 是否会在尝试纠正目标数据文件上的位错误之前识别出其自身恢复文件上的损坏?这些 par 文件的损坏如何影响数据恢复过程,这种方式是否存在冗余?
答案1
每个 PAR2 文件包含 0 个或多个恢复数据块。每个块都有一个校验和。只使用好的块。
(一组文件中的第一个 PAR2 文件通常没有任何块。它只包含有关整个文件集的元数据。)
此外,PAR2 文件还包含实际数据文件中块的校验和。这就是 PAR 程序确定数据文件中哪些块需要修复的方式。
您可以在 par2 文件规范中阅读相关内容。尽管计算 PAR 数据的实际算法非常复杂,但文件格式本身相当简单。
(几年前,我编写了自己的 PAR 文件解析器,只是为了好玩。)
请注意:尝试多参数。它是目前速度最快的 PAR2 软件(也可以使用 GPU 加速),并且仍然由 PAR 的发明者 Yutaka Sawada 积极开发。