GRUB2 で、前回の選択肢をデフォルトにする


最近のわけーもんは GRUB なんて聞いたこと無いかもしれねーけど、Linux が入ったマシンを起動すると BIOS の後に出てくる画面でカーネルが選択できるようになっていて、あの画面の正体が GRUB。

多くのディストリビューションでは、新しいカーネルをインストールしても、何世代か古いカーネルが消されずに残っていて、仮に最新のカーネルで何か不具合があれば、マシンを再起動して古いカーネルを選択すれば問題無い。

また、GRUB は、Linux だけで無く Windows をブートすることも出来るので、Linux と Windows のデュアルブートマシンの起動時にどちらの OS で起動するのかをユーザーに選ばせるのにも使える

やりたいこと

タイトル通りだけど、例えば以下のような状態になってほしい。

  • 初回は普通に起動する
  • GRUB2 の画面で、上から3つ目のカーネルを選ぶ
  • 次回再起動時の GRUB2 の画面で、上から3つ目のカーネルが選ばれている状態

本来はこうやれば良い

本来であれば、/etc/default/grub に以下のような記述をすれば良い

GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true

問題点と解決策

ただ、こちらの環境 CentOS 8 では上手く行かなかった。色々検索したところ、以下の情報がそれっぽい。

1704926 – GRUB_ENABLE_BLSCFG=true breaks GRUB_DEFAULT=saved

一時的な解決策として上げられているのは以下の2つ。

  • grubby-deprecated パッケージをインストールする
  • GRUB_ENABLE_BLSCFG=true の行をコメントアウトして grub2-mkconfig を実行する

Fedora 30, 31 (と恐らくそれ以降)では直っているとのことなので、CentOS 8 でも直ってて良さそうなんだけど・・・

参考情報

コメントを残す

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