web-dev-qa-db-ja.com

どのアーカイブファイル形式がファイル破損に対する回復保護を提供しますか?

外付けHDDを使用して、ファイルを大きなアーカイブファイルに入れてバックアップします。

私は何千もの小さなファイルを持っており、それらを外付けHDDに送信する前に、500MBから4.2GBのサイズのアーカイブに入れています。しかし、1つのハードディスク障害がアーカイブ全体を破壊するのでしょうか、それともアーカイブ内の1つのファイルだけを破壊するのでしょうか。 1つの反転ビットがアーカイブの大部分を役に立たなくする可能性があるのではないかと心配しています。

CRCチェックのようなものは、破損の存在を警告することができますが、破損したアーカイブから破損していないファイルを回復する機能にもっと興味があります。アーカイブ構造のネイティブ設計または補足の回復ツールの存在のいずれかを通じて、このような障害から回復するための最良の機能を提供するアーカイブファイル形式はどれですか? ZipファイルとISOファイルの間でこの機能に違いはありますか?

10
sevenkul

アーカイブのディレクトリ部分が損傷すると、アーカイブ全体が役に立たなくなる可能性があることを考えると、バックアッププロセスに別の手順を追加して、いわゆる パリティファイル を生成するのが最善の策です。元のファイルのデータブロックが破損した場合は、パリティファイルのデータと元のファイルの有効なブロックを組み合わせて再構築できます。

変数は、修復できるようにしたい損傷の量です。シングルビットフリップから保護したい場合、パリティファイルのサイズはわずか1ビットになります。ディスクセクターサイズに合わせたものが必要な場合は、明らかにコストがかかります。

これには大きな理論があり( 前方誤り訂正 を参照)、実際に広く使用されています。たとえば、これはCDがある程度の引っかき傷に耐えることができる方法であり、携帯電話が損失のある接続に対して妥当な通話品質を維持する方法です。

簡単に言うと、.parファイルを見てください。

8
Angstrom

Bup [1]は物事をバックアップし、パリティの冗長性を自動的に追加するため、ビット腐敗の可能性は非常に低くなります。壊滅的なディスク障害は依然として問題であるため、git-annexで使用できます。

git-annex [2]は、多くのリポジトリに保存されているファイルを管理します。その一部は、コンピュータ、サムドライブ、sshログイン、一部のクラウドサービス、またはbupバックアップリポジトリ[3]に保存され、ファイルデータがほぼ透過的に流れるようにします。リクエストにより、または設定したリポジトリに自動的に。また、Linux、Mac、Windows、Androidなどの多くのプラットフォームで実行されているバージョンでHaskellで作成された、クラウドファンディングの無料のオープンソースソフトウェアプロジェクトでもあります。

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

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

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

4
Yuval Langer

しかし、1つのハードディスク障害がアーカイブ全体を破壊するのでしょうか、それともアーカイブ内の1つのファイルだけを破壊するのでしょうか。

すべてを1つの大きなアーカイブとしてコピーする以外に方法がない場合は、圧縮アーカイブと非圧縮アーカイブのどちらを使用するかを決定する必要があります。

tarballs のような非圧縮アーカイブの内容は、アーカイブファイル自体を読み取ることができなくなった場合でも(ヘッダーが破損しているなどの理由で)、ファイル回復ソフトウェアで検出できます。

圧縮アーカイブの使用は、アーカイブファイルの1ビットのみが変更された場合でも発生する可能性があるチェックサムエラーが発生した場合にファイルの抽出を拒否する可能性があるため、危険な場合があります。

もちろん、数百のファイルを1つの圧縮アーカイブに保存するのではなく、数百の圧縮ファイルを1つの非圧縮アーカイブに保存することで、リスクを最小限に抑えることができます。

gzip *
tar cf archive.tar *.gz

野生生物のtarballでgzip圧縮されたファイルをたくさん見たことがありませんが。反対のものだけが人気があります(つまり、tar.gzファイル)。

ZipファイルとISOファイルに違いはありますか?

Zipは(ほとんどの場合、必ずしもそうとは限りませんが)圧縮アーカイブであり、ISOは、光ディスクからファイルに低レベルでコピーされた生データを示す形式です。後者は文字通りすべてを含むことができます。

3
dulange