不良セクタについて
不良セクタとは、ハードディスクや
フラッシュメモリなどの記憶デバイスにおいて、障害が発生し正常に利用できなくなったセクタを指します。この不良セクタは、物理的な原因と論理的な原因の2種類に分類されます。物理的な不良は、工場出荷時の欠陥や、ユーザーの使用による摩耗などが原因です。一方、論理的な不良は、データが正しく読み込まれない場合などが考えられます。特に
フラッシュメモリでは、
トランジスタの劣化がこの不良の一因とされています。
多くの
オペレーティングシステム(OS)は、不良セクタを自動的に検出し、マークする機能を提供しています。たとえば、WindowsではCHKDSKやSCANDISK、
UNIX系のシステムではbadblocksがこれに該当します。マークされたセクタは使用不可として扱われ、その中のデータは消失します。ハードディスクのセクタサイズは一般的に512バイトまたは4096バイトであり、たとえその内部にある1バイトだけに障害が起きても、セクタ全体が無効化されることになります。
不良セクタの置換機能
最近の
ハードディスクドライブは、一定数の不良セクタに対して予備セクタ(代替セクタ)を持っています。この仕組みにより、不良セクタが発生することでデータの損失を防ぐことができます。置換処理はOSからは見えず、ハードディスクが自動的に行います。置換された不良セクタは、Pリスト(製造時に発見された不良)およびGリスト(使用中に発見された不良)として記録されます。
Pリストは工場で初めに特定された不良セクタのリストであり、隣接する正常なセクタで置き換えられます。これはハードウェアに組み込まれているため、データの読み取りおよび書き込み速度は正常セクタと変わりません。一方、Gリストは出荷後に発見される不良セクタを対応する予備セクタにリンクするためのもので、これが発生した場合の処理には以下の手順が含まれます。
1. 通常の読み取り時にエラーが発生した場合は、そのセクタを何度か再試行します。
2. 読み込みが成功した場合、そのデータを同じセクタに上書きしてリフレッシュします。
3. 読み込みに失敗すると不良セクタとしてマークされます。
4. かろうじて読み取れたセクタは「ペンディングセクタ」として保持されます。
5. 同時にそのデータは代替セクタにコピーされます。
6. 次回のペンディングセクタへのアクセス時に、データの比較を行い、確認します。
ベリファイが成功すれば、ペンディングセクタは正常として扱われ、代替セクタは解放されます。逆にベリファイが失敗した場合、ペンディングセクタは不良とされ、それ以降の使用が停止します。
不良セクタの置換は、予備セクタが存在する限りOSからは見えない形で進行します。もし置換されたセクタに重要なデータが含まれていた場合、プログラムやシステムがクラッシュしたり、ファイルが壊れたりするリスクがあります。このようなエラーは特にマルチメディアファイルで見逃されることが多いです。
しかし、予備セクタが不足すると、ディスクはエラーメッセージを生成し始めます。これはOSによって既に把握されている状態で、今度はソフトウェアが不良セクタをマークする動作が始まります。
S.M.A.R.T技術
S.M.A.R.T.(
Self-Monitoring, Analysis and Reporting Technology)技術を用いることで、ハードディスクの健康状態を監視し、複数のパラメータを通じて不良セクタの情報を提供します。この中にある一つの指標として、C5(197)という値があり、これはディスク上で現時点で不良とマークされたセクタ数を示します。
データ復旧の可能性
物理的に損傷したセクタの復旧は困難ですが、磁気コーティングの経年劣化などの場合には、統計的手法によって一部のデータを復元できることがあります。データ復旧ツールはまず、Gリストから不良セクタを除去し、それらを再読み込みできるようにする必要があります。この作業は簡単ではなく、メーカーごとに異なるコマンドを利用しなければならないため、ドキュメント化されていないことが多く、注意が必要です。
不良セクタは記憶媒体の信頼性に直結する問題であり、その管理と治療は非常に重要です。