
澄清一下,我想要雙啟動 Windows 和 Linux 發行版。我已經知道如何設定我的筆記型電腦來做到這一點。但是,我不希望在啟動時顯示 grub 選單。我希望它預設自動啟動 Windows,除非在啟動時按下修飾鍵(例如 ctrl)。如果按下修飾鍵,它將啟動 Linux 發行版。
這可能嗎?
答案1
AskUbuntu 上的這個帖子解決了幾乎相同的問題。顯然,您可以隱藏 grub 對話框並透過按 來調出它shift,否則讓預設作業系統GRUB_TIMEOUT
在您透過 grub.cfg 中的項目定義的時間後啟動。
GRUB_DEFAULT= 2 #depends on which entry Windows is
hiddenmenu #this hides the menu
GRUB_TIMEOUT=3 #example for 3 seconds
答案2
正如您在評論中所寫,這是新安裝的,所以我認為它將附帶GRUB2。
事實上,根據我的經驗,要始終使用 grub1 啟動 Windows 是很困難的。將新核心新增至可供選擇的核心版本清單中(例如,在 Linux 核心升級之後),將變更 Windows 條目的位置。這會導致硬編碼GRUB_DEFAULT
指向其他內容(最常見的是 grub installre 在 Linux 核心清單和清單中的 Windows 條目之間插入的記憶體測試)。在 grub1 中,我透過一個腳本清除了除最新 3 個內核之外的所有內核,從而解決了這個問題,從而保持 Windows 位置固定。
因此,請確保使用 grub2,因為它具有以下兩個功能,使事情變得更容易:
- grub2 允許子選單,以便
GRUB_DEFAULT
核心升級後(將舊核心推送到子選單中)後 的值不會變得無效 - grub2 透過以下方式產生選單項腳本(在
/etc/grub.d
Ubuntu 上)
我建議進行更改腳本強制 Windows 成為選單中的第一個選項:在/etc/grub.d
重新命名30_os-prober
(產生 Windows 項目)中將其命名為09_os-prober
.然後先執行此腳本,10_linux
因為腳本是按檔案名稱排序執行的,並且 Windows 條目將始終位於頂部。如果沒有指定其他內容,頂部就是預設值。
運行update-grub
以在 中建立選單/boot/grub
,以便始終啟動 Windows。
至於沒有不顯示的選單你想使用GRUB_HIDDEN_TIMEOUT
和其他一些/etc/grub/default
:
# wait 5 seconds for a key-press before showing the menu
GRUB_HIDDEN_TIMEOUT=5
# do not show the countdown counter
GRUB_HIDDEN_TIMEOUT_QUIET=true
# after hidden timeout is done wait 0 seconds -> boot without menu
GRUB_TIMEOUT=0
上述組合等待 5 秒,沒有輸出(倒數計時)或選單,然後啟動第一個項目。 (再次:update-grub
更改後運行)。
答案3
在 Grub2 中:
set timeout=0
if keystatus --ctrl; then
set timeout=15
fi
如果按下ctrl,則會顯示選單15秒,然後啟動標準項目;如果不按 ctrl,它將立即啟動標準條目,而無需任何選單。
有關詳細信息,請info grub
參閱 keystatus。有一些警告,它可能不適用於所有平台。除了 --ctrl 之外,它還支援 --alt 和 --shift,因此您可以嘗試那些應該 --ctrl 不起作用的選項。
或者,您可以將 Grub 放在 USB 記憶棒上。因此,Windows 在未插入電源時會直接啟動。錢包裡非常有用的東西:)