谢谢阅读。
我打算使用 Parchive 为我的存储和备份添加冗余。
为什么?我从 1980 年(Apple II)开始使用计算机。我用过盒式磁带、360KB、1.2MB、1.44MB 等。我发现硬盘并不像我希望的那样可靠。更糟糕的是,我注意到有时我会得到损坏的文件毫无预警。我从 HD 读取它们,没有错误,但它们已损坏。
我想要一种方法来检查完整性并进行恢复。
我的目的:有2个目录:
“数据”-我的文件..
“档案”——“数据”树的副本,其中包含“数据”目录中每个文件的档案,位于同一级别。
所以我有:
- “X:\数据\项目\test1.cpp”
- “X:\Parchives\Projects\test1.cpp.par2”
这样,我就将所有文件与数据分开了。我可以选择将“数据”备份到 3 个外部硬盘上,将“文件”备份到 8 个外部硬盘上(放心,这只是一个例子……)
我打算创建一个 C# 程序来跟踪“数据”和“档案”。它可以验证完整性,还可以更新树(已移动、重命名、创建、删除、更改等的文件)
问题是....呃....我真的不知道如何使用 parchive.....
我下载了“par2cmdline-0.2.x86.win32.zip”并运行了一些测试。
它为每个源文件创建 9 个“par2”文件(9!!!!)
40.408B Test_1.par2
44.012B Test_1.vol000+01.par2
87.924B Test_1.vol001+02.par2
135.440B Test_1.vol003+04.par2
190.164B Test_1.vol007+08.par2
259.304B Test_1.vol015+16.par2
357.276B Test_1.vol031+32.par2
375.296B Test_1.vol063+37.par2
总大小:1.489.824 字节
我可以使用“-n1”选项,但它仍然会创建 2 个文件:
40.408B Test_2.par2
642.656B Test_2.vol000+100.par2
总大小:683.084 字节
总尺寸也较小,我猜它不太安全。
问题:
1) 我可以将其缩减为仅 1 个“par2”文件吗?没办法吗?...
2) 使用“-n1”选项时如何获得相同的冗余级别?我注意到,使用选项“-n1 -r15”时,我仅用 2 个文件就获得了与 9 个“par2”文件几乎相同的文件大小:
40.408B Test_3.par2
1.444.072B Test_3.vol000+300.par2
总大小:1.484.480 字节
这是同一件事吗?(“-r15”选项提供 15% 的冗余度,而不是标准的 5%)
3) 我是不是在做一些非常愚蠢的事情? 有没有更好的方法?
谢谢你!
答案1
必须假设没有人回答这个问题,因为答案在文档中很容易找到(即man par2cmdline
或https://github.com/Parchive/par2cmdline)。话虽如此,以下是针对其他遇到此问题的人提供的快速答案。
1) 首先,听起来您是在问是否可以将索引和奇偶校验信息放在一个文件中。答案是否定的。索引文件将始终被创建,并且可以在没有奇偶校验数据的情况下用来测试文件是否已损坏(尽管md5sum
在这种情况下您可能需要考虑或类似操作)。但是,如果您问是否可以只创建一个没有任何奇偶校验数据的索引文件,答案是肯定的,只需向 r 选项提供一个零:-r0
。所以:
par2 c -r0 X:\Parchives\Projects\test1.cpp.par2 X:\Data\Projects\test1.cpp
2) 如文档中所述,该-n
选项控制创建的奇偶校验文件的数量,对创建的奇偶校验数据量和可修复的损坏量没有影响。请记住,parchive 最初是为 usenet/news 下载创建的,其中奇偶校验文件的结构意味着损坏较小的文件可以通过较小的奇偶校验文件进行修复,这些文件也必须下载。换句话说,最好不必下载所有可用的奇偶校验信息来修复损坏较小的文件。然而,这嵌套如果文件和奇偶校验数据在本地可用,则没有实际好处,因此生成多个嵌套奇偶校验文件毫无意义。在这种情况下,创建多个奇偶校验文件的唯一原因是奇偶校验数据本身的数量太大。
3) 就我个人而言,不,我不认为你做了什么蠢事。你可以考虑使用 WinRAR 创建自己的修复记录(类似于 parchive),然后将其嵌入到 rar 本身中,当然,这是一个非免费的选项。另一个选项是简单地将数据镜像到外部可靠的存储中,对数据进行 md5 处理(或 par2 索引数据,它可以覆盖多个文件和嵌套目录,而 md5sum 不能,至少不能直接覆盖),并使用它来测试损坏情况并从镜像中恢复。