無法顯示 grub2 菜單
我有一台筆記型電腦,我打算雙啟動。它以前引導到 Windows (7),現在在 Linux 安裝後直接引導到 Linux (openSUSE)。我已經編輯
/etc/grub.d/40_custom
添加了 Windows 鏈載入器條目。到現在為止還挺好。不幸的是,我根本無法讓 GRUB2 顯示選擇菜單*,*甚至無法為 Linux 安裝選擇安全模式條目。我收到“歡迎使用 grub”消息的瞬間閃現,然後它直接啟動到預設的 Linux 條目。
我嘗試過的事情:
設置
GRUB_TIMEOUT
為整數值GRUB_HIDDEN_TIMEOUT
並
- 0
- 空白的
- 註釋掉
設置
GRUB_HIDDEN_TIMEOUT_QUIET
為兩者true
和false
設置
GRUB_TERMINAL
為console
刪除
quiet
和splash=silent
從GRUB_CMDLINE_LINUX_DEFAULT
我每次都在重新生成配置
/usr/sbin/grub2-mkconfig
其他資訊:
- 無論處於何種狀態,在啟動過程中按住 shift 不會調出菜單
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
這與 grub 更新腳本顯示的輸出不同,後者有
timeout = 10
! 直接編輯grub.cfg
文件會按預期顯示菜單。
這條線是否存在於您的
/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 手冊:
GRUB_TIMEOUT
在菜單顯示幾秒鐘後引導預設條目,除非按下某個鍵。預設值為5。設置為0以立即啟動而不顯示菜單,或設置為**-1以無限期等待。如果GRUB_TIMEOUT_STYLE設置為countdown**或 hidden,則會在顯示菜單之前計算超時。
GRUB_TIMEOUT_STYLE
如果此選項未設置或設置為menu,則 GRUB 將顯示菜單,然後等待GRUB_TIMEOUT設置的超時到期,然後再引導預設條目。按一個鍵會中斷超時。如果此選項設置為countdown或hidden,則在顯示菜單之前,GRUB 將等待 GRUB_TIMEOUT設置的超時到期。如果在此期間按下ESC,它將顯示菜單並等待輸入。如果按下與菜單項關聯的熱鍵,它將立即啟動關聯的菜單項。如果超時在其中任何一個發生之前到期,它將引導預設條目。在倒計時在這種情況下,它將顯示剩餘時間的單行指示。