FreeBSD 11 で ATA スタックに完全移行2015年10月13日 13時20分53秒

Revision 289137 で ata 以前の互換レイヤーが削除された。いわゆる、以前は ad4 でアクセスしていたディスクが ada0 になった件だ。

この変更により fstab に ad4s1a などと、古い形式で記述されていると、起動に失敗するようになる。最初の init プロセスが始まるところでカーネルが落ちて、re-mount に失敗すると言ったエラーが出る。

fstab を更新しないままでいたので、急に 11 CURRENT のカーネルが起動しなくなって驚いた。以下がパニック時のエラーを手で複写したもの。

Trying to mount root from ufs:/dev/ad4s3a [rw]...
mountroot: waiting for device /dev/ad4s3a ...

mountroot>
panic: mountroot: unable to (re-)mount root.
cpuid = 0
KDB: stack backtrace:
db_trace_self_wrapper(...)
kdb_backtrace(...)
vpanic(...)
vfs_mountroot(...)
start_init(...)
fork_exit(...)
fork_trampoline()
--- trap 0, epi = 0, esp = 0xf1b8bd20, ebp = 0 ----
KDB: enter: panic
[ thread pid 1 tid 10002 ]
Stopped at       kdb_enter