Answers:
我遇到了同样的问题,发现另一个答案中提供的解决方案是不可接受的,因为par2程序/标准涉及创建单独的文件来进行恢复和验证。我就像我认为的原始提问者一样,想要一个带有纠错代码的文件。
我找到了以前在包管理器中的rsbep程序,然后在这里找到了必要的代码:https ://www.thanassis.space/rsbep.html
这样一来,便可以使用Reed-Solomon错误纠正代码创建文件,然后从可能已损坏的ECC版本中检索原始文件。
rsbep
透明使用的FUSE fs实现,但这只是基于逐个文件运行的脚本之上。
如果要将ecc文件与归档文件分开,则可以使用pyFileFixity,这是一个开放源代码Python项目,旨在提供下一代类似PAR的保护系统,以防止比特损坏。
如果您希望将ecc保护直接包含在档案中,则可以使用开源DAR(一种下一代TAR),它可以生成非实体(即,允许部分提取损坏的档案)和ecc(使用PAR2)和目录隔离(即,保存目录树和文件系统元数据的备份)直接在.dar归档文件中。
另一个类似的2018年项目是Redupe,它似乎在两个单独的工具中提供了独立和嵌入式文件错误纠正:
第一个工具redupe是仿照gzip或bzip2之类的压缩工具建模的,但是增加了冗余而不是消除了冗余。
网页中的示例(为简洁起见,与您的用例类似):
$ redupe home-backup.tar.gz
$ ls -l
-rw------- 1 rescrv 5625162218 home-backup.tar.gz
-rw-r--r-- 1 rescrv 6433996800 home-backup.tar.gz.rd
reundupe
然后可用于还原文件并可能纠正一些小错误。
tar
进一步处理-GNUtar
在标头元数据中编码稀疏文件漏洞,并且在由任何POSIXpax
兼容存档器提取后,会生成包含重建文件所需信息的文件,或者由GNU还原tar
为原始稀疏文件。它使用主要编码的头变量,如POSIX为pax
实用程序 w /所定义-o
。