web-dev-qa-db-ja.com

grub2メニューを表示できません

デュアルブートを予定しているラップトップを持っています。以前はWindows(7)で起動し、Linuxのインストール後はLinux(openSUSE)で直接起動します。 /etc/grub.d/40_customを編集して、Windowsチェーンローダーエントリを追加しました。ここまでは順調ですね。

残念ながら、Linuxインストール用のセーフモードエントリを選択しても、grub2に選択メニュー(すべて)を表示させることができません。 「ウェルカムトゥグラブ」メッセージが一瞬表示された後、デフォルトのLinuxエントリで直接起動します。

私が試したこと:

  • GRUB_TIMEOUTを整数値に、GRUB_HIDDEN_TIMEOUTをに設定する
    • ブランク
    • コメントアウト
  • GRUB_HIDDEN_TIMEOUT_QUIETを「true」と「false」の両方に設定
  • GRUB_TERMIALを「コンソール」に設定する
  • GRUB_CMDLINE_LINUX_DEFAULTからの "quiet"および "splash = silent"の削除

/ usr/sbin/grub2-mkconfigで毎回設定を再生成しています

他の情報:

  • 起動中にシフトを押し続けても、GRUB_HIDDEN_TIMEOUTの状態に関係なくメニューが表示されません
  • このマシンがUEFIを使用していないと確信しています(/ sys/firmware/efiディレクトリがありません)
  • BIOSでレガシーUSBサポートが有効になっています。

他に何か試すことはできますか?これは本当に悪化していて、grubのレガシーでこれほど多くのトラブルを経験したことはありません!

編集:

タイムアウトに関連するgrub.cfgのセクション:

if [ x${boot_once} = xtrue]; then
    set timeout=0  
Elif [ x$feature_timeout_style = xy ]; then  
    set timeout_style=menu  
    set timeout=0  
# Fallback normal timeout code in case the timeout_style feature is unavailable
else  
    set timeout=0  
fi

これは、 "timeout = 10"のgrub更新スクリプトによって表示される出力とは異なります。 grub.cfgファイルを編集すると、期待どおりにメニューが直接表示されます。

3
jam

この行が/etc/default/grub?そうでない場合は、追加してください。

GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=menu

実行update-grub後で更新する/boot/grub/grub.cfg

次の方法で、必要な変更が行われたかどうかを確認できます。
grep -i timeout /boot/grub/grub.cfg

出力には次の値が含まれている必要があります。

set timeout_style=menu
set timeout=10

grub manual から:

GRUB_TIMEOUT

キーが押されない限り、メニューが表示されてからこの数秒後にデフォルトのエントリを起動します。デフォルトは5です。 に設定してメニューを表示せずにすぐに起動するか、-1に設定して無期限に待機します。 GRUB_TIMEOUT_STYLEcountdownまたはhiddenに設定されている場合、代わりに、メニューが表示される前にタイムアウトがカウントされます。

GRUB_TIMEOUT_STYLE

このオプションが未設定またはmenに設定されている場合、GRUBはメニューを表示し、次にGRUB_TIMEOUTで設定されたタイムアウトが終了するまで待機しますデフォルトのエントリを起動する前。キーを押すとタイムアウトが中断されます。このオプションがcountdownまたはhiddenに設定されている場合、メニューを表示する前にGRUB GRUB_TIMEOUTで設定されたタイムアウトが終了するまで待機します。その間に[〜#〜] esc [〜#〜]が押されると、表示されますメニューを入力し、入力を待ちます。メニューエントリに関連付けられているホットキーを押すと、関連付けられているメニューエントリがすぐに起動します。これらのいずれかが発生する前にタイムアウトが経過すると、デフォルトのエントリが起動します。カウントダウンの場合、残り時間を一行で表示します。

6
MiniMax