Q. `panic: cannot mount root' で FreeBSD が起動しない。
A. FreeBSD を一台目以外の HDD にインストールしていますね。これはブートブ
ロックとカーネルにおいて、HDD のユニット番号の認識が食い違っているため
に起こります。この症状については FreeBSD FAQ にも解説がありますので、
次の URL を参照してください。
<URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/faq/install.html#PANIC-ON-INSTALL-REBOOT>
1. FreeBSD 3.3-RELEASE 以降
マシンを起動すると
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 9 seconds...
という loader(8) のメッセージが表示されるので、ここでリターンキー以外
のキーを押してコマンドモードに入り
set root_disk_unit=2
boot
としてください。これで IDE ならセカンダリマスタから FreeBSD が起動する
はずです。このとき指定する数字はインストールした HDD によって次のよう
に読み換えてください。(GENERIC カーネルのとき)
+-------------------------------+----------------------+
| IDE | SCSI |
+---------------+---------------+----------------------+
| Primary | Secondary | |
| Master Slave | Master Slave | 見付けた順に 0,1,2… |
| 0 1 | 2 3 | |
+---------------+---------------+----------------------+
これで正しく FreeBSD がブートできたら
# echo "root_disk_unit=2" >> /boot/loader.conf
とすれば、次からブートローダでの指定はいらなくなります。設定ファイルは
/boot/loader.conf.local でも良いのですが、どちらかに統一した方が後で
混乱しなくて済みます。
2. FreeBSD 3.2-RELEASE 以前
起動時に `Boot:' と表示されたところで (3.0-RELEASE 以降では loader(8)
が読み込まれる前に Enter 以外のキーを叩くことで表示されます)、
IDE + IDE で 2 番目の IDE がセカンダリのマスタの場合は
1:wd(2,a)/kernel
IDE + SCSI の場合は
1:sd(0,a)/kernel
を入力してください。
IDE 2 台 + SCSI とか SCSI の 2 台目とかの場合は適宜 1: の数字や
?d(0,a) の 0 を 1,2 に変更してください。一般には、
<BIOS>:<CTRLR>(<UNIT>,a)/kernel
という形式で、
<BIOS> BIOS から見たディスクの番号。最初のドライブは `0'。
<CTRLR> コントローラを指定します。
IDE なら `wd'、SCSI は `sd' (3.0-RELEASE 以降では `da')
<UNIT> コントローラ上のドライブのユニット番号。上記の表を参照。
です。
なお次回のブート時にデフォルトとするには、
# echo "1:wd(2,a)/kernel" > /boot.config
のようにします。
グループ名: boot-config