红联Linux门户
Linux帮助

ubuntu更改grub2默认启动顺序

发布时间:2015-11-23 10:34:03来源:linux网站作者:gsls200808

安装windows/ubuntu之后,默认情况下是启动ubuntu,但是由于近期大部分工作要在windows下面做,所以需要改一下启动顺序,让grub2默认启动windows

笔者ubuntu系统为ubuntu14.04,使用grub2引导,与grub1修改方法可能不一致。这里只讲grub2的修改

原理:修改grub的配置文件/boot/grub/grub.cfg里面的一行set default="0"改为set default="4"即可,数字对应启动第几项,默认0对应第一项,4对应第五项


命令如下:

ls /boot/grub/ 
sudo gedit /boot/grub/grub.cfg 

hadoop@Lenovo-B470:~$ ls /boot/grub/ 
fonts grub.cfg   grubenv  locale 
gfxblacklist.txt  grub.cfg~  i386-pc  unicode.pf2 
hadoop@Lenovo-B470:~$ sudo gedit /boot/grub/grub.cfg 
[sudo] password for hadoop:  
 
(gedit:4494): IBUS-WARNING **: The owner of /home/hadoop/.config/ibus/bus is not root! 
 
(gedit:4494): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files 
 
(gedit:4494): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files 


在打开的窗口中Ctrl+F 查找set default字符串,笔者找到两项,将其中的set default="0"改为set default="4"

ubuntu更改grub2默认启动顺序

ubuntu更改grub2默认启动顺序

笔者更改后的完整grub.cfg文件如下,请勿直接使用此文件替换



# DO NOT EDIT THIS FILE 

# It is automatically generated by grub-mkconfig using templates 
# from /etc/grub.d and settings from /etc/default/grub 

### BEGIN /etc/grub.d/00_header ### 
if [ -s $prefix/grubenv ]; then 
set have_grubenv=true 
load_env 
fi 
if [ "${next_entry}" ] ; then 
set default="${next_entry}" 
set next_entry= 
save_env next_entry 
set boot_once=true 
else 
set default="4" 
fi 
 
if [ x"${feature_menuentry_id}" = xy ]; then 
menuentry_id_option="--id" 
else 
menuentry_id_option="" 
fi 
 
export menuentry_id_option 
 
if [ "${prev_saved_entry}" ]; then 
set saved_entry="${prev_saved_entry}" 
save_env saved_entry 
set prev_saved_entry= 
save_env prev_saved_entry 
set boot_once=true 
fi 
 
