2012年12月31日月曜日

linux( Ubuntu ) 古いカーネルの削除

前もどっかでメモした記憶があるんですが、ちょっと困った状態にPCがなり調べてたら、設定やらコマンドが昔と変わってたので、一応メモ。

1.現状
ノートPC(aspire-one)はいろんな実験環境で、windows-XPにUbuntu-11、これにさらにBT5R3をインストールしたという、かなり危ない状態です。BT5R3はUbuntuベースなんで、先に入ってたUbuntu-11と特に問題も起こさず、boot-loaderは同じgrubだったのはよかったんですが、なぜかboot時のメニューリストでUbuntu-11の方が5,6個でてくる状態に・・・

2.調査
こんなときは、grubの設定ファイル(/etc/grub.d/grub.conf)を修正してやれば、と思って「そういえば、現状Ubuntuが2個入ってるけど、どちらのgrub設定で動いてるんだ?」としばし悩み、順当に考えれば、後から入れたBT5R3だろうとそちらで起動。
ところが設定ファイルが見つかりません。/etc/grub.dの下は何かのスクリプトしかない。いつからこんな風になったんだ?しばらく悩んで思い出したのが、そういえばgrubは/boot/grubにあることを。さっそくそこを調べると、何か大量のファイルがあり(以前は設定ファイルと少しだった気が)、grub.confはやはり存在しません。
それらしいのがないか見てみると、grub.cfgというのが見つかりこれだろうと中を見ると、ファイルの最初がなんかスクリプトっぽくて、その後ろにありました、起動時の選択リストのデータが。それで判明したのが、Ubuntu-11の方は何度かカーネル更新してたらしく、古いカーネルが削除されずに残っていて(でも、Ubuntu-11を使っているときはとくに起動時にメニューは増えませんでした)、BT5R3をインストール時に、ご丁寧に調べてくれて、それを全部起動時の選択リストにいれてくれていたことでした。

3.修正
さて現状の状況が把握できました。ということはBT5R3側の/boot/grub/grub.cfgを何とかすればいいんですが、このファイルはread-onlyでファイルの最初に直接編集するな、/usr/sbin/grub-mkconfigを使えとのこと。試しに起動してみると、なにもコマンド入力は要求されず、HDDの状態を自動的に調べて、起動可能なシステムを設定ファイルに列挙するスクリプトのようです。

(1)古いカーネルの削除
ということでまずはUbuntu-11の古いカーネルの削除から始めます。Ubuntu-11でシステムを起動して、以下のコマンドでインストールされているlinux-imageをリストアップします。

dpkg -l | grep linux-image

表示されてくるものは、linux-image-2.6.15-23-386だったり、linux-image-2.6.15-23-genericとかでてきますが、基本注意するのはバージョンの数字のところです。残したい最新のバージョンだけ注意して、古いものを以下のコマンドで削除します。(慎重に作業してください!間違えると、取り返しがつきません。)

sudo apt-get remove --purge linux-image-2.6.15-23-generic


(2)grub設定ファイルの更新
さてこれで古いカーネルは削除できたので、/usr/sbin/grub-mkconfig(当然、sudoつけます)でgrubの設定ファイルを更新してやればいいだろうと、そのままUbuntu-11で実行しましたが、でもここで更新されるgrub設定ファイルはBT5R3のgrubからは見えない位置・・・ ダメじゃん!
今のPCはBT5R3のgrubで起動しているはずなので、BT5R3でシステムを起動しなおして、/usr/sbin/grub-mkconfigを実行しましたが、今度はBT5R3インストール時とは異なり、Ubuntu-11のファイルシステムは調べてくれません。(-"-)
当たり前といえば当たり前の結果に暫く悩み、結局grub.cfgの手動修正を実行、無事起動時にでてくる大量のシステム選択リストはきれいになりました。


PS
その後、別のPCでも同様の問題が発生しました。よくよく調べてみると、ちゃんと以下の様にオプションを与えてあげないとダメでした。(前回は何もオプションなしでやったので、本来grub.cfgに出力される内容を画面に出力していただけで終わっていた)

> /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg

これで異なるディストリビューションのカーネルも調べて、設定ファイルに反映してくれるようになりました。



0 件のコメント:

コメントを投稿