Home > データ復旧のニュース一覧 > 記事ページ

CRCエラーって、物理障害?

2ちゃんねるネタ

【HDD】ハードディスク復旧センター10
http://peace.2ch.net/test/read.cgi/hard/1392680285/929

929 :不明なデバイスさん:2016/02/27(土) 00:55:48.10 ID:hplOSANN
外付けHDDがCRCエラーだってよ。
これは自力では復元できそうにないな。
物理障害っぽい。

DDRescue より

そもそもCRCエラーってなんだ? Google先生に聞いてみても、Wikiでも、「巡回冗長検査(じゅんかいじょうちょうけんさ、英: Cyclic Redundancy Check, CRC)は、誤り検出符号の一種で、主にデータ転送などに伴う偶発的な誤りの検出によく使われている。送信側は、入力されたデータ列をもとに一種の割り算に似た計算を行い、その余りをチェック用の値として追加した上で送信する。受信側では、受け取ったデータを元に同じ計算を行い、その結果をチェック用の値と比較してデータ破損の有無を判断する。」なんて書いてあるだけで、何がなんだか訳が良く分からない。 



CRCエラーというのは、こういうことなのだ。

HDDのセクタに書かれているデータは、RLL符号化という技術が使われ、圧縮されるとともに、ECC(error check and correction:誤り検出訂正)用のコードが追加されているのだが、更に「書き込み時と、読み出し時の同一性」を確認するために、CRCによるチェックも実行されていて、セクタ内にそのための専用のコードを書き込むための領域まで用意されている。そのCRCによって異常が検出されたことを示している。つまり、「読み出したデータに異常があるぞ!」と警告された訳で、リードエラーの一種なのだ。だから、物理障害であると即断できる訳ではない。

勿論、軽度の異常(読み出し時のエラー:リードエラー)であれば、CRCが機能する以前にECC機能で訂正され問題とならず、更に重症な場合でも、HDD自体の機能である「リード・リトライ」が働き、何度も再読出しが実行されるし、それが同一セクタで何度も繰り返されると、ペンディング処理によるデータの書き直しが行われ、それでも改善されなければ、別のセクタにバックアップされて、「代替セクタ処理」が行われるという仕組みになっているので、徐々に障害が進行するような場合は、使っているユーザに気付かれることなくか自動的に解消してしまっているのだ。

それにも関わらず、CRCエラーと表示されるのは、そのような予兆現象が無く、読み出したデータに突然異常が検出されたことを示している訳だ。

だから、物理障害の中でも短時間に重症となってしまう「ヘッドクラッシュ」などがCRCエラー発生の原因である確率が高く、「CRCエラー=物理障害」と考えている人が多く、リードエラーの一種であることを理解している人は稀なのだ。