カーネルアップデートとmenu.lst | ubuntuで働く

ubuntuで働く

仕事で使うPCもubuntuで。


前回のエントリ で、パーティション変更の落とし穴があったことを書いたが、まだまだ落とし穴が待っていた。

その後、カーネルをアップデートしたところ、こんな入力を求められた。

What would you like to do about menu.lst?

ああ、menu.lstが手動で書き変えられているから、新しいカーネルの行をどう追加したらよいものか尋ねてきているのだな、ということは分かるのだが、肝心のオプションが妙ちくりんな日本語なので意味が分からない。

仮におかしくなっても、後でどうにでも直せるだろうと思い、とりあえず「パッケージメンテナのバージョンをインストール」を選択。きっと、現行のmenu.lstに最新のカーネルの行を追記するだけのオプションだろう、と。

カーネルアップデート完了後、ちゃんとmenu.lstの中身を確認すれば良かったのだが、確認せず再起動したところ、案の定grubで停止した。

LiveCDでubuntuを起動して、HDDのubuntuのmenu.lstを確認してみたところ、前回のパーティション変更に伴い修正したブートディスク情報がきれいに初期化されていた。追記ではなく、完全に初期化。何たる仕様。

そこで前回同様、hd(0,7)のように変更前のパーティション番号に戻ってしまっているものを、全てhd(0.5)のような新しいパーティション番号に再度修正する。

その後、MBRも書き換えなければならないのでgrub-installする。

前回 は、LiveCDでブートした上でHDDのubuntuを起動しgrub-installしろ、というwikiの指示に従ったのだが、そんなことをしなくても、grub-installのオプションを指定すればLiveCDからでもgrub-installが可能なようだ。

# sudo /usr/sbin/grub-install --root-directory=/media/disk /dev/sda

のように、--root-directoryに、HDDのubuntuの/(ルート)ディスクを指定してやればよい。

これで無事にHDDからubuntuを起動することができた。

ちなみに、これだけだと次回カーネルアップデートをする際も同じことが起きてしまう。これを防ぐには、menu.lstの中のgrootというパラメータを変更すれば良いようだ。

## groot=(hd0,7)

のようになっている箇所を、"hd0,5"など、新しいubuntuのルートパーティションに変えてやればよい(ちなみに、コメント#は消さなくてよい)とのことだが、まだテストはしていない。

このパラメータを使うのだろう、ということはすぐに推測できたが、まさか、頭に"#"がついていながら既にパラメータとして機能しているとは・・・予想外。