GRUB是Linux作業系統使用的開機引導程式,除了可以拿來用指定的Linux Kernel開啟Linux作業系統外,也可以拿來開Windows作業系統。電腦在開機的時候,會先啟動GRUB,GRUB能出現開機選單等待一段時間讓使用者選擇要開哪種作業系統,或者也能讓GRUB直接進入預設的作業系統。這篇文章將會介紹設定GRUB所預設進入的作業系統的方式。
讓使用者在GRUB開機選單選定的開機項目自動成為預設值
如果您的GRUB沒有開機選單,可以參考這篇文章來學習如何進入GRUB開機選單:
在Linux作業系統中開啟GRUB的設定檔/etc/default/grub,進行如下的修改:
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
當GRUB_SAVEDEFAULT設為true時,最後一次在GRUB開機選單中選取的開機項目會被儲存下來(存到/boot/grub/grubenv)。GRUB_DEFAULT可以指定要用哪個項目來作為預設的開機項目,但是當被設為saved時,就會使用GRUB_SAVEDEFAULT設為true時所儲存的開機項目。
修改完畢後儲存檔案,再使用以下指令來更新GRUB。
使用指令來設定預設開機項目
承上一小節,如果您想設定預設開機項目,卻又不想真的進GRUB開機選單中實際開機一次。可以用grub-set-default指令來設定預設開機項目,但是在設定之前,您得先確定您的GRUB選單長什麼樣子,可以用以下指令來查看:
如上圖,可以看到menuentry是有被submenu區分階層的(縮排可明顯看出來階層)。
其中,menuentry 'Linux Mint 21 Cinnamon'表示名為Linux Mint 21 Cinnamon的開機項目;menuentry 'Linux Mint 21 Cinnamon, with Linux 5.15.0-43-generic'表示名為Linux Mint 21 Cinnamon, with Linux 5.15.0-43-generic的開機項目,依此類推。而submenu 'Advanced options for Linux Mint 21 Cinnamon'表示名為Advanced options for Linux Mint 21 Cinnamon的子選單。
grub-set-default指令用法如下:
<開機項目的路徑>要包含層級,子選單要用>字元來指向下一層。可以接受的寫法如下:
0(項目順序)、Linux Mint 21 Cinnamon(項目名稱)、gnulinux-simple-3763dc9f-c07d-4efc-8ce6-6c7f80519a26(項目ID)。1>2、Advanced options for Linux Mint 21 Cinnamon>2、
1>Linux Mint 21 Cinnamon, with Linux 5.15.0-41-generic、Advanced options for Linux Mint 21 Cinnamon>Linux Mint 21 Cinnamon, with Linux 5.15.0-41-generic、gnulinux-advanced-3763dc9f-c07d-4efc-8ce6-6c7f80519a26>gnulinux-5.15.0-41-generic-advanced-3763dc9f-c07d-4efc-8ce6-6c7f80519a26。
數字是在該層級下項目的順序,由上到下從0開始算起。筆者建議使用項目ID來設定預設的開機項目,因為不會像名稱或是順序這樣有變動的可能。
如果您只想要使用grub-set-default指令來設定預設開機項目,而不想讓使用者在GRUB選單選擇開機項目之後立刻改變預設值的話,在GRUB的設定檔中就不要去設定GRUB_SAVEDEFAULT,但GRUB_DEFAULT=saved還是要有。
在GRUB設定檔設定預設開機項目
參考上一小節grub-set-default指令中<開機項目的路徑>參數的寫法。將值填寫到GRUB設定檔的GRUB_DEFAULT項目。
修改完畢後儲存檔案,再使用以下指令來更新GRUB。






