大容量ファイルの各「ブロック」を個別に確認する方法

大容量ファイルの各「ブロック」を個別に確認する方法

私は2つのハードドライブにいくつかのGBファイルを保存します。数年間オフラインで保存した後(残念ながら理想的な条件からは離れています)、ビットが破損したファイル(2つのコピーが異なる)を頻繁に受け取ってファイルを復元したいと思います。問題は、ファイルが大きすぎて同じファイル内の一部のストレージデバイスで特定のビットが破損し、他のストレージデバイスで他のビットが破損しているため、両方のディスクに破損していない文書が含まれないことです。

したがって、ファイル全体のMD5チェックサムを計算する代わりに、各1KBブロックのチェックサムを計算したいと思います。これらの小さなブロックを使用すると、2台のハードドライブで同じ1KBブロックが破損する可能性が大幅に削減されます。

これはどのように達成できますか?難しくないと確信していますが、別の方法を試すのに1時間以上かかり、失敗し続けました。

ベストアンサー1

光学メディア(現在はBD-Rですが、CD-RとDVD-Rでも同じ方法を使用しています)のビットロットと同様の問題があります。

というプログラムがあります。par2回復データ(Reed-Solomonコードを使用)を生成して、特定の数のエラーを検出できるだけでなく、修正することもできます。ブロックサイズと冗長性の割合(必要な追加のディスク容量の量でもあります)を設定できます。たとえば、1,000個のブロックと10%の冗長性を使用する場合、100個の冗長ブロックを格納するためにディスク容量の10%を追加して合計1100個になります。しかし、その代わりにファイルを完全に回復することができます。どの無傷のブロック1000個。したがって、100個以下のブロックにビットロートが含まれていると、ファイルを回復できます。

par2の欠点は、回復データの計算に時間がかかり、生成されるデータが多いほど時間がかかることです(10%生成より20%生成が長くなります)。

他の同様のツールはジピーク、個人的には使用しなかったが。

おすすめ記事