装了双系统后,在开机时总会有想让一个系统默认启动的时候,一般安装完Ubuntu和XP双系统后,开机时默认的是启动Ubuntu系统,可是当想让XP作为默认启动的系统时怎么办呢?

在早期的Ubuntu系统中,启动管理器用的是grub,要改动开机默认启动的系统的,仅仅要改动/boot/grub/下的menu.lst即可了,可是在后来的Ubuntu系统中採用的是grub2,而grub2已经没有menu.lst文件了。


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  README

05_debian_theme  20_memtest86+ 40_custom


当中,30-os-prober是Windows系统的启动项,当然10_linux就是Linux系统的启动项,注意到每一个文件前面都有个数字,在运行update-grub后生成的grub.cfg文件里,数字越小项就会排在越前面,也就是在启动菜单里就会排越上。像上面的内容,在开机启动菜单里,Linux系统就会排在最前面。



以下就介绍三种改动的方法。


一、直接改动grub.cfg文件

sudo -i

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命令,所以此改动的方法不推荐。



二、改动/etc/default/grub.d

sudo -i

cd/etc/grub.d

ls

这时我们能够看到

00_header       10_linux      30-os-prober  README

05_debian_theme  20_memtest86+ 40_custom

(这是我系统里的,你的可能不一样)


mv 30_os-prober06_os-prober (30_os-prober重命名为06_os-prober)

update-grub


这时打开grub.cfg会看到xp系统已经排在前面了,这样的方法简单,且以后无论进行多少次update-grub,XP系统项总是会排在第一位,推荐使用。



三、改动/etc/default/grub

sudo -i

gedit/etc/default/grub


改动GRUB_DEFAULT=0(选择光标默认处于的位置,像这样是处于第一位,假设XP系统是处于菜单项的第5位,就改动为GRUB_DEFAULT=4)

GRUB_TIMEOUT=5 (倒记时时间)


改动后,保存,又一次update-grub,此方法因为是直接改动选择光标的初始位置,而当xp项前面假设多了几项(像更新内核后),就不行了。此方法不推荐。