- 方式一 纯命令行方式
该命令是将etc文件夹下的grub.d文件夹下的30_os-prober文件改名为08_os-prober。(08可以改为06~09都可以)。Ubuntu的启动项相关文件名为“10_....”这样就可以将win7的启动项放在Ubuntu前面,即启动项列表的第一个。由于引导程序默认启动第一个启动项,所以这样就可以先启动windows了。注意修改完后更新一下grub才能生效(即命令sudo update-grub)。sudo mv /etc/grub.d/30_os-prober /etc/grub.d/08_os-prober sudo update-grub
- 修改etc下的grub文件,只能修改默认启动项,启动项排列顺序不变
文件内容如下:(不全)sudo gedit /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
修改GRUB_DEFAULT的值,注意启动项的编号从0开始。修改完了之后别忘了sudo update-grub
- 修改boot下的grub文件
直接操作这个文件有一定的危险性,如果不是需求特别强烈,不建议改写,但是拿出来看看还是可以学习的。
sudo gedit /boot/grub/grub.cfg
文件内容如下:menuentry 'Ubuntu_12.04' --class ubuntu --class gnu-linux --class gnu --class os { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos10)' search --no-floppy --fs-uuid --set=root 25f98d10-6cd4-49cb-b51b-090b91278f9e linux /boot/vmlinuz-3.11.0-15-generic root=UUID=25f98d10-6cd4-49cb-b51b-090b91278f9e ro quiet splash $vt_handoff initrd /boot/initrd.img-3.11.0-15-generic }
说句实话,我真的不知道这个文件如何该启动项顺序,但是可以改启动项名字,从上面的代码就可以看出来,启动项名字被修改过了,menuentry关键字列出了所有linux启动项的入口信息,但是没看到windows的,可能终极方法只能是方法1了,但是改过之后可以用方法三来自定义名称,最后提一句,修改这个文件不许要update—grub。