哪种存档文件格式可提供针对文件损坏的恢复保护?


10

我使用外部硬盘将文件放入大型存档文件中来备份文件。

我有成千上万个小文件,然后将它们放入500MB至4.2GB大小的档案中,然后再将其发送到外部HDD。但是,一个硬盘故障会破坏整个档案还是仅破坏档案中的一个文件?我担心翻转一下会使档案的大部分无效。

诸如CRC检查之类的事情可以提醒您存在损坏,但是我对从损坏的存档中恢复未损坏的文件的能力更感兴趣。通过存档结构的本机设计或存在补充恢复工具,哪种存档文件格式将提供从此类故障中恢复的最佳能力?zip和iso文件在此功能上有什么区别吗?


我知道至少我用于文件同步的程序之一支持多线程复制,我相信这可以减轻复制许多小文件的速度。同样,尽管我必须进行测试以确保,但我怀疑即使不使用压缩,创建包含许多小文件的存档也要比为多个大文件创建存档所花费的时间更长。我不记得这是否是仅Windows的问题;iirc,有一些适用于Linux的软件解决方案可以处理大量的小文件,但我不记得详细信息。
JAB

请重新打开问题。我已经改写了,现在应该更清楚了。“最佳”一词总是基于观点,但要达到最佳状态的要求很明确。个人意见的小空间恕我直言。重新打开后,请删除此评论。
Marcel

Answers:


8

鉴于任何档案目录部分的损坏都可能使整个档案变得无用,您最好的选择是在备份过程中添加单独的步骤以生成所谓的奇偶校验文件。万一原始文件中的数据块损坏,可以通过将奇偶校验文件中的数据与原始文件中的有效块进行组合来重建它。

可变的因素是您希望能够修复多少损坏。如果要防止发生单位翻转,则奇偶校验文件的大小将仅为1位。如果您想要某种与磁盘扇区大小相当的东西,那么显然这将使您付出更多。

这背后有一个很大的理论(请参阅前向纠错),并且在实践中被广泛使用。例如,这就是CD如何承受一定程度的刮擦,以及手机如何通过有损连接保持合理的通话质量。

长话短说,看看.par文件。


1
谢谢,在搜索奇偶文件时,我发现WinRAR的恢复记录在日常使用中更为简单。我还将尝试QuickPar。
sevenkul 2014年

2
一位纠错数据不足以修复 n位数据文件中的一位错误。您可以只用一个位检测到这样的错误,但是要修复它,您至少需要log n个位。
汤姆·史密斯

4

Bup [1]会备份内容并自动添加奇偶校验冗余,因此极不可能发生位旋转。灾难性磁盘故障仍然是一回事,因此我们可以将其与git-annex一起使用。

git-annex [2]管理存储在许多存储库中的文件,其中一些可能存储在您的计算机,拇指驱动器,ssh登录,某些云服务或bup备份存储库中[3],从而使文件数据的传输非常透明根据要求或自动进入您设置的任何存储库。这也是一个由群众资助的免费和开源软件项目,该项目是用Haskell编写的,其版本可以在许多平台上运行,包括linux,mac,windows和android。

[1] https://github.com/bup/bup

[2] http://git-annex.branchable.com/

[3] http://git-annex.branchable.com/special_remotes/bup/


3

但是,一个硬盘故障会破坏整个存档还是仅损坏存档中的一个文件?

如果除了将所有内容复制为一个大存档确实没有其他选择,则可能必须在使用压缩或未压缩的存档之间做出决定。

即使无法再读取存档文件本身(例如,由于头文件损坏),仍可以使用文件恢复软件检测未压缩的存档文件(tarball)的内容。

使用压缩的归档文件可能很危险,因为某些压缩文件可能会在发生校验和错误时拒绝提取文件,即使仅对归档文件的一小部分进行更改也可能导致该错误。

当然,如果不将数百个文件存储到一个压缩的存档中,而是将数百个压缩文件存储到一个未压缩的存档中,则可以最大程度地降低风险。

gzip *
tar cf archive.tar *.gz

尽管我以前从未在野生生物的压缩包中看到过很多压缩文件。仅有相反的是流行的(即tar.gz文件)。

zip和iso文件之间有什么区别吗?

ZIP是(大部分但不是必须的)压缩存档,而ISO是一种格式,指示原始数据在较低级别上从光盘复制到文件中。后者实际上可以包含所有内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.