WinRARについて調べた雑メモ

Command RR[N] - add data recovery record
RARアーカイブには、冗長な情報(リカバリレコード)をオプションで追加することができます。これにより、ディスク障害やその他のデータ損失の場合に、損傷が重度でない場合には、アーカイブされたファイルを回復するのに役立ちます。このような損傷の回復は、「r」コマンドを使用して実行できます。ZIPアーカイブ形式は、リカバリレコードをサポートしていません。
RAR 4.xおよびRAR 5.0アーカイブでは、異なるリカバリレコード構造とアルゴリズムが使用されます。
RAR 4.xリカバリレコードは、XORアルゴリズムに基づいています。4.xレコードサイズを回復セクターの数またはアーカイブサイズのパーセントとして指定できます。セクター数を指定するには、'rr'の直後に直接追加します。たとえば、1000セクターの場合は 'rr1000'とします。パーセントを使用するには、パーセント数の後に 'p'または '%'修飾子を追加します。たとえば、5%の場合は 'rr5p'または 'rr5%'とします。Windowsの.batおよび.cmdファイルでは、'rr5%'の代わりに'rr5%%'を使用する必要があるため、この場合は'p'を使用する方が便利です。
RAR 4.x回復セクターは512バイトです。損傷領域が連続している場合、各セクターは512バイトの損傷情報を回復するのに役立ちます。複数の損傷の場合、この値は低くなる場合があります。回復セクターの最大数は524288です。
4.xリカバリレコードのサイズは、おおよそ<アーカイブサイズ>/256 + <回復セクター数>*512バイトで決定できます。
RAR 5.0形式のリカバリレコードは、Reed-Solomonエラー訂正符号を使用しています。連続したダメージを修復する能力は、RAR 4.xとほぼ同じですが、複数のダメージ箇所がある場合にはRAR 4.xレコードよりも効率的です。
RAR 5.0レコードは512バイトセクタを使用していないため、そのサイズはアーカイブサイズのパーセンテージとしてのみ指定できます。'%'や'p'の修飾子がなくても、RAR 5.0形式の場合は値をパーセンテージとして扱うため、'rr5'と'rr5p'の両方が5%を意味します。サービスデータのオーバーヘッドのため、実際のリカバリレコードのサイズは、ユーザーが定義したパーセンテージとは異なる場合があり、より小さなアーカイブではその差が大きくなります。
RAR 5.0形式のリカバリレコードのサイズは、保護アーカイブサイズを超えることはできないため、パラメータとして100%以上を使用することはできません。より大きなリカバリレコードは、作成および修復時に処理が遅くなります。
4.xおよび5.0のレコードは、ダメージアーカイブ内のデータ位置がシフトされていない場合に最も効率的です。ダメージを受けたメディアからアーカイブをコピーする場合、ダメージ箇所をゼロで埋めるか、コピーされたファイルからそれらを切り取るかの選択肢がある場合、ゼロまたは他の値で埋めることが望ましいです。それによって、元のデータ位置を保持することができます。ただし、最適なモードではありませんが、両バージョンのレコードは、削除または挿入が行われた場合、データ位置がシフトされた場合にもデータを修復しようとします。RAR 5.0のリカバリレコードは、RAR 4.xよりも削除と挿入をより効率的に処理します。
オプションパラメータなしで単に 'rr' コマンドを使用すると、WinRARはデフォルトでリカバリレコードのサイズをアーカイブサイズの3%に設定します。
このコマンドは、アーカイブ管理コマンド「Protect archive from damage」のコマンドライン版です。
例:
・デフォルトサイズ(1%)のデータ復旧レコードをアーカイブbackupに追加する
WinRAR rr backup
・アーカイブpicturesにデータ回復レコードを追加し、サイズを総アーカイブサイズの5%に設定する
WinRAR rr5p pictures