この記事はNetBSD Advent Calendar 2023の18日目の記事です。
NetBSD 10.0をインストールして最初に目にする変更点として、起動時の選択メニューにキャラクタによる絵(ASCIIアート?)が追加されたことがあります。
なお、NetBSD 10.0は2023/12/16現在、まだRC1です。
まずはともあれ、NetBSD 9.xまでの起動選択画面と、NetBSD 10.0の画面を見てみましょう。MBR bootでインストールしたNetBSD/amd64のイメージをQemuで起動させています。
これはNetBSD/9.3_STABLEの起動選択メニュー画面です。
次にNetBSD/10.0_RC1の起動選択メニュー画面です。
NetBSD/10.0では、NetBSDのオフィシャルアイコンである旗が文字で表示されています。 これはPC内蔵の画面だけでなく、シリアルコンソール起動した場合も端末側に出力されます。
また、これはNetBSD/amd64のMBR boot(古き良きMS-DOS時代からの形式)画面ですが、EFI bootでも同様に表示されます。 さらにamd64だけでなくNetBSD共通のboot loaderを使う機種であれば同様に表示されると思います(手元ではNetBSD/evbarm aarch64(GENERIC64)のEFIイメージをRasPi4/400で起動した場合も表示されます)。
バナーの内容は/boot.cfgのbanner行でカスタマイズできます。
標準で表示される旗はなんだか中太りしてるみたいで微妙に感じたため、以下の様に設定してみました。
banner=\\--______,---------,____,-,-
banner= \\ __,-~
banner= \\ `~`---,-
banner= \\ ,---'~
banner= \\ ____,-----'~~~
banner= \\~ Of course it runs
banner= \\
banner= \\ N N EEEEE TTTTT BBBBB SSSS DDDD 11 00 00
banner= \\ NN N E T B B S D D 111 0 0 0 0
banner= \\ N N N EEEEE T BBBBB SSS D D 11 0 0 0 0
banner= \\ N NN E T B B S D D 11 0 0 0 0
banner= \\ N N EEEEE T BBBBB SSSS DDDD 11 00 0 00
menu=Boot normally:rndseed /var/db/entropy-file;boot
menu=Boot single user:rndseed /var/db/entropy-file;boot -s
menu=Drop to boot prompt:prompt
default=1
timeout=5
clear=1
これを設定して再起動したら以下のように確かに変更されました。
まだちょっと微妙ですが…
ブートローダーのバージョンが無いとか細かいところはおいといて。
banner内に起動環境の情報等の変数は入れられないようです。
また、コンソールがビットマップフレームバッファであっても画像等を差し込むことはできません。そこはちょっと残念(いやそこはあんまり頑張るところじゃない)。
NetBSD 9.x以前からバージョンアップしている場合、ブートローダーを置き換えないと表示されません。
手動でtar ballを展開したり、build.sh install等でupgradeしているような場合は、インストール後に /usr/mdec/boot を/bootにコピー(EFI bootの場合はbootx64.efi等をEFI bootパーティションの適切な位置にコピー)しましょう。 その際、MBR bootの場合installbootで更新しなくても、/bootのみ上書きで変更されている模様です。今後のvupによってはMBRとパーティション先頭等に置かれるbootxx_*をfdiskやinstallbootで更新する必要が出てくるかもしれません。
「NetBSD 10.0で何が変るの?(変ったの?)」という問いに対して、淡々と変更機能一覧もいいんですが、こう一目でわかる変ったところもあるんだよ、ということで起動画面のバナーについて書いてみました。
ソースのChange Logもいいんですけど、こういうところもアピールした方が良いのではと思います。
この記事は2023/12/16におおしまやが書きました。