巡回冗長検査(CRC)エラーが出た時の原因と修復法について簡単にわかるようにまとめました。
パソコンを操作しているとき、急にCRCエラーなどというメッセージが出ることがあります。
特にファイルをコピーしたり移動したりしたときにただCRCエラーなどというダイアログメッセージが出てファイル操作が失敗するため、意味がわからずびっくりしてしまうかもしれません。
そもそもCRCとは何でしょうか?
巡回冗長検査(CRC)とは、データが破損していないかどうかチェックするために付与される冗長データのことで、誤り検出符号と呼ばれるものの一種です。
元データに対してある数学的計算を行い、その結果を元データに付与します。
元データが変わらなければ何度計算してもその結果は変わらないため、もしデータが破損すれば付与されたCRCデータが合致しなくなり、データが破損しているということがわかります。
このように自動的にデータが破損していないかどうか確認するためのOSの機能であるわけです。
つまり、CRCエラーが出たということは、あるファイルのデータとCRC値が合っていないからファイルが壊れているよ、ということをWindowsが知らせており、壊れたファイルの移動やコピーを禁止している状態だということです。
では、CRCエラーが出たらどうすればいいでしょうか?
まずはWindows標準の機能でエラー修復を試みることができます。
CRCエラーが起きたファイルが保存されているドライブを右クリックし、プロパティ→ツール→エラーチェック内のチェックボタンを押します。エラーが検出された場合、ドライブのスキャンと修復を選択すると修復できる場合があります。
ただし、単にエラーが起きたディスク部位に使用不能の印を付けてデータを消されてしまうことが多いでしょう。
少し専門的な話になりますが、CRCは「誤り検出符号」であって「誤り訂正符号」ではありません。
例えば誤り訂正符号の一種であるハミング符号は、元データが1ビットだけ壊れている場合は壊れているビットを正しいビットに直すことができ、元データが2ビット壊れているときは修復はできないが2ビットが誤っていることを検出できます。
しかし、CRCには壊れたデータに対して、どのビットが化けていて元のビットはどうだったかを知る能力がありません。
よって、WindowsがCRC情報からデータ破損を知ることはできても、ディスクチェックによって修復することは期待できません。
ではどうしようもないかというと、一般的なデータ復旧の手段で破壊前のデータを拾える可能性があります。
特にSSDなどのフラッシュメモリを使ったメディアならば、壊れる前のデータが他の場所に消されずに存在していることが十分に期待できるため、他のファイル消失トラブルと同様に解決できるかもしれません。
個人での対処は難しいため、データ復旧ソフトやサルベージサービスに頼んでみるのをおすすめします。
また、CRCエラーが起こったディスクは物理的に損傷が起きている可能性がありますので、新しいディスクに買い換えることをおすすめします。
コメント