Linuxword Global
当前位置: 软件下载 > MultiPar,大文件备份与传输必备

MultiPar 是一款奇偶效验文件工具(Parchive tool),用来为文件、文件夹创建校验块,当文件损坏时,只要损坏占比小于创建时的冗余度,就可以完全恢复源文件。非常适合在大文件备份、传输大量数据时使用,以节省时间。@Appinn

multipar-parchive-tool.jpgo_

MultiPar – 创建冗余校验块,恢复受损文件

MultiPar 可以为文件/文件夹创建校验块,在原文件损坏时,只要损坏占比小于创建时的冗余度,就可以完全恢复源文件。

背景、原理和应用场景

在网络上下载资源时,验证文件的校验和(checksum)是一个好习惯,不仅能避免从恶意来源下载到假冒的文件,也可以及早发现文件在传输过程中出现的错误。但校验和不一致只能告诉我们文件的完整性被破坏了,除了重新下载一次,似乎也没有什么其他选项(尽管有时不一致的可能只是几个 bit)。

WinRAR 中的“恢复记录”功能,为这个烦人的问题提出了一种简单的解决方案。只需要把文件打包成 RAR,勾上“启用恢复记录”,再设定下冗余度参数,得到的文件就会自带校验数据。即使传输过程中出了错,也可以用校验数据恢复。

“恢复记录”实际上是基于 Reed–Solomon 码实现的。通过这种编码方式,可以将原始数据分成 N 块,再计算 M 个校验块。发生文件损坏时,只要损坏块数小于校验块数量,就可以将原数据恢复。敏锐的读者会问,如果校验块损坏了呢?但不用担心,损坏的校验块也可以用原始数据的完好部分和其他完好的校验块重建。(注:这里对算法细节有较大简化)

可以想到,除了快速重建损坏的下载文件,校验块在许多其他场景下也有用途。日常生活中的一个常见备份策略是将文件复制多份,但即使是本地的文件传输也有可能出现比特翻转,导致副本和源文件不一致。对于如音频、视频这类文件来说可能还好,最多影响一两帧的播放,但其他对文件完整性要求极高的情况下(例如游戏存档),这个问题可能尤为致命。而如果先创建校验块,再同时复制原文件和校验块,就能极大减少因复制过程中出错导致副本不可用的可能性。

RAR 是个闭源格式,而开源世界中也早有开发者基于 Reed–Solomon 码实现了具有相同功能的开源存档格式: Parchive。本次介绍的 MultiPar 就是Windows 平台的一个 Parchive 创建工具。

MultiPar : Parchive tool

项目地址:Github

适用:

  • 备份、下载场景
  • 幅度较小的文件破坏

不适用:

  • 大规模文件修改(例如视频重编码)

演示

假设我有一个文件夹,里面有一些十分重要的文件:

cf49c898efd89a13705e48709dad00035fa22100

打开 MultiPar 将文件拖入,创建校验块。这里选择了 20% 的冗余度,也可以根据自己的需要调整。(图中可以看到,原始文件总共有 2038 个分块,本次会创建 408 个校验块)

651e270e2014b62132bd9a110c5a1a1f0471f722

完成后,文件夹下会多出校验块文件。(其中第一个较小的是索引/目录文件,第二个较大的是真正的校验块文件。依据设置可能会有多个。)

d02ff32bd611dbbba44f6cf00a31edf9906aef7a

现在对文件进行一些破坏:

  1. 用记事本打开视频,随机删除一小段。(模拟传输过程中的不稳定)
  2. 用 PowerPoint 打开文档,删除一页幻灯片。(模拟手残)
  3. 打开压缩包,删除压缩包中的一个文件夹。(模拟手残)
  4. 重命名照片文件。(模拟无心之失)

随便点击一个 .par2 文件,打开 MultiPar,尝试进行文件恢复。

可以看到前 3 个文件被标记为破损(文件内容变更,影响完整性),最后一个被标记为缺失(重命名后的文件显示“文件名不对应”)。下方显示“可以用 22 个分块进行恢复”,而我们总共一共有 408 个校验块,因此可以正常恢复。

f2ffe1c36916408002d5d1b9902418acfd070ba6

点击右下角修复按钮,所有文件恢复如初。(3 个被破坏的文件显示“修复成功”,最后一个被重命名的文件显示“还原成功”)


说起来,虽然青小蛙如今下载文件很少遇到类似情况了,但也不是没有过。尤其上 GB 尺寸的文件,下载后打不开这种事情,也是遇到一次就烦恼一次了。

而对于重要文件,比如想要把数据打大包后压缩备份,那拥有冗余校验块无疑会在关键时刻节约大量时间与精力。

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2334 篇
  • 草稿数目: 12 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 5988 个
  • 注册用户: 139 人
  • 访问总量: 8,655,357 次
  • 最近更新: 2024年4月27日