转载自http://www.ylsay029.com/ubuntu12-04-xp-grub2.html
我们安装双系统之后,在开机时总会有想让一个系统默认启动的时候,一般安装完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系统就会排在最前面。
修改/etc/default/grub.d
sudo -i cd /etc/grub.d ls
这时我们可以看到
00_header 10_linux 20_memtest86+ 30_uefi-firmware 41_custom
05_debian_theme 20_linux_xen 30_os-prober 40_custom README
(这是我系统里的,你的可能不一样)
mv 30_os-prober 06_os-prober (30_os-prober重命名为06_os-prober) update-grub