BADSECT(8)

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

書式
badsect bbdir sector ...

解説
badsect はバッドセクタを含むファイルを作成します。 正規の方法では、バッドセクタは、標準フォーマッタがバッドセクタの フォワーディングテーブルをドライバに提供する事によって、 アクセス不能にされます。 ドライバがバッドブロッキング標準をサポートしている場合、 この方法を使ってバッドセクタを取り除く方がより望ましい選択です。 何故ならバッドブロックフォワーディングはパックを完全に見せ、 そのようなパックは dd(1) でコピー可能だからです。 また badsect で採用しているテクニックはファイルシステムの i-list や スワップ領域のバッドブロック回復ができないという点で、 バッドブロックフォワーディングと比べて汎用性に欠けます。

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

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

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

関連項目
fsck(8)

診断
badsect は、きわどい領域やファイルシステム外のブロックの処理を拒否します。 また、ブロックが既に使用されている場合には警告を表示します。

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

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