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> プロンプトが出て起動が停止。
sataにつながったHDDがブートローダーから見えないようです。BIOSからは見えているのに・・・・・・。SATAモードはIDE。160GBなのでIDEモードで問題ないという判断です。
現象を把握するために、
- freebsd 8.3 amd64 livefs
- freebsd 8.2 i386 livefs
のCD-Rが手元にあるので、USB CDからそれぞれブートした後、コマンドプロンプトから情報を入手してみたところ、どうも、FreeBSD 8.3 でAD510 mini-itx SATAに接続されたHDDが見えないようです。
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 として認識されるではないですか。
こうなれば解決は近い。
- BIOSでSATAをIDEモードに戻す。
- FreeBSD 8.2 のlivefs で起動して、fixit モードで ad0 を /mnt にマウント
- /mnt/etc/fstab のデバイスファイルを ad0s1x → ad4s1x に書き換える
- 再びリーブートしてBIOSでAHCIモードに変更
- HDDからブート
これでFreeBSD 8.3 p3 が起動。
freebsd-update の続き作業を開始出来るようになりました。