Linux Mintのカーネルの変更に手間取ったときの話

 もう、大分前になるのですが、カーネルのアップデートをしたときに、Sambaでファイル共有しているファイルを表示したら、これまで表示されていた、空き容量の表示がされなくなったことがありました。よく見てみると、フォルダー内のファイルで表示されていないものがあることに気づきました。”df -h”でドライブ情報を確認すると、Sambaをマウントしているドライブは、メモリー関連のエラーが出ていて、アクセス不可となってました。メモリー確保関連かなにかのバグが発生しているような感じです。幸い、ファイルが壊れたりはしなかったのですが、いろいろいじってみても、改善されなさそうにないので、一度、カーネルを元に戻してみることにしました。

 Linuxなので、簡単に戻せるだろうと思って調べてみると、起動時に出てくるGRUBメニューから、”Advanced options・・・”を選択すると、インストールしてあるカーネルが表示されるので、起動したいカーネルのバージョンを選択すれば、そのカーネルで起動できるというものでした。
 カーネル変更のサイトを見ると、カーネルのインストール方法から出てくるのですが、ぼくの場合、アップデートしたカーネルを削除したことがないので(HDDの容量圧迫をあまり気にしなくて良い時代がくるとは・・・)、以前のカーネルは残っているはずなので、GRUBメニューが表示されれば、簡単に変更できることがわかりました。
 ところが、恐らく、Linux Mintのインストール時の設定で指定したのでしょう、現状では、GRUBメニューは表示されていません。この場合、起動時に、Shiftキーや、Escキーをタイミングよく押せば(連打すれば)、表示されるとのことだったのですが、なぜか、うまく行きませんでした。こういう、ちょっとしたことを調べるのにも、それなりに、時間がかかってしまったので、メモを残しておきます。

 GRUBメニューの設定は、/etc/default/grubに書かれているようで、ぼくの場合以下のように変更しました。

  • GRUB_TIMEOUT_STYLE=hiddenをmenu (恐らくGRUBメニューを表示するかどうかの設定)
  • GRUB_TIMEOUT=0を5 (恐らくGRUBメニューを表示する時間の設定 単位は秒と思われる)

この後、sudo update-grubを実行した後、再起動をかけたところ、GRUBメニューが表示されて、無事、カーネルを変更することが出来ました。

 カーネルを一つ前に戻したところ、上記の不具合が起こらないことが確認できたので、カーネルの修正が行われるまでは、このバージョンを使うことにしました(ちなみに、現在は、修正されていて、その後、何回か、バージョンアップしてますが、不具合は発生しておりません)。
 そうなると、いちいち、GRUBメニューから選択するのは、面倒なので、デフォルトで起動するカーネルを一時的に変更することにしました。設定方法はいろいろあるようですが、ぼくは、こちらを参考にさせてもらいました。

 /etc/default/grubを開きます。GRUBメニューのデフォルトで起動するメニューの指定は、GRUB_DEFAULTで指定するようです。現状は0が指定されていて、これは、GRUBメニューの一番上が指定されているという意味のようです。この数字は、/boot/grub/grub.cfgで確認出来るようで、”menuentry”で表示されるメニューの順番を表していて、一番上の”menuentry”が0、次の”menuentry”が1というようになっているようです。つまり、0始まりでメニューの表示順を表しているということのようです。”Advanced options・・・”はサブメニューを持っているので、”submenu”以下の順番を”1>2″(Advanced options・・・の表示番号>サブメニューの番号)のように設定すれば、デフォルトで起動するメニューを変更できるということみたいです。
 ぼくは、番号指定だと、カーネルをアップデートすると、メニュー表示の順番が変わる可能性があって、その度に設定の確認、変更をしなければいけなくなりそうなので、文字列で直接メニューを指定する方法を試すことにしました。GRUB_DEFAULTに直接指定してもいいようですが、”saved”を指定しておくと、grub-set-defaultコマンドで指定したものが、反映されるようなので、GRUB_DEFAULTにsavedを指定することにしました。その後、sudo update-grubを実行して、GRUBメニューの設定を反映させます。こうしておくと、メニューの指定を失敗した場合や、変更したい場合に、コマンドで変更可能になるので、使い勝手がいいと思いました。

コマンド例は、以下になります。
sudo grub-set-default "Advanced options for Linux Mint xx.x MATE>Linux Mint xx.x MATE, with Linux x.xx.x-xx-generic"

“x”は、各バージョン関連の数字が入ります。MATEの部分なんかも、お使いの環境に合わせることになりますので、表示されたGRUBメニューを記録するとか、grub.cfgをよく見て指定してみて下さい。

これで、以前の環境に戻すことができました。カーネルが修正されたら、GRUB_DEFAULTを0に設定して、sudo update-grubを実行すれば、元に戻ります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です