Ubuntu和XP雙系統grub2預設啟動項設定為XP 裝了雙系統後,在開機時總會有想讓一個系統預設啟動的時候,一般安裝完Ubuntu和XP雙系統後,開機時預設的是啟動Ubuntu系統,但是當想讓XP作為預設啟動的系統時怎麼辦呢? 在早期的Ubuntu系統中,啟動管理器用的是grub,要修改開機預設啟動的系統的,只要修改 /boot/grub/下的menu.lst就行了,但是在後來的Ubuntu系統中採用的是grub2,而grub2已經沒有menu.lst檔案了。 www.2cto.com grub2由三部分組成:/etc/default/grub檔案 、 /etc/grub.d檔案夾、和 /boot/grub/grub.cfg檔案,電腦開機時的啟動菜單介面用的是grub.cfg檔案。 怎麼理解這三部分之間的關係呢?我覺得可以這樣認為,在我們執行update-grub(更新啟動菜單)命令後系統就會根據 /etc/default/grub檔案 和 /etc/grub.d檔案夾 的內容產生/boot/grub/目錄下的 grub.cfg 檔案,所以當 /etc/default/grub檔案 和 /etc/grub.d檔案夾 被修改後,再執行update-grub, grub.cfg檔案內容被更改,或者說是被更新吧。 /etc/default/grub檔案 ----存有開機預設啟動項、倒記時時間的內容/etc/grub.d檔案夾 -------存有各個啟動項,如下 00_header 10_linux 30-os-prober README05_debian_theme 20_memtest86+ 40_custom 其中,30-os-prober是Windows系統的啟動項, 當然10_linux就是Linux系統的啟動項,注意到每個檔案前面都有個數字,在執行 update-grub後產生的grub.cfg檔案中,數字越小項就會排在越前面,也就是在啟動菜單裡就會排越上。像上面的內容,在開機啟動菜單 裡,Linux系統就會排在最前面。 下面就介紹三種修改的方法。 一、直接修改grub.cfg檔案 [root~]# sudo gedit /boot/grub/grub.cfg 裡面### BEGIN /etc/grub.d/*** ###menuentry "……" {……}### END /etc/grub.d/*** ###各代表每一啟動項,位置越上,在啟動菜單裡就會越上。 第12行的 set default="0" 代表預設選擇項,也就是開機時選擇游標最初的選擇項,注意項的下標是從0開始的,例如在grub.cfg中,xp系統所處的位置是第五個啟動項(簡單的查 看方法是看它前面有幾個menuentry "……"),那麼就把set default="0" 改為 set default="4" 第54行(可能不一樣)的set timeout=5 表示倒計時時間,5就表示5秒。 修改後,儲存,重新後就可以看到效果了,此方面缺點是在update-grub後會恢複原樣,而系統在安裝更新時常常會執行update-grub命令,所以此修改方法不推薦。 www.2cto.com 二、修改/etc/default/grub.d [root~]# sudo cd /etc/grub.d[root~]# ls 這時我們可以看到00_header 10_linux 30-os-prober README05_debian_theme 20_memtest86+ 40_custom(這是我系統裡的,你的可能不一樣) [root~]# mv 30_os-prober 06_os-prober (30_os-prober重新命名為06_os-prober)[root~]# update-grub 這時開啟grub.cfg會看到xp系統已經排在前面了,這種方法簡單,且以後不管進行多少次update-grub,XP系統項總是會排在第一位,推薦使用。 三、修改/etc/default/grub [root~]# sudo gedit /etc/default/grub 修改GRUB_DEFAULT=0 (選擇游標預設處於的位置,像這樣是處於第一位,如果XP系統是處於功能表項目的第5位,就修改為GRUB_DEFAULT=4)GRUB_TIMEOUT=5 (倒記時時間) 修改後,儲存,重新update-grub, 此方法由於是直接修改選擇游標的初始位置,而當xp項前面如果多了幾項(像更新核心後),就不行了。此方法不推薦。 如何更改預設項的等待時間 [root~]# sudo gedit /boot/grub/grub.cfg 將其中的 timeout =?設定為你要更改的值即可