GRUB 2 以 /boot/grub/grub.cfg 為主配置,set default="0" 表示預設啟動第 1 個選單項(索引從 0 起算)。Windows 通常在選單末端,需修改索引值。
cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
grep -n "menuentry " /boot/grub/grub.cfg
# 輸出範例:
# 12:menuentry 'Ubuntu' ...
# 28:menuentry 'Advanced options for Ubuntu' ...
# 45:menuentry 'Windows Boot Manager (on /dev/sda1)' ...
假設 Windows 在第 45 行,對應索引 4(第 5 個頂層選單項)。
方式 A:直接編輯 grub.cfg(不推薦,更新套件會覆蓋)
vi /boot/grub/grub.cfg
# 找到 set default="0" 改為 set default="4"
方式 B:修改 /etc/default/grub 並重建(推薦,持久化)
vi /etc/default/grub
# 修改 GRUB_DEFAULT=0 為 GRUB_DEFAULT=4
# 或使用選單項完整名稱(含單引號):
# GRUB_DEFAULT="Windows Boot Manager (on /dev/sda1)"
# 重建配置
update-grub
# 或
grub-mkconfig -o /boot/grub/grub.cfg
grep "set default" /boot/grub/grub.cfg
# 應顯示 set default="4"
GRUB_DEFAULT=saved 搭配 GRUB_SAVEDEFAULT=true:記住上次選擇,下次自動啟動同一項GRUB_DEFAULT="1>2":子選單索引(第 2 個頂層項目的第 3 個子項)/boot/grub/grub.cfg 為唯讀屬性,直接編輯需 root 權限且會被 update-grub 覆蓋。update-grub,若用方式 A 需每次手動改回;請務必使用方式 B。Windows Boot Manager。