NetBSD 8.1(のまま放置されていた)から 9.0_STABLE にアップグレード:
- 新しい 9.0_STABLE のカーネルを /netbsd として置きます。
- /stand/amd64/9.0/modules 以下に新しいカーネルモジュールを置きます。
- 再起動します。
すると、何故か NetBSD 8.1 が起動します(???)
(8.1 のカーネルを削除しても亡霊のように 8.1 が起動します)
$ strings /netbsd | grep 9.0_STABLE
とか実行すると、間違いなく /netbsd は 9.0_STABLE のものです。
いったい何が起きているのでしょうか?
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
こたえ:software RAID が壊れている。
- wd0a と wd1a で構成されている RAID1 (raid0a) が root filesystem で、wd0a 側が fail していた。
- wd1a だけで構成された raid0a に新しいカーネルを書き込んだ。
- 再起動すると wd0 の pbr → bootxx_ffsv2 → boot → netbsd を読みに行くので wd0a にある古いカーネルの残骸が起動する。
- 起動した後、autoconfig softroot な raid0a を root filesystem としてマウントする(証拠隠滅)。
うーん。
まあ、普通に wd1 からも boot できるようにしてあったので、それで(あとはRAIDをリペアして)解決です……。