FreeBSD 8.3: ASRock D510、SATAが見えない

ASRock AD510PV mini-itx を freebsd-update コマンドで、FreeBSD 8.2 から FreeBSD 8.3 にアップデート中、再起動したらOSからSATAに接続されているHDDが見えなくなってしまいました。当然OSは起動しません。

具体的には運用状態の32bit FreeBSD 8.2 を
# freebsd-update  -r 8.3-RELESE upgrade
でファイルを更新し、
# freebsd-update install
を実行した後、リブートしたところ、
mountroot> プロンプトが出て起動が停止。

Loader variables:
vfs.root.mountfrom=ufs:/dev/ad0s1a
vfs.root.mountfrom.options=rw

sataにつながったHDDがブートローダーから見えないようです。BIOSからは見えているのに・・・・・・。SATAモードはIDE。160GBなのでIDEモードで問題ないという判断です。

現象を把握するために、

  1. freebsd 8.3 amd64 livefs
  2. freebsd 8.2 i386 livefs

のCD-Rが手元にあるので、USB CDからそれぞれブートした後、コマンドプロンプトから情報を入手してみたところ、どうも、FreeBSD 8.3 でAD510 mini-itx SATAに接続されたHDDが見えないようです。

freebsd livefs 8.3

No disk found! Please verify that your disk controller is being properly probed at boot time. See the hardware guide on the documentation menu for clues on diagnosing this type of problem.



i386 8.2のlivefs で起動すると、HDDは認識されます。 amd64 8.3 のlivefs で起動すると、認識されません。SATA HDDは i386 8.3 のカーネルのはずなので、64bit/32bit の違いではなく、8.2と8.3 のドライバーの違いに起因している可能性が高いと考えられます。

別に ASRock AD2700 mini-itx のSATA接続したFreeBSDがあり、HDDに 32bit FreeBSD 8.3 をインストールした状態で稼働中なので、FreeBSD 側に原因があるというわけでは無さそうです。

よくよく思い出してみると、AD2700 に接続しているHDDは1TBなのでAHCIモードにしている可能性があります。(現在稼働中なのでBIOSでは確認出来ませんが ad4 として認識されています。)

試しにD510 もBIOSでSATAをAHCI モードにセットしてみたところ、FreeBSD 起動中にHDD が ad4  として認識されるではないですか。

こうなれば解決は近い。

  1. BIOSでSATAをIDEモードに戻す。
  2. FreeBSD 8.2 のlivefs で起動して、fixit モードで ad0 を /mnt にマウント
  3. /mnt/etc/fstab のデバイスファイルを ad0s1x → ad4s1x に書き換える
  4. 再びリーブートしてBIOSでAHCIモードに変更
  5. HDDからブート

これでFreeBSD 8.3 p3 が起動。
freebsd-update の続き作業を開始出来るようになりました。 

コメントを残す