BADSECT(8)

名称
badsect - バッドセクタを含むファイルを作る

書式
badsect bbdir sector ...

解説
badsect はバッドセクタを含むファイルを作成します。 通常、バッドセクタはフォーマッタがアクセスしないようにしてしまいます。 このとき、フォーマッタはドライバ用にバッドセクタのフォワーディングテーブルを 作ります。 詳しくは bad144(8) を参照して下さい。 もしドライバがこの方法をサポートしているならば、 バッドブロックを孤立させる badsect の方法よりもこちらの方法が好ましいでしょう。なぜなら、 バッドブロックフォワーディングはパックを完全に見せ、そのようなパックは dd(1) でコピー可能だからです。 本プログラムで採用している方法はバッドブロックフォワーディングよりは 一般的ではありません。 なぜならば badsect はファイルシステムの i-list のバッドブロックを回復することができませんし、 スワップ領域のバッドブロックも回復することができないからです。

突然バッドとなったセクタをバッドセクタテーブルに追加するためには、 ディスクによっては現在のところ、 標準の DEC フォーマッタを実行する必要があります。 このため、新たに生じたバッドブロックを扱う場合、 およびドライバがバッドブロッキング標準をサポートしていない場合には、 badsect が有効かもしれません。

badsect は、ファイルシステムが静かな状態で、以下の方法で使用して下さい。 まず、ファイルシステムをマウントし、そのルートディレクトリに移動します。 ここに BAD という名前のディレクトリを作ります。 badsect コマンドに、引数として、このディレクトリと追加したいすべてのバッドセクタを 指定して実行します セクタ番号はファイルシステムの先頭からの相対で指定しなければなりませんが、 システムがコンソールエラーメッセージに表示するのは相対セクタ番号であるため 難しくはありません。 その後、root ディレクトリに移動し、 そのファイルシステムをアンマウントしてから、そのファイルシステムに対して fsck(8) を実行します。 fsck(8) は傷ついたバッドセクタを含むファイルを削除しますが、 BAD/nnnnn ファイルは削除 しないように してください。 以上の操作によりバッドセクタは BAD ファイルにのみにあることになります。

badsect は mknod(2) の引数にセクタ番号を指定してコールすることで、 最初のブロックが指定したバッドセクタを含み、ファイル名がその バッドセクタ番号である正しくないファイルを作るという動作をします。 fsck(8) は、このファイルを発見すると “HOLD BAD BLOCK ?” と聞いてきます。 これに対して y と答えると、 fsck はその inode を、バッドブロックを含む通常ファイルにコンバートします。

関連項目
bad144(8), fsck(8), format(8)

診断
badsect は、重要な領域にあるブロックや、ファイルシステムの範囲外にあるブロックの 割り当ては拒否します。 ブロックがすでに使用中の場合は警告が発せられます。

バグ
1 つのファイルシステムフラグメント中の複数のセクタが悪い場合は、 バッドセクタファイル内にあるブロックは、実際に 1 つの ファイルシステムフラグメント内にその全てのセクタを含んでいるので、 その悪いセクタのうちの 1 つを badsect に指定すべきです。

歴史
badsect コマンドは 4.1BSD から登場しました。