Q. FreeBSD で不良セクタ (Bad Sector) のある IDE ハードディスクが使えますか?
また、FreeBSD は自動的に修復してくれないのですか?
A. 4.0-RELEASE 以上で採用された ad(4) ドライバでは、基本的に不良セクタの
ある IDE ハードディスクはサポートしていないため使えません。もしかしたら
[管理番号 314] にある low-level フォーマットで使えるようになるかもしれ
ませんが、素直に問題のない HDD に交換した方が良いでしょう。特にそれ以前
のリリースで、bad144(8) による bad sector table を持つ HDD を使用してい
た場合、システムをアップグレードすると、次のようなエラーメッセージが表示
されて起動に失敗します。
Mounting root from ufs:/dev/ad0s2a
ad0: bad sector table not supported
ad0s2a: bad sector table not supported
Root mount failed: 22
もし、万一このような状態になったら、慌てず騒がず別のマシンにこの HDD
をつなぎかえ、dump(8) するか強制的に mount(8) して、必要なファイルの
バックアップを取れば良いでしょう。3.x ベースのカーネルを保存してあれば、
つなぎかえる必要はないかもしれません。
# mount -f -o ro /dev/ad2s2a /mnt
以下の説明は FreeBSD 4.x 以降では使えないか、あまり一般的な方法ではあり
ません。IDE HDD やファイルシステムについて、それなりの知識を要求される
方法でもあります。
以前の wd(4) ドライバでは、bad144(8) コマンドによる不良セクタの代替処理
が使えます。ファイルシステムとして使用中のセクタを代替することもできます
が、決して勝手に修復してくれるわけではありません。また、代替用のセクタを
確保しておかなければならないので、newfs(8) 前に HDD 全体をスキャンしてお
いた方が安全です。FreeBSD のインストーラ sysinstall(8) からでは、FDISK
Partition Editor の "B" コマンドを指定すると bad144 が実行されます。
それから badsect(8) というコマンドもあります。これは不良セクタを特別なファ
イルに閉じ込めることで、通常のファイルとして使わないようにするもので、い
くつかの制限事項はありますが、FreeBSD のリリースに関わらず使えるはずです。
グループ名: bad-sector