function savedefault { 
if [ -z "${boot_once}" ]; then 
saved_entry="${chosen}" 
save_env saved_entry 
fi 

function recordfail { 
set recordfail=1 
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi 

function load_video { 
if [ x$feature_all_video_module = xy ]; then 
insmod all_video 
else 
insmod efi_gop 
insmod efi_uga 
insmod ieee1275_fb 
insmod vbe 
insmod vga 
insmod video_bochs 
insmod video_cirrus 
fi 

 
if [ x$feature_default_font_path = xy ] ; then 
font=unicode 
else 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
font="/usr/share/grub/unicode.pf2" 
fi 
 
if loadfont $font ; then 
set gfxmode=auto 
load_video 
insmod gfxterm 
set locale_dir=$prefix/locale 
set lang=zh_CN 
insmod gettext 
fi 
terminal_output gfxterm 
if [ "${recordfail}" = 1 ] ; then 
set timeout=-1 
else 
if [ x$feature_timeout_style = xy ] ; then 
set timeout_style=menu 
set timeout=10 
# Fallback normal timeout code in case the timeout_style feature is 
# unavailable. 
else 
set timeout=10 
fi 
fi 
### END /etc/grub.d/00_header ### 
 
### BEGIN /etc/grub.d/05_debian_theme ### 
set menu_color_normal=white/black 
set menu_color_highlight=black/light-gray 
if background_color 44,0,30,0; then 
clear 
fi 
### END /etc/grub.d/05_debian_theme ### 
 
### BEGIN /etc/grub.d/10_linux ### 
function gfxmode { 
set gfxpayload="${1}" 
if [ "${1}" = "keep" ]; then 
set vt_handoff=vt.handoff=7 
else 
set vt_handoff= 
fi 

if [ "${recordfail}" != 1 ]; then 
if [ -e ${prefix}/gfxblacklist.txt ]; then 
if hwmatch ${prefix}/gfxblacklist.txt 3; then 
if [ ${match} = 0 ]; then 
set linux_gfx_mode=keep 
else 
set linux_gfx_mode=text 
fi 
else 
set linux_gfx_mode=text 
fi 
else 
set linux_gfx_mode=keep 
fi 
else 
set linux_gfx_mode=text 
fi 
export linux_gfx_mode 
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
gfxmode $linux_gfx_mode 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
linux   /boot/vmlinuz-3.13.0-46-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro  quiet splash $vt_handoff 
initrd  /boot/initrd.img-3.13.0-46-generic 

submenu 'Ubuntu 高级选项' $menuentry_id_option 'gnulinux-advanced-30b73627-093c-4079-baca-e1a0618ad51a' { 
menuentry 'Ubuntu,Linux 3.13.0-46-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-46-generic-advanced-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
gfxmode $linux_gfx_mode 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-46-generic ...' 
linux   /boot/vmlinuz-3.13.0-46-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro  quiet splash $vt_handoff 
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-46-generic 

menuentry 'Ubuntu, with Linux 3.13.0-46-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-46-generic-recovery-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-46-generic ...' 
linux   /boot/vmlinuz-3.13.0-46-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro recovery nomodeset  
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-46-generic 

menuentry 'Ubuntu,Linux 3.13.0-45-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-45-generic-advanced-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
gfxmode $linux_gfx_mode 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-45-generic ...' 
linux   /boot/vmlinuz-3.13.0-45-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro  quiet splash $vt_handoff 
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-45-generic 

menuentry 'Ubuntu, with Linux 3.13.0-45-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-45-generic-recovery-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-45-generic ...' 
linux   /boot/vmlinuz-3.13.0-45-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro recovery nomodeset  
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-45-generic 

menuentry 'Ubuntu,Linux 3.13.0-40-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-40-generic-advanced-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
gfxmode $linux_gfx_mode 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-40-generic ...' 
linux   /boot/vmlinuz-3.13.0-40-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro  quiet splash $vt_handoff 
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-40-generic 

menuentry 'Ubuntu, with Linux 3.13.0-40-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-40-generic-recovery-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-40-generic ...' 
linux   /boot/vmlinuz-3.13.0-40-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro recovery nomodeset  
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-40-generic 

menuentry 'Ubuntu,Linux 3.13.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-35-generic-advanced-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
gfxmode $linux_gfx_mode 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-35-generic ...' 
linux   /boot/vmlinuz-3.13.0-35-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro  quiet splash $vt_handoff 
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-35-generic 

menuentry 'Ubuntu, with Linux 3.13.0-35-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.13.0-35-generic-recovery-30b73627-093c-4079-baca-e1a0618ad51a' { 
recordfail 
load_video 
insmod gzio 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
echo'载入 Linux 3.13.0-35-generic ...' 
linux   /boot/vmlinuz-3.13.0-35-generic root=UUID=30b73627-093c-4079-baca-e1a0618ad51a ro recovery nomodeset  
echo'载入初始化内存盘...' 
initrd  /boot/initrd.img-3.13.0-35-generic 


 
### END /etc/grub.d/10_linux ### 
 
### BEGIN /etc/grub.d/20_linux_xen ### 
 
### END /etc/grub.d/20_linux_xen ### 
 
### BEGIN /etc/grub.d/20_memtest86+ ### 
menuentry 'Memory test (memtest86+)' { 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
knetbsd /boot/memtest86+.elf 

menuentry 'Memory test (memtest86+, serial console 115200)' { 
insmod part_msdos 
insmod ext2 
set root='hd0,msdos8' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos8 --hint-efi=hd0,msdos8 --hint-baremetal=ahci0,msdos8  30b73627-093c-4079-baca-e1a0618ad51a 
else 
search --no-floppy --fs-uuid --set=root 30b73627-093c-4079-baca-e1a0618ad51a 
fi 
linux16 /boot/memtest86+.bin console=ttyS0,115200n8 

### END /etc/grub.d/20_memtest86+ ### 
 
### BEGIN /etc/grub.d/30_os-prober ### 
menuentry 'Windows Vista (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-FA1CAF751CAF2C17' { 
insmod part_msdos 
insmod ntfs 
set root='hd0,msdos1' 
if [ x$feature_platform_search_hint = xy ]; then 
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  FA1CAF751CAF2C17 
else 
search --no-floppy --fs-uuid --set=root FA1CAF751CAF2C17 
fi 
parttool ${root} hidden- 
chainloader +1 

set timeout_style=menu 
if [ "${timeout}" = 0 ]; then 
set timeout=10 
fi 
### END /etc/grub.d/30_os-prober ### 
 
### BEGIN /etc/grub.d/30_uefi-firmware ### 
### END /etc/grub.d/30_uefi-firmware ### 
 
### BEGIN /etc/grub.d/40_custom ### 
# This file provides an easy way to add custom menu entries.  Simply type the 
# menu entries you want to add after this comment.  Be careful not to change 
# the 'exec tail' line above. 
### END /etc/grub.d/40_custom ### 
 
### BEGIN /etc/grub.d/41_custom ### 
if [ -f  ${config_directory}/custom.cfg ]; then 
source ${config_directory}/custom.cfg 
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then 
source $prefix/custom.cfg; 
fi 
### END /etc/grub.d/41_custom ### 


由于每次ubuntu系统更新会执行update-grub2命令,执行之后,默认的启动顺序会还原到ubuntu,所以更新之后需要再次执行上述步骤更改。


Fedora 22/Windows 7双系统:改变默认启动项:http://www.linuxdiyf.com/linux/14546.html

Ubuntu 15.04修改grub默认启动项和Windows 7做双系统:http://www.linuxdiyf.com/linux/12783.html

Ubuntu与Windows双系统默认启动Windows:http://www.linuxdiyf.com/linux/7488.html

CentOS自动登录X11桌面和修改CentOS默认启动:http://www.linuxdiyf.com/linux/4653.html

Fedora 17更改开机默认启动项:http://www.linuxdiyf.com/linux/3412.html