不良セクタ

これはこのページの過去の版です。WikiTapeUser (会話 | 投稿記録) による 2023年1月5日 (木) 09:31個人設定で未設定ならUTC)時点の版 (S.M.A.R.T.)であり、現在の版とは大きく異なる場合があります。

不良セクタ(bad sector)とはハードディスクまたはフラッシュメモリなどの記憶媒体において、何らかの障害によって利用できなくなったセクタのことである。 ハードディスクの場合、工場出荷時の不良やユーザー使用時の磁気ディスクの摩耗が原因となる。フラッシュメモリの場合、その原因はトランジスタに起因するものが考えられる。

ほとんどのOSでは不良セクタを検出してマークする機能がある(WindowsではCHKDSKSCANDISK、Unixベースのシステムではbadblocks)。マークされたセクタは使用されなくなり、データは消失する。

セクタの大きさは512バイトあるいは4096バイトである。これはディスクが処理できる最小単位の情報であるため、仮にセクター中1バイトだけに障害が発生した場合でも、セクタ全体が利用不可としてマークされる。

不良セクタの置換

近年のハードディスクドライブは、予備のセクタ(代替セクタとも)をあらかじめ持ち、ある程度の数の不良セクタを置き換えて対処する仕組みがある。この置換はOSなどのシステムからは不可視でディスクが自動的に処理する。置換されたセクタはリストとして記憶されるが、これにはPリスト(Primary list)およびGリスト(Grown list)の二種類がある。

Pリストは製造段階で発生した不良セクタのリストである。不良セクターは隣の正常セクタで代替される。Pリストはハードウェアに実装されるため、読み出しおよび書き込みの動作速度は正常セクタと同等である。

Gリストはディスクの動作中に不良セクタと予備セクタを紐づけるためのリストである。 何度かセクタの読み書きを試行しても失敗する場合、または、チェックサムと一致しない場合、そのセクタは不良と自動的にタグ付けされ、Gリストに紐づけられる。この場合、予備セクタを次のセクタにすることはできない - 次のセクタには有効なデータが残っている可能性があるため。このため、予備セクタはディスクの最後に割り当てられる。これはデータの断片化を引き起こし、また、リストがハードウェア上に実装することができない事もあり、読み出しおよび書き込みの動作は正常セクタに比較して遅くなる。 通常、不良セクタの置換は書き込み時に行われ、読み込み時にタグ付けされる。 このため、不正なチェックサムであっても、その一部に有効なデータが含まれている可能性がある不良セクタを読み取ることができる。

オペレーティングシステム

セクタの予備がある限り、不良セクタの置換はオペレーティングシステムからは完全に不可視で行われる。間接的に置換が起きたことを知覚できるケースとして、置換されたセクタに重要な情報が含まれる場合がある。この情報がないとプログラムまたはシステム全体がクラッシュしたりファイルが破損したりする。マルチメディアファイルではこのようなエラーはしばしば見過ごされることがある。

予備セクタがなくなるとディスクはエラーを生成し始める。これはオペレーティングシステムによって既に登録されており、今度はソフトウェアが不良セクタをマークし始める。

S.M.A.R.T.

SMART技術では複数のパラメーターに基づいてハードディスクの健康状態を監視することが可能である。このパラメーターのうちの1つ(C5(197) - Current Pending Sector Count)が不良セクタであり、ディスク上で不良とマークされたセクタの数を示す。

データの復旧

物理的に破損しているセクタは復旧することはできない。しかしながら、磁気コーティングの摩耗などが原因の場合には統計的方法によって、セクタ内の一部またはすべての情報を復元できる可能性がある。 データ復旧ツールは最初にGリストから不良セクタを削除し、それらを読み込み出来るようにする必要がある。この方法単純ではない。ドキュメント化されておらずメーカー毎に異なるコマンドを使用する必要があるためである。

関連項目

外部リンク