シリアルコンソールでGRUBを

うちのサーバは、通常用のFreeBSDと、トラブル時にバックアップからrestoreで復旧する時に起動するための別のFreeBSDとのデュアルブートになっている。 また、通常はモニタもキーボードも接続せず、make world等の為にシングルユーザモードに落ちる時は、シリアルコンソールエミュレータのkermit をインストールしたDOSマシンから操作するようになっている。

で、トラブル時に復旧用のFreeBSDマシンから起動させる必要が有るわけだが、FreeBSD標準のブートセレクタは、シリアルコンソールに対応して内っぽいので、現状では、復旧時はモニタとキーボードをサーバにつなぐ必要があった。これは不便、ということで、シリアルコンソールに対応したブートセレクタに入れ替えようと思った次第。

と、いうわけで、GRUBをインストールして、Linnux JFのRemote Serial Console HOWTOに書かれているとおりに /boot/grub/menu.lst をつくってみた。

が、うまくいかない。確かにシリアルコンソールには何がしかのメッセージが表示されているのだが、文字化けしてよくわからない。GRUBが想定しているコンソールがVT100で、kermitがVT320互換なせいだろうか。 grub-terminfo とかいうコマンドで、grubが想定するコンソールの種類を設定できそうなのだが、 /usr/local/sbin/grub-terminfo VT320 などと実行してもエラーが出る。ぐぐって見たところ、どうやらFreeBSDはncursesをインストールする必要があるようだ。

ということで、 devel/ncurses をインストールして、 /usr/local/sbin/grub-terminfo VT320 を実行。さらにgrub-install。

これで、動くようになった、かな?

(追記) /usr/local/sbin/grub-terminfo VT320 だとダメ。 /usr/local/sbin/grub-terminfo kermit ならOKだった。

(追記2) メニューから復旧用のFreeBSDを起動することができない(通常用のFreeBSDが起動する)。grubプロンプトから直接、

grub> root (hd0,0,a)
grub> kernel /boot/loader
grub> boot

とすれば起動してくれるのだが。

コメント(0)



Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。