.rev
WinRARを含むファイル-たとえば、10部構成のRARボリュームに加えて、1つの.rev
(回復)ボリューム-.rev
ボリュームは任意の「修正」が可能になりますone破損.rar
ボリューム。
これはどのようにして可能ですか?個別に壊れたボリュームのいずれか/すべてを修正するために、1つのボリュームがすべてのデータをどのように持つことができるか理解できません。
私が想像しているように、ボリュームが「線形に」分割されない代わりに、おそらく可能であると思います。各RARボリュームは、パックされた全体の個別の個別のファイルを保持しています。むしろ.rev
修復は、RARボリュームがいわばビットとバイトの1つの連続したファイルと見なされ、破損したバイトを修正するためにCRCのような魔術(ええと、「修復作業」)が行われている場合に可能です。
しかし、9つの作業ボリュームに1つの損傷があり、しかも修復ボリュームanyのうちの1つを修復できる方法を理解できません。 1つのボリュームで「すべて」のボリュームのデータを保持するにはどうすればよいですか?
本当に簡単なケースを考えてみましょう。
4つのボリュームと復元ボリュームがあり、それぞれに1ビットの情報が含まれています。
========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
=----------=----------=----------=----------=----------=
Bits: = 1 = 0 = 1 = 1 = 1 =
========================================================
復元ボリュームには、これらの各ビットの結果が含まれます [〜#〜] xor [〜#〜] d一緒に:
1 XOR 0 XOR 1 XOR 1 = 1
したがって、復元ボリュームには単一ビット1
が含まれています。
ここで、ボリューム1が失敗したとしましょう。
XOR=残りのボリューム2、3、および4の場合、障害が発生したボリュームの代わりにリカバリビットを使用すると、
1 XOR 0 XOR 1 XOR 1 = 1
^
つまり、これは方程式の結果であるため、ボリューム1には1
が含まれていたことを示しています。
代わりにボリューム2が死亡したと仮定して、式の値を回復ビットに置き換えます。
1 XOR 1 XOR 1 XOR 1 = 0
^
したがって、ボリューム2には0
が含まれていることがわかります。これは、方程式の結果だからです。
ボリューム3または4が失敗した場合、どちらもこの式で1
を生成します。
そのため、いずれかのボリュームに障害が発生した場合、復元ボリュームを使用して、残りのボリュームに基づいてデータを再構築できます。これはおそらく、最も簡単な形式のエラー修正です。 2つのボリュームに障害が発生した場合、何も回復できません。
これがどのように行われるかを理解する非常に簡単な方法として、復元ボリュームに他のボリュームの合計が含まれているかどうかを想像してください。番号のリスト、そのうちの1つが不足している番号、およびそれらの合計を使用すると、不足している番号をいつでも再構築できます。
たとえば、これらの2桁の数字、13、88、17、43について考えてみます。欠けている数字が1つあり、すべての数字の合計の最後の2桁が81であることがわかっている場合、欠けている数字を見つけることができます。 13 + 88 + 17 + 43 =161。81で終わる番号を作成するためにそれに追加できる2桁の数字は20だけです。
あなたが20を持っていて、43が欠けていたとしましょう。13+ 88 + 17 + 20 =138。81で終わる数を作るためにそれに追加できる2桁の数字は43だけです。
したがって、リカバリー番号を使用すると、欠落している番号を1つ見つけることができます。