ハードウェアを確認してください

ハードウェアを確認してください

CDからデータファイルを読み込むと、非常に奇妙な動作が発生します。 CDから同じファイルのコピーを複数作成すると、データが一致しません。理由がわかりません(読み取りエラー通知がなく、他のCDは同じデバイスでうまく機能します)。

エラーは毎回異なる場所で発生するため、ファイルのコピーを複数作成し、ほとんどのコピーが同意する値を取ると、これらのエラーを修正できるようです。

ddrescueを試してみましたが、エラーを検出できませんでした(間違ったデータを取得しましたが、エラーを検出できませんでした)。しかし、ddrescueが読み取ったデータを調べると、明らかに不一致が見つかります。

それでは、ddrescue(または他のツール)を使用してコピーされたデータをチェックしてこのCDのファイルを回復し、各バイトの正しい値が何であるかを推測するために必要なだけコピーを繰り返すことができますか?

ありがとうございます!

答え1

ハードウェアを確認してください

良い解決策はありませんが、通常、CD-ROMから読み取られたデータが毎回異なる場合、CDにECCが含まれているため、問題は、欠陥のあるCDの実際の問題よりもハードウェアの問題のように聞こえます。言い換えれば、セクタを読み取ることもできないかもしれません。読み込めば安定したデータを表示します。

一部のオペレーティングシステムでは、先読み(バックグラウンドで完了)中に読み取りエラーが発生した後に任意のデータを配布できるため、このddrescueオプションを使用してソースにアクセスすることもできます。-d

他のコンピュータのハードウェアを共有していない別のコンピュータを試して、まだこの混乱の結果が表示されていることを確認してください。

ddrescueただし、注意してください:読み取りエラーがある場合は、ソースの他の部分が回復する可能性があるため、2回実行すると2つの異なるイメージが生成される可能性があります。 (作成した内容にエラーはありません。オプションが異なる場合があります-d。)

ddrescue画像を比較するツール

欠陥のあるハードウェアの問題を解決でき、他の画像を抽出することなく画像をソースと再比較したい場合は、私のツールを試してみてください。ddrescue-verify違いを診断します。

ddrescue-verifyソースコードのみが含まれているので(おそらくLinuxのみ)、開発/ビルドシステムの使い方を知っておく必要があります。

現在、ddrescue-verify使いやすい診断ツールとして設計されていません。これは、遅いネットワークリンクを介して画像が正しく取得されたことをすばやく確認できるように設計されているため、画像全体が遅い回線を介して複数回送信されるのを待つことができない状況で使用されます。

の既存の文書が不足している場合は、もはやお手伝いできddrescueませddrescue-verifyん(時間がありません。申し訳ありません)。私ができる唯一のことは、以下から抜粋したものです。ウィキペディアあなたのニーズに適応できることを願っています。

ソースからイメージを生成する元のコマンドは次のようになり、現在の作業ディレクトリで実行されます。

ddrescue -d /dev/source image.img image.log

これで検証データを生成します。

ddrescue-verify image.img image.log > image.verify

今すぐ確認/比較プロセスを実行してください。

ddrescue-verify -udis0 /dev/source image.verify > image.diff

これは、読み取れないとマークされた部分ddrescue-verify(したがってオプション)をスキップするため、高速です。sourceimage.log-d

出力によって違いがわかります。

image.diff違いも見ることができます。このファイルはログファイルと同じ形式を持ちddrescue、違いは「未読」と表示されるため、使用できますddrescuelog

可能:違いを画像にインポートする

違いを取り除くには、次のこともできます。

# The next 2 commands take a snapshot of your original image
# Probably use lvm or ZFS snapshot to not duplicate all data:
cp image.img image.orig.img
cp image.log image.orig.log
# Now pull in the differences
cp -f image.diff image.log
ddrescue /dev/source image.img image.log

これで見つかった変更をimage.img更新しました。image.log変更された部分だけを読み取ろうとするので速度が速いです(デフォルトでは1MBごとに違いが検出され、もう少しコピーします)。

注:この最後のステップは、必要なだけプロセス全体を繰り返すように設計されています。

これは完全な解決策ではありません。

完璧なソリューションを提供できないことを申し訳ありません。しかし、不明瞭な状況でデータを回復することを推測することには問題がなく、すぐに機能します。

ただし、違いを比較して抽出する方法と組み合わせたスナップショット(LVMよりはるかに高速なZFSまたはBTRFSをお勧めします)を使用すると、何が正確で間違っているかを判断できます。

関連情報