デュアルブートでGrubメニューが出ない

デュアルブートでGrubメニューが出ない

Ubuntu26.04LTS が公開されましたのでデュアルブート環境の Ubuntu25 を削除して入れてみたところ Grub メニューが出なくなり、ちょっと手間取りましたのでその記録です。

01/etc/default/grub を編集

grub でのデュアルブートはそれなりに理解しているつもりでしたが、このケースは初めてです。

まず、gurb の設定変更は /boot/grub/grub.cfg を直接変更するのではなく、

  • /etc/default/grub を編集する
  • update-grub を実行する

の手順を取ります。管理者権限が必要です。

その /etc/default/grub を見てみますと、

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=( . /etc/os-release && echo ${NAME} )
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

となっていますので

GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5

GRUB_TIMEOUT はメニューを表示する秒数ですので適当な数字に変更します。これで OK だろうと、管理者権限で sudo update-grub として再起動してみます。

ところがメニューが出ません。

02GRUB_DISABLE_OS_PROBER か?

で、思いついたのが、GRUB_DISABLE_OS_PROBER です。

実は以前、Ubuntu と openSUSE のデュアルブートに苦労したことがあり、その時知ったのが、Ubuntu22.04 から他の OS を探さなくなっているということです。

詳しくは上のリンク先をご覧ください。

で、/etc/default/grub を見てみますと

#GRUB_DISABLE_OS_PROBER=false

とコメントアウトされています。これだ!とコメントアウトを外して…と思ったんですが、ただ、さっき update−grub を実行したときに Ubuntu 24.04 の表示を見ているよなあと思い直し、grub.cfg を確認してみたところ、たしかにメニュー項目に Ubuntu 24.04 があります。

どういうこと?!

03GRUB_TERMINAL=console だった

で、再度 /etc/default/grub をチェックしてみますと

# Uncomment to disable graphical terminal
#GRUB_TERMINAL=console

GRUB_TERMINAL というディレクティブに「グラフィカルターミナルを無効にするにはコメントを解除」とあります。コメントアウトを外し、update−grub して再起動してみました。

出ました!

どういうこと? と、Gemini に聞いてみました。

GRUB_TERMINAL は、Linuxのブートローダー(GRUB)の設定ファイル /etc/default/grub で使用される変数です。GRUBメニューを表示する際の入出力インターフェース(キーボードやディスプレイ)を指定します。

主な設定値

  • console: 標準のPC/ATキーボードとVGAモニター(画面)を使用します。
  • serial: シリアルポート/シリアルコンソールを使用します。
  • console serial: 両方に表示と入力を出力します(物理的な画面とシリアルコンソールの両方でGRUBメニューを操作したい場合に便利です)。
  • gfxterm: グラフィカルなターミナル(解像度の高い画面や背景画像)を使用します。

gfxterm を試してみましたところ対応していないということでした(笑)。

これまで気にしたこともなかったんですけどね。console がデフォルトであったものが gfxterm に変更になったんでしょうか(未確認…)。