
その後3TB HDD上の多くのファイルを破損した残念なCHKDSK分析(USB2 コントローラーが 2TB を超える容量と互換性がないため、誤って 746 GB として検出されました)、これらのファイル (バックアップ HDD 上の正しいファイルと) を正確に比較し、破損した領域を抽出してさらに調査してから削除したいと思います。
これまでのところ、次のように進めました。
- WinHex でファイルの両方のバージョンを開きます。「同期と比較」表示をアクティブにします。
- オフセット 0 で比較を実行し、レポートをファイル名とともに保存し (このソフトウェアでは必須、次の差異を直接見つける方法はありません)、エラーの制限を 10000 に指定します (レポートが大きくなりすぎないようにするため)。
- 停止したら (ファイルの終わりまたは 10000 バイトの制限に達したら)、TXT レポートを開き、最初の差異のオフセットを WinHex の [オフセットに移動] メニューにコピーします。最初のエラー (常にセクター境界にあります) をブロックの先頭としてマークします。
- スクロールダウンして破損領域の終わりを検索します。時間がかかりすぎる場合は、1MB または 100KB を追加して終了してからスクロールアップします (WinHex でこれを簡単にする方法は見つかりませんでした)。破損領域の最後のセクターの終わりをブロックの終わりとしてマークします。
- パターン「Name_of_the_file [1111-2222]」を使用して、ブロックを新しいファイルとして抽出します。ここで、「1111-2222」は開始オフセットと終了オフセットです。
- 以前に特定された破損領域の最後から比較を再開し、ファイルの最後まで他の破損領域を検索します...
さて、この骨の折れる時間のかかるプロセスを自動化する方法はあるでしょうか?ファイルの比較に適した他の16進エディタはありますか?または、スクリプトを使用してこれをすべて一度に実行できますか?私は、という素晴らしい小さなコマンドラインツールを見つけました。ドスフォク(DS File Ops Kit) は、2 つのオフセット値間のデータ ブロックを抽出できます (まだテストしていない他の機能も含みます)。そのため、比較を実行してそれらのオフセット値を取得するには、別のコマンド ライン ツールと、それらのツールを連携させるスクリプトを作成するためのヒントが必要になります。よろしくお願いします。