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

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

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

不良セクタの置換 編集

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

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

Gリストは工場出荷後に不良セクタと予備セクタを紐づけるためのリストである。以下の流れでセクタの代替とマークが行われる[6]

  1. 通常の読み取りでエラーが発生した場合、何度かそのセクタを再読み込みする - リトライ処理
    1. リトライで読み込みが成功した場合、そのデータを同セクタに上書きして領域をリフレッシュ。以下のペンディングセクタの処理へ進む
    2. リトライで読み込みができなかった場合、不良セクタとマークされる
  2. リトライでかろうじて読めたセクターを代替保留中のセクタ(ペンディングセクタ)として登録する
  3. 同時に同データを代替セクターへとコピーする
  4. 次回ペンディグセクタへの読み込みアクセスがあった場合、ペンディングセクタと代替セクタのデータを比較してベリファイする
    1. ベリファイが成功した場合、ペンディングセクタは正常セクタに昇格し、代替セクタは解放される
    2. ベリファイが失敗した場合、ペンディグセクタは不良セクタに降格し、以降使われない

代替セクタはペンディングセクタの次のセクタにすることはできない - 次のセクタには有効なデータが残っている可能性があるため。このため、予備セクタはディスクの最後に割り当てられる。これはデータの断片化を引き起こし、また、リストがハードウェア上に実装することができない事もあり、読み出しおよび書き込みの動作は正常セクタに比較して遅くなる。

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

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

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

S.M.A.R.T. 編集

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

データの復旧 編集

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

関連項目 編集

脚注 編集

  1. ^ ディスクの不良セクタについて知っておくべきこと”. 2023年1月5日閲覧。
  2. ^ chkdsk Microsoft Learn”. 2023年1月5日閲覧。
  3. ^ badblocks ArchWiki”. 2023年1月5日閲覧。
  4. ^ CrystalDiskInfo(クリスタルディスクインフォ)の情報の見方、使い方をご紹介”. 2023年1月5日閲覧。
  5. ^ HDDが壊れるまで(後編)”. 2023年1月5日閲覧。
  6. ^ 不良セクタ・不良ブロックとはなにか”. 2023年1月5日閲覧。

外部リンク 編集