從Ubuntu 9.10起,grub2就已是默認的BootLoader了。這裏簡要說要Ubuntu的grub2和其餘發行版不同的地方。
對於全部的OS啓動項,CentOS全都顯示在一個grub選擇界面,顯得很是擁擠,而Ubuntu這裏就使用了一個Submenu的概念,將kernel版本最高的OS啓動項放在最頂端名爲「Ubuntu」的選項中,其餘的版本都放在一個名爲「Advanced options for Ubuntu」中,這個就是前面說到的Submenu子菜單。進入子菜單後,就能夠手動選擇你須要的版本了。這裏注意,每一個版本都提供了普通版和recover mode兩種選擇。
grub選擇界面:
grub配置文件以下:linux
…… # OS啓動版本選擇 set default="0" fi submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-f7627d97-02da-4145-af58-0fe730f276b2' { menuentry 'Ubuntu, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-f7627d97-02da-4145-af5 8-0fe730f276b2' { …… menuentry 'Ubuntu, with Linux 3.13.0-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-24-generic-recovery-f7627d 97-02da-4145-af58-0fe730f276b2' { …… }
下載kernel源代碼,執行make bzImage -j 4 && make modules -j 4 && make modules_install && make install,編譯並安裝後,就會在/boot目錄生成對應版本的vmlinuz、initrd.img、.config等文件,而且會默認執行update-grub命令來生成最新的grub配置文件。若是未手動修改,默認會按照kernel版本號從高到低的順序將各個版本的OS放入Submenu中,也就是說,默認啓動的就是kernel版本最高的OS。ubuntu
grub的配置文件有兩個:/boot/grub/grub.cfg和/etc/default/grub,其中/boot/grub/grub.cfg爲真正生效的文件,但其權限爲只讀的,也就是不建議直接修改;這是就須要/etc/default/grub文件了,經過修改該文件,再執行update-grub命令,便可將改動從/etc/default/grub更新到/boot/grub/grub.cfg了。打開/etc/default/grub:code
# 選擇的OS版本 GRUB_DEFAULT="1>2" GRUB_HIDDEN_TIMEOUT_QUIET=true # 停留在grub選擇界面的時間 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX=""
這裏咱們主要關注GRUB_DEFAULT這個選項,咱們上面提到,OS啓動版本中,第一項是kernel版本最高的OS,第二項就是Submenu,而全部OS版本都在這個Submenu中,包括版本最高的OS。打開/boot/grub/grub.cfg,索引從0開始,選擇第幾個index,update-grub並重啓後,就會從選擇的OS啓動。好比咱們要選擇索引爲2的OS版本,那麼咱們只須要GRUB_DEFAULT修改以下便可。而後執行命令update-grub,再重啓OS即生效。1>2表示先選擇第1項(索引從0開始的),即Submenu,再從Submenu中選擇第2項。索引
GRUB_DEFAULT="1>2"
若是以爲數字的方式比較難以區分,也可使用名稱的方式,格式相似,以下。表示先選擇名爲Advanced options for Ubuntu的第一層,即Submenu,再從Submenu中選擇名爲Ubuntu, with Linux 3.9.0的OS版本。get
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.9.0"
若是想了解更多關於Ubuntu grub2的信息,請參考官網:https://help.ubuntu.com/community/Grub2it