我使用外部硬盘将文件放入大型存档文件中来备份文件。
我有成千上万个小文件,然后将它们放入500MB至4.2GB大小的档案中,然后再将其发送到外部HDD。但是,一个硬盘故障会破坏整个档案还是仅破坏档案中的一个文件?我担心翻转一下会使档案的大部分无效。
诸如CRC检查之类的事情可以提醒您存在损坏,但是我对从损坏的存档中恢复未损坏的文件的能力更感兴趣。通过存档结构的本机设计或存在补充恢复工具,哪种存档文件格式将提供从此类故障中恢复的最佳能力?zip和iso文件在此功能上有什么区别吗?
我使用外部硬盘将文件放入大型存档文件中来备份文件。
我有成千上万个小文件,然后将它们放入500MB至4.2GB大小的档案中,然后再将其发送到外部HDD。但是,一个硬盘故障会破坏整个档案还是仅破坏档案中的一个文件?我担心翻转一下会使档案的大部分无效。
诸如CRC检查之类的事情可以提醒您存在损坏,但是我对从损坏的存档中恢复未损坏的文件的能力更感兴趣。通过存档结构的本机设计或存在补充恢复工具,哪种存档文件格式将提供从此类故障中恢复的最佳能力?zip和iso文件在此功能上有什么区别吗?
Answers:
鉴于任何档案目录部分的损坏都可能使整个档案变得无用,您最好的选择是在备份过程中添加单独的步骤以生成所谓的奇偶校验文件。万一原始文件中的数据块损坏,可以通过将奇偶校验文件中的数据与原始文件中的有效块进行组合来重建它。
可变的因素是您希望能够修复多少损坏。如果要防止发生单位翻转,则奇偶校验文件的大小将仅为1位。如果您想要某种与磁盘扇区大小相当的东西,那么显然这将使您付出更多。
这背后有一个很大的理论(请参阅前向纠错),并且在实践中被广泛使用。例如,这就是CD如何承受一定程度的刮擦,以及手机如何通过有损连接保持合理的通话质量。
长话短说,看看.par
文件。
Bup [1]会备份内容并自动添加奇偶校验冗余,因此极不可能发生位旋转。灾难性磁盘故障仍然是一回事,因此我们可以将其与git-annex一起使用。
git-annex [2]管理存储在许多存储库中的文件,其中一些可能存储在您的计算机,拇指驱动器,ssh登录,某些云服务或bup备份存储库中[3],从而使文件数据的传输非常透明根据要求或自动进入您设置的任何存储库。这也是一个由群众资助的免费和开源软件项目,该项目是用Haskell编写的,其版本可以在许多平台上运行,包括linux,mac,windows和android。
[1] https://github.com/bup/bup
但是,一个硬盘故障会破坏整个存档还是仅损坏存档中的一个文件?
如果除了将所有内容复制为一个大存档确实没有其他选择,则可能必须在使用压缩或未压缩的存档之间做出决定。
即使无法再读取存档文件本身(例如,由于头文件损坏),仍可以使用文件恢复软件检测未压缩的存档文件(如tarball)的内容。
使用压缩的归档文件可能很危险,因为某些压缩文件可能会在发生校验和错误时拒绝提取文件,即使仅对归档文件的一小部分进行更改也可能导致该错误。
当然,如果不将数百个文件存储到一个压缩的存档中,而是将数百个压缩文件存储到一个未压缩的存档中,则可以最大程度地降低风险。
gzip *
tar cf archive.tar *.gz
尽管我以前从未在野生生物的压缩包中看到过很多压缩文件。仅有相反的是流行的(即tar.gz文件)。
zip和iso文件之间有什么区别吗?
ZIP是(大部分但不是必须的)压缩存档,而ISO是一种格式,指示原始数据在较低级别上从光盘复制到文件中。后者实际上可以包含所有内容。