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。