使用 PAR2 为数据纠错恢复-天天视点
引:
如果你是通过搜索找到本文,请注意,本文内容不适用
于文件误删恢复、已经损坏的文件且无 PAR 2 恢复数据的情况。
1. 序
我们存放在存储、传输数据的过程中,往往可能伴随着很多不确定性,由于各方面原因,文件损坏也时有发生,特别是在某些网络存储平台显得更为常见,有的时候从 A 地将数据打包上传到网盘,从 B 地进行下载,尝试解包过程发生了数据错误,就很糟糕,例如这样:
(资料图片)
在面对这个问题的时候,第一时间想到的是某个层面上家喻户晓的 WinRAR 提供的一个功能:恢复记录,确实通过它可以对文件进行修复,而且也是一个很方便的工具,如果希望使用这个方法可以查看:这一部分内容
但不容忽视的是,WinRAR 是一个商业软件,并不是所有情况下它都可以被使用,据个人了解的所有主流压缩格式中,只有 RAR 格式是支持恢复信息的,如果不使用 RAR,那就需要其他方式来进行数据的恢复。
2. 基础概念
如果你想大概了解其原理(为什么它可以这样?),那可以看看这部分内容。
2.1. 纠错码
纠错码(ECC,error correction/correcting code)是信息传输中错误检测与纠正的工具。
查看维基百科上的纠错码词条
看不了维基百科的话也可以看看百度百科
纠错码分为两大类:分组码和卷积码。分组码适用于一连串固定长度的数据包,而每一种分组码只能用于特定长度的数据包。实际用途中的分组码一般使用硬解码方式,所需时间为每一个数据包长度的多项式时间。经典分组码的其他例子有格雷码,BCH 码,多维奇偶校验码和汉明码。卷积码适用于任意长度的位元流/符号流。接收方通常使用维特比算法将其软解码,但有时也会用其他算法。随着卷积码约束条件的长度增加,维特比解码的解码效率渐近最优;但作为代价,计算时间将以对数式增长。长度有限的卷积码也可以看作一种“分组码”,因为输入数据是成组的;但是卷积码的每一“组”长度不一,而分组码的长度是固定的,且由其特定的代数性质而定。
2.2 里德-所罗门码
本文介绍的 Par 2.0 使用的纠错码为里德-所罗门码,被广泛的应用各个领域,它是一种分组码。
里德-所罗门码是 RAID 6
的标准之一,常见的二维码中的 QR 码也采用它进行纠错,也被广泛运用在 CD、DVD、蓝光光盘的校验恢复上。
具体实现过程不在此叙述,可以问问万能的搜索引擎,看看维基百科上的词条或者百度百科上的词条。
3. 创建纠错数据和恢复文件
可以实现的工具有很多,从软件维护情况、是否开源、免费等方面考虑,本文推荐的是 命令行工具 par2cmdline
和带图形界面的 MultiPar
,同时考虑到 WinRAR 的受众广泛,会在附中给出 WinRAR
的实现方案。
本次测试使用文件:
一个 PDF 文件,大小 42384523 字节(约 40.4 MB)一个文本 TXT 文件,大小 24286 字节(约 27 KB)需要注意:随着被处理文件的大小增大,所需的计算时间也会更长。
3.1 使用 Par2cmdline 创建恢复模块和恢复数据
推荐查看:par2cmdline 在 Github 上的页面,有完整的命令行说明。
par2cmdline 的快速帮助(可以通过 par2 -h 进行查看)
Usage: par2 -h : show this help par2 -V : show version par2 -VV : show version and copyright par2 c(reate) [options] [files] : Create PAR2 files par2 v(erify) [options] [files] : Verify files using PAR2 file par2 r(epair) [options] [files] : Repair files using PAR2 filesYou may also leave out the "c", "v", and "r" commands by using "par2create","par2verify", or "par2repair" instead.Options: (all uses) -B : Set the basepath to use as reference for the datafiles -v [-v] : Be more verbose -q [-q] : Be more quiet (-q -q gives silence) -m : Memory (in MB) to use -t : Number of threads used for main processing (6 detected) -T : Number of files hashed in parallel (2 are the default) -- : Treat all following arguments as filenamesOptions: (verify or repair) -p : Purge backup files and par files on successful recovery or when no recovery is needed -N : Data skipping (find badly mispositioned data blocks) -S : Skip leaway (distance +/- from expected block position)Options: (create) -a : Set the main PAR2 archive name -b : Set the Block-Count -s : Set the Block-Size (don"t use both -b and -s) -r : Level of redundancy (%%) -r : Redundancy target size, =g(iga),m(ega),k(ilo) bytes -c : Recovery Block-Count (don"t use both -r and -c) -f : First Recovery-Block-Number -u : Uniform recovery file sizes -l : Limit size of recovery files (don"t use both -u and -l) -n : Number of recovery files (don"t use both -n and -l) -R : Recurse into subdirectoriesExample: par2 repair *.par2
3.1.1 创建恢复数据
最简单的可以直接根据默认参数进行创建:
./par2 create demo.pdf.par2 demo.pdf# Block size: 21196# Source file count: 1# Source block count: 2000# Recovery block count: 100# Recovery file count: 7# # Opening: demo.pdf# Computing Reed Solomon matrix.# Constructing: done.# Wrote 2119600 bytes to disk# Writing recovery packets# Writing verification packets# Done
即可获得恢复文件:
根据其帮助的用法,使用 -r 可以指定恢复数据的大小(百分比或固定大小),使用 -b 可以设置恢复块数量,使用 -s 可以设置恢复块大小,需要注意 -s 给出的参数需能被 4 整除。
-s 参数的例子:
par2 create -s24288 demo.txt.par2 demo.txt
-r、-b 参数的例子:
# 创建文件大小的 15% 恢复数据par2 create -b v10240 -r15% demo.pdf.par2 demo.pdf# 创建约 4 M 大小的恢复数据par2 create -rm4 demo.pdf.par2 demo.pdf
恢复按块进行恢复,恢复数据的大小由块的数量和大小决定(所以不可以同时设置块的数量和块的大小),同样大小的恢复数据,不同参数和不同损坏情况是否能恢复可能产生不同的结果,所以针对可能出现的不同的文件损坏情况合理设置参数很重要。
3.1.2 进行文件修复
可以通过 par -v 文件名
来对文件进行校验,如:
par2 v demo.pdf.par2
得到输出:
Loading "demo.pdf.par2".Loaded 4 new packetsLoading "demo.pdf.vol000+01.par2".Loaded 1 new packets including 1 recovery blocksLoading "demo.pdf.vol001+02.par2".Loaded 2 new packets including 2 recovery blocksLoading "demo.pdf.vol003+04.par2".Loaded 4 new packets including 4 recovery blocksLoading "demo.pdf.vol007+08.par2".Loaded 8 new packets including 8 recovery blocksLoading "demo.pdf.vol015+16.par2".Loaded 16 new packets including 16 recovery blocksLoading "demo.pdf.vol031+32.par2".Loaded 32 new packets including 32 recovery blocksLoading "demo.pdf.vol063+64.par2".Loaded 64 new packets including 64 recovery blocksLoading "demo.pdf.vol127+54.par2".Loaded 54 new packets including 54 recovery blocksLoading "demo.pdf.par2".No new packets foundThere are 1 recoverable files and 0 other files.The block size used was 21196 bytes.There are a total of 2000 data blocks.The total size of the data files is 42384523 bytes.Verifying source files:Opening: "demo.pdf"Target: "demo.pdf" - found.All files are correct, repair is not required.
表明文件未损坏,对文件使用十六进制编辑器进行随机修改,来模拟文件损坏情况,再执行 par -v
可得到如下输出:
# ...Verifying source files:Opening: "demo.pdf"Target: "demo.pdf" - damaged. Found 1999 of 2000 data blocks.Scanning extra files:Repair is required.1 file(s) exist but are damaged.You have 1999 out of 2000 data blocks available.You have 181 recovery blocks available.Repair is possible.You have an excess of 180 recovery blocks.1 recovery blocks will be used to repair.
表明文件可以被修复:
par2 r demo.pdf.par2
部分输出内容:
Computing Reed Solomon matrix.Constructing: done.Solving: done.Wrote 42384523 bytes to diskVerifying repaired files:Opening: "demo.pdf"Target: "demo.pdf" - found.Repair complete.
修复成功。
若文件损坏过于严重或恢复块数据不足则无法恢复文件,这里给出对 demo.pdf 仅设置 1 个恢复块但损坏出现在了不同的两块中的情况则无法进行恢复,执行验证或恢复指令会得到如下输出:
Verifying source files:Opening: "demo.pdf"Target: "demo.pdf" - damaged. Found 1998 of 2000 data blocks.Scanning extra files:Repair is required.1 file(s) exist but are damaged.You have 1998 out of 2000 data blocks available.You have 1 recovery blocks available.Repair is not possible.You need 1 more recovery blocks to be able to repair.
3.2 使用 MultiPar 创建恢复模块和恢复数据
可以看看:MultiPar 在 Github 上的页面
MultiPar 的整体思路和参数含义和 par2cmdline 相似,GUI 的操作会更便捷。
在 MultiPar 的文档中看到作者为了获得更高速度所做的努力,其描述:
Pros:Fast verification.Fast recovery.Less disk space.Cons:Backup of damaged files is disabled.Less finding available source blocks.Cannot treat splited source files.Cannot treat additional source files.Cannot treat external source files.Risk of more data loss at failed recovery.
3.2.1 创建恢复数据
提示:警惕恶意软件,建议前往 Github 的 Release 页面进行 下载。
通过 GUI 设置参数,进行操作即可:
验证数据:
3.2.2 恢复数据
打开MultiPar,点击打开,选择 par2 文件进行校验
附
使用 WinRAR 创建恢复模块和恢复数据
注:只有 RAR 格式可进行恢复卷设置。
在创建压缩包时勾选添加恢复记录,并设置恢复数据大小:
在文件损坏的压缩包内点击修复压缩文件:
按提示进行操作,修复结果:
标签:
-
2022-02-07 14:57:45
奇迹!绝杀!女足亚洲杯逆转夺冠!<
刚刚,中国女足上演逆转绝杀奇迹!她们在亚洲杯决赛中3:2力克韩国队,时隔16年再夺亚洲杯冠军!
-
2022-02-07 14:57:45
中国政府与阿根廷共和国政府签署共建“一带一路”谅解备忘录<
新华社北京2月6日电(记者安蓓)国家发展改革委6日称,国家发展改革委主任何立峰与阿根廷外交、国际贸易和宗教事
-
2022-02-07 14:57:43
中华人民共和国和阿根廷共和国关于深化中阿全面战略伙伴关系的联合声明(全文)<
新华社北京2月6日电中华人民共和国和阿根廷共和国关于深化中阿全面战略伙伴关系的联合声明一、应中方邀请,阿根廷
-
2022-02-07 14:57:40
春节假期国内旅游出游2.51亿人次<
春节遇冬奥,旅游年味浓。根据文化和旅游部数据中心测算,2022年春节假期7天,全国国内旅游出游2 51亿人次,同比
-
2022-02-07 14:57:40
中吉签署关于经典著作互译出版的备忘录 开启两国人文交流互鉴新阶段<
新华社北京2月6日电(记者史竞男)国家主席习近平6日会见来华出席北京2022年冬奥会开幕式的吉尔吉斯斯坦总统扎帕
-
2023-02-18 13:59:42
使用 PAR2 为数据纠错恢复-天天视点
如果你是通过搜索找到本文,请注意,本文内容不适用于文件误删恢复、已经损坏的文件且无PAR2恢复数据的情况。
-
2023-02-18 11:49:28
每日快播:男子进店要钱嫌少骚扰殴打女顾客 具体详细内容是什么
男子进店要钱嫌少骚扰殴打女顾客今天的热度非常高,现在也是在热搜榜上了,那么具体的男子进店要钱嫌少骚扰殴打女顾客是什么情况
-
2023-02-18 08:48:08
全球动态:“新时代新机遇——跨国企业在中国”网上主题宣传启动
中国网财经2月18日讯2023年网上重大主题宣传和重大议题设置发布启动仪式2月17日在京举行。仪式采取云连线方式,在上海等六地设分会场,线上线
-
2023-02-18 05:57:45
每日关注!9 种适合儿童派对的手指食物
1的10纸杯蛋糕可能是生日派对上的主要活动,但这并不意味着孩子们的手抓食物不能同样有趣。这些想法中的每一个都以新鲜的
-
2023-02-18 01:38:27
2月17日基金净值:华安文体健康混合A最新净值3.731,跌1.22%-天天报资讯
2月17日,华安文体健康混合A最新单位净值为3 731元,累计净值为3 731元,较前一交易日下跌1 22%。历史数据显示该基金近1个月下跌1 32%,近3个
-
2023-02-17 22:00:28
M7将于8月24日由首批车主交付
现在汽车越来越普及,几乎家家户户都有车。那么这么多车,我们在使用的过程中肯定会遇到各种各样的问题。那么这个时候我们就需要
-
2023-02-17 19:46:35
【天天时快讯】东杰智能:子公司签匈牙利宝马汽车涂装项目供货合同
金融界2月17日消息东杰智能(行情300486,诊股)公告,公司全资子公司常州海登与HAYDENAG签订匈牙利德布勒森“BMWF100涂装车间项目”供货合
-
2023-02-17 17:55:54
LPL知名解说公开吐槽,比赛时根本不敢说Shy哥,怕被粉丝冲烂
Doinb和娃娃就是本次事件中的先锋军之一,娃娃在二路直播解说的时候公开表示,自己很多时候是比赛时根本不敢说Shy哥,说一下就要被冲烂。在最
-
2023-02-17 16:03:28
冒险电影《荒原》曝主题曲MV, 任素汐李晨遇沙暴极限求生|环球播报
MV呈现更多影片画面,任素汐与李晨的精彩对手戏也随歌声展开。MV结尾任素汐饰演的丛林一句“等我回来”,更勾起观众对《荒原》故事的期待。...
-
2023-02-17 14:57:25
家养蚯蚓最简单方法图片_家养蚯蚓最简单方法
1、把草埋在土里几天使其腐烂,此时的泥土富含蚯蚓所需的营养物质。2、把完成的土壤放在一个封闭的盒子里。注意盒子放在阴凉潮
-
2023-02-17 12:15:55
手把手教你变美!一起来学习三木妈妈的“春季穿搭”,不怕变老了
一直以来,我们都知道穿衣打扮,是一门大学问,我们每个人都在如何变美的道路上摸索着前行。而且,我们也不可能真的在随着年纪的增长后,穿搭
-
2023-02-17 09:59:39
短讯!东非原油管线项目-终端码头储罐区项目属地员工技能培训开班仪式在坦桑尼亚举办
原标题:东非原油管线项目-终端码头储罐区项目属地员工技能培训开班仪式在坦桑尼亚举办东非原油管线项目-终端码头储罐区项目属
-
2023-02-17 08:47:53
实时:美国官方强调列车脱轨事发地空气水质安全 民众强烈质疑
美国俄亥俄州列车脱轨致有毒气体扩散事件发生以来,尽管调查并未完成,但包括美国环保局在内的美国政府相关部门一直强调当地空气处于安全水平
-
2023-02-17 05:03:40
个人所得税app怎么找回密码_个人所得税app怎样找回密码-每日焦点
1、由于个人所得税app每次关闭都会清空密码,有朋友表示忘记了注册时输入的密码,想知道如何设置才能找回。下面手机天堂水星
-
2023-02-17 00:11:56
2个月德牧幼犬喂养_德牧幼犬喂养技巧_天天速看料
1、德国牧羊犬的喂养-德牧边牧苏牧喜乐蒂比牧古牧狼青德国牧羊犬因其较大的体形和能量摄入的需要,往往会有
-
2023-02-16 20:51:54
当前快看:【两会声音】专访马逢国:发挥香港优势 助力中国电影“走出去”
【同期】港区全国人大代表马逢国从学术方面的交流也是很频密的,包括很多论坛、演讲、讲座等,所以我觉得恢复“通关”以后,
-
2023-02-16 19:01:53
微星 PRO MP161 便携式显示器上市,售价 1099 元
IT之家2月16日消息,微星此前在CES2023上展示了一款型号为PROMP161的便携式显示器,采
-
2023-02-16 17:01:52
营养素_说一说营养素的简介
夏弥来为大家解答以下的问题,营养素,说一说营养素的简介,现在让我们一起来看看吧!1、营养素(nutrients),人类为
-
2023-02-16 14:45:43
重庆:彩云湖畔红梅盛开 吸引市民寻香打卡
盛开的红梅吸引市民寻香打卡。 周毅 摄市民在红梅林下拍照留念。
-
2023-02-16 12:58:12
天天热讯:胃不好的人别大意,4种食物要常吃,2种习惯要远离,记得告诉家人
中国美食全世界闻名是众所周知的事情,因此很多外国友人都说每一个中国人都是美食大厨,虽说不是百分百正确,但也绝不夸张。中国人喜欢吃、吃
-
2023-02-16 10:46:55
【天天聚看点】电脑死机按什么键重启_电脑死机重启的快捷键
1、电脑死机了。我应该按哪个键?2、1 解决崩溃的快捷键是用CTRLALTdelete打开任务管理器,然后选中导致崩
-
2023-02-16 08:51:00
热推荐:钢笔墨囊怎么安装带吸墨器_钢笔墨囊怎么安装
1、在日常生活中,我们总是不可避免地会遇到一些小问题。那么,钢笔墨囊怎么安装?怎么样呢这里有一个小方法分享给你,希望能帮
-
2023-02-16 07:59:49
天天观速讯丨天鹅湖动画片上译版_天鹅湖动画片国语版
1、就是日本的“天鹅湖”一座漂亮、雄伟的古城堡矗立在山坡上,那是齐格菲尔德王子的宫殿。2、静谧的湖上几只美丽的天鹅在飘游着。3、小松...
-
2023-02-16 04:42:39
如何起卦排卦
周易算命,周易如何起卦?古代起卦的方法有很多种,有用龟甲烧裂的裂纹走向来起卦的,称为“龟甲筮”,此方法已经失传;还有用一
-
2023-02-16 02:14:18
空调加氟方法_空调加氟的具体步骤
1 去掉一段过滤工艺管,将单向阀插入剩余工艺管一厘米处并焊接,另一端焊接三通维修阀的连接铜管。2 检查空调的氟泄漏点。必要时及时焊牢,然
-
2023-02-16 01:03:58
非布司他和别嘌醇片有什么区别_别嘌醇片对肝的伤害大吗 报道
1、别嘌醇对肝脏的伤害不大,一般可以表现为肝功能异常,出现这种不良反应的概率比较低。2、另一种肝损伤是中毒性肝炎,主要由
-
2023-02-15 23:02:51
天天播报:小暑节气的含义是什么意思
大家要知道我国的节气是有二十四个,小暑和大暑也是大家比较感兴趣的节气,都是在夏季,那么这个小暑是在什么时候呢,小暑节气的
-
2023-02-15 21:58:43
海康威视子公司拟增资引入战投 加速汽车电子业务发展
2月15日晚海康威视(002415)公告,子公司石家庄森思泰克拟新增注册资本23 98亿元,其中海康威视拟以持有的控股子公司杭州海康汽车技术有限公司6
-
2023-02-15 19:50:06
环球微速讯:手感与观感齐飞 魅族20系列确定采用柔性直屏
魅族在前段时间正式表示魅族20系列新机将2023年春季发布,照目前的状况来看,新机似乎很快就要问世了,目前魅族官微已经对这款手机预热。2月15
-
2023-02-15 19:39:56
陶斯咏简介 陶斯咏介绍 环球热讯
1、陶毅(1896—1931)女,汉族,字斯咏,湖南湘潭人。她出身富商之家。周南女中师范科的毕业生,时有“长江以南第一才女”之美称。2、二十...
-
使用 PAR2 为数据纠错恢复-天天视点
2023-02-18 13:59:42 -
每日快播:男子进店要钱嫌少骚扰殴打女顾客 具体详细内容是什么
2023-02-18 11:49:28 -
全球动态:“新时代新机遇——跨国企业在中国”网上主题宣传启动
2023-02-18 08:48:08 -
每日关注!9 种适合儿童派对的手指食物
2023-02-18 05:57:45 -
2月17日基金净值:华安文体健康混合A最新净值3.731,跌1.22%-天天报资讯
2023-02-18 01:38:27 -
M7将于8月24日由首批车主交付
2023-02-17 22:00:28 -
【天天时快讯】东杰智能:子公司签匈牙利宝马汽车涂装项目供货合同
2023-02-17 19:46:35