Ubuntu
無頭 Ubuntu 伺服器機器有時卡在 GRUB 菜單
我在半嵌入式環境的單板機上安裝了 Ubuntu 10.10 Server;沒有鍵盤或螢幕,只需 SSH 訪問它。
因此,當它偶爾啟動並卡在 GRUB 菜單上,等待擊鍵選擇第一個選項時,這真的很令人沮喪。
如何將 GRUB 配置為在任何情況下都不等待擊鍵?
更新 #1:沒有 menu.lst,因為這是 GRUB 2。但我確實有一個 /etc/default/grub,如下所示:
GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=2 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX=""
更新#2:我想通了。在不成功引導之後的引導中,GRUB 禁用它自己的超時。由於顯示菜單會導致啟動失敗,因此這是一個不可避免的循環。可以通過編輯 /etc/grub.d/00_header 文件並更改 make_timeout 函式來禁用此行為:
make_timeout () { echo "set timeout=0" }
現在退出並重新執行 grub 配置更新腳本:
sudo update-grub2
對我來說,這種行為將成為 Ubuntu Server 的預設行為是沒有意義的,Ubuntu Server 是一款用於通過控制台訪問的機器的產品。
對於 Ubuntu 12.04 LTS,可以在
/etc/default/grub
.例如,如果您希望有 2 秒的超時時間(從而避免因無人參與的重啟而掛起),只需添加以下行
/etc/default/grub
:GRUB_RECORDFAIL_TIMEOUT=2
記得
update-grub
在那之後跑…
以下是 Ubuntu 10.10 的說明,與之前的版本略有不同。在文件 /etc/grub.d/00_header 中註釋掉先前啟動失敗的愚蠢檢查:
##if [ \${recordfail} = 1 ]; then ## set timeout=-1 ##else set timeout=${2} ##fi
然後更新:
sudo update-grub
請注意,如果有第二個驅動器連接了 Linux,grub2 會找到它,並在啟動時詢問您想要哪個驅動器。在執行“update-grub”之前刪除所有額外的驅動器。
另請參閱https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/797544