(ZT) Ubuntu 9.10 双系统启动顺序设置

升级到Ubuntu 9.10后,就要接触grub2了,它和以前的版本有了很多的不同。这里是一个基础教程。
一、grub2的启动配置文件grub.cfg

grub2的启动配置文件grub.cfg 是/boot/grub/grub.cfg,而不是以前的memu.lst。

如果你是多系统,有ubuntu和windows,那么用下面的命令,可以使grub2得到所以可以启动的系统。

sudo update-grub

实际就是让系统自己生成合适的grub.cfg文件。

这个grub.cfg文件是只读属性,so如果你要修改它,需要权限。

sudo chmod +w /boot/grub/grub.cfg

然后可以编辑grub.cfg了。

sudo gedit /boot/grub/grub.cfg
二、默认系统和等待时间
1、set default=0

这是说从第一项启动。每个启动项都是以menuentry开始,menuentry后面“xxx”是启动项名称,然后{xxx}是启动代码。
### BEGIN /etc/grub.d/10_linux ###
menuentry “Ubuntu, Linux 2.6.31-14-generic” {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,6)
search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059
linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro   quiet splash
initrd /boot/initrd.img-2.6.31-14-generic
}
menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
insmod ext2
set root=(hd0,6)
search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059
linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro single
initrd /boot/initrd.img-2.6.31-14-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry “Memory test (memtest86+)” {
linux16 /boot/memtest86+.bin
}
menuentry “Memory test (memtest86+, serial console 115200)” {
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)” {
insmod ntfs
set root=(hd0,1)
search –no-floppy –fs-uuid –set 5c108a1c1089fd70
drivemap -s (hd0) ${root}
chainloader +1
}
if keystatus; then
if keystatus –shift; then
set timeout=-1
else
set timeout=10
fi
else
if sleep$verbose –interruptible 3 ; then
set timeout=10
fi
fi
### END /etc/grub.d/30_os-prober ###

    ### BEGIN /etc/grub.d/10_linux ###

    menuentry “Ubuntu, Linux 2.6.31-14-generic” {

    recordfail=1

    if [ -n ${have_grubenv} ]; then save_env recordfail; fi

    set quiet=1

    insmod ext2

    set root=(hd0,6)

    search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059

    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro   quiet splash

    initrd /boot/initrd.img-2.6.31-14-generic

    }

    menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {

    recordfail=1

    if [ -n ${have_grubenv} ]; then save_env recordfail; fi

    insmod ext2

    set root=(hd0,6)

    search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059

    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro single

    initrd /boot/initrd.img-2.6.31-14-generic

    }

    ### END /etc/grub.d/10_linux ###

    ### BEGIN /etc/grub.d/20_memtest86+ ###

    menuentry “Memory test (memtest86+)” {

    linux16 /boot/memtest86+.bin

    }

    menuentry “Memory test (memtest86+, serial console 115200)” {

    linux16 /boot/memtest86+.bin console=ttyS0,115200n8

    }

    ### END /etc/grub.d/20_memtest86+ ###

    ### BEGIN /etc/grub.d/30_os-prober ###

    menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)” {

    insmod ntfs

    set root=(hd0,1)

    search –no-floppy –fs-uuid –set 5c108a1c1089fd70

    drivemap -s (hd0) ${root}

    chainloader +1

    }

    if keystatus; then

    if keystatus –shift; then

    set timeout=-1

    else

    set timeout=10

    fi

    else

    if sleep$verbose –interruptible 3 ; then

    set timeout=10

    fi

    fi

    ### END /etc/grub.d/30_os-prober ###

我的第五 个启动项是menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)”,我要它默认是以xp启动,所以修改为set default=”4″。(hd0,1 )表示第一块硬盘的第一 个分区,我的Linux在(hd0,6)。

当然,你也可以把你需要默认启动的系统放到最前面,那么就还是set default=0
2、set timeout=10

