BADSECT(8)

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

書式
badsect bbdir sector ...

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

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

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

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

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

診断
badsect は、危険な領域のブロックやファイルシステム外のブロックを追加しません。 また、ブロックが既に使用されている場合には警告を表示します。

バグ
あるファイルシステムフラグメント中の複数のセクタがバッドとなった場合、 そのうちの 1 つだけを badsect に指定しなければなりません。 バッドセクタファイル中のブロックは、 ファイルシステムフラグメント中の全てのセクタをカバーするからです。

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