if [ ${recordfail} = 1 ]; then

set timeout=-1

else

set timeout=10

fi

这里停留在grub选择系统界面的时间就是10秒,即set timeout=10。

有时候我并不想等待这么久,我直接启动xp,需要ubuntu时才按几下Shift键 进入grub选择系统界面。可以添加如下代码:

if keystatus; then

if keystatus –shift; then

set timeout=-1

else

set timeout=10

fi

else

if sleep$verbose –interruptible 3 ; then

set timeout=10

fi

fi
三、其他详细配置说明

请点击此处
四、我的grub.cfg文件

安装了xp和ubuntu,默认启动xp,在电脑启动grub时,按Shift键进入系统选择界面。

    #

    # DO NOT EDIT THIS FILE

    #

    # It is automatically generated by /usr/sbin/grub-mkconfig using templates

    # from /etc/grub.d and settings from /etc/default/grub

    #

    ### BEGIN /etc/grub.d/00_header ###

    if [ -s /boot/grub/grubenv ]; then

    have_grubenv=true

    load_env

    fi

    set default=”4″

    if [ ${prev_saved_entry} ]; then

    saved_entry=${prev_saved_entry}

    save_env saved_entry

    prev_saved_entry=

    save_env prev_saved_entry

    fi

    insmod ext2

    set root=(hd0,6)

    search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059

    if loadfont /usr/share/grub/unicode.pf2 ; then

    set gfxmode=640×480

    insmod gfxterm

    insmod vbe

    if terminal_output gfxterm ; then true ; else

    # For backward compatibility with versions of terminal.mod that don’t

    # understand terminal_output

    terminal gfxterm

    fi

    fi

    if [ ${recordfail} = 1 ]; then

    set timeout=-1

    else

    set timeout=10

    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/white

    ### END /etc/grub.d/05_debian_theme ###

    ### BEGIN /etc/grub.d/10_linux ###

    menuentry “Ubuntu, Linux 2.6.31-14-generic” {

    recordfail=1

    if [ -n ${have_grubenv} ]; then save_env recordfail; fi

    set quiet=1

    insmod ext2

    set root=(hd0,6)

    search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059

    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro   quiet splash

    initrd /boot/initrd.img-2.6.31-14-generic

    }

    menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {

    recordfail=1

    if [ -n ${have_grubenv} ]; then save_env recordfail; fi

    insmod ext2

    set root=(hd0,6)

    search –no-floppy –fs-uuid –set 040508ff-fec7-4c66-ba64-a09f8abe8059

    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=040508ff-fec7-4c66-ba64-a09f8abe8059 ro single

    initrd /boot/initrd.img-2.6.31-14-generic

    }

    ### END /etc/grub.d/10_linux ###

    ### BEGIN /etc/grub.d/20_memtest86+ ###

    menuentry “Memory test (memtest86+)” {

    linux16 /boot/memtest86+.bin

    }

    menuentry “Memory test (memtest86+, serial console 115200)” {

    linux16 /boot/memtest86+.bin console=ttyS0,115200n8

    }

    ### END /etc/grub.d/20_memtest86+ ###

    ### BEGIN /etc/grub.d/30_os-prober ###

    menuentry “Microsoft Windows XP Home Edition (on /dev/sda1)” {

    insmod ntfs

    set root=(hd0,1)

    search –no-floppy –fs-uuid –set 5c108a1c1089fd70

    drivemap -s (hd0) ${root}

    chainloader +1

    }

    if keystatus; then

    if keystatus –shift; then

    set timeout=-1

    else

    set timeout=10

    fi

    else

    if sleep$verbose –interruptible 3 ; then

    set timeout=10

    fi

    fi

    ### END /etc/grub.d/30_os-prober ###

    ### 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 ###
来自: http://hi.baidu.com/xdjakiechen/blog/item/35df752a97651df1e7cd4052.html

猜你喜欢

转载自gorymt.iteye.com/blog/803663