关闭

ubuntu grub修改 启动时间 启动项选择

330人阅读 评论(0) 收藏 举报
分类:

grub启动说明:

执行update-grub时,

利用/etc/default/grub文件中的参数值,
去运行 /etc/grub.d/目录下的众多程序,
生成/boot/grub/grub.cfg文件,供启动时调用。

一、修改启动时间

1.1 启动值说明:

在/boot/grub/grub.cfg文件中,有一处:
if [ "${recordfail}" = 1 ]; then
set timeout=-1  //-1是说采用人工操作
else
set timeout=10
fi
是说当有启动失败时,将grub菜单设置成“必须人工操作”,就是那个-1值。
有人说在/boot/grub/grub.cfg文件将此处set timeout=-1修成成需要的秒数,
但是执行update-grub后会重新生成grub.cfg。


1.2 启动时间修改

1)于是有效的方法是修改/etc/grub.d/00_head文件中:
cat << EOF
if [ \${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=${GRUB_TIMEOUT}
fi
EOF

将set timeout=-1 修改 成自己需要的秒数。

2)还有一种方法是将/etc/grub.d/00_head文件中的,
set timeout=-1 修改成
set timeout = ${GRUB_RECORDFAIL_TIMEOUT:--1}
然后在/etc/default/grub文件中设置:
GRUB_RECORDFAIL_TIMEOUT=10

保存后执行update-grub


注:单一修改/boot/grub/grub.cfg文件,则会因为运行update-grub命令,重新生成此文件而导致修改无效。


参见:http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=395230&p=3099520#p3099520

二、修改启动选项

简便方法:修改/boot/grub/grub.cfg文件中menuentry选项

获取操作权限,打开grub.cfg,搜索set default="0",这是启动项选择,也可以是1、2、3、4等值。

注:windows和linux双系统,默认是linux启动,若修改windows启动,一般选择4,视情况而定。

值大小选择依据menuentry,搜索menuentry,从0开始数,想启动哪一项就选择哪一项。比如

if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
0 menuentry 'Ubuntu,Linux 3.2.0-79-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    linux    /vmlinuz-3.2.0-79-generic-pae root=UUID=9a645864-14f3-4eee-9cf6-400fc8c7345c ro   quiet splash $vt_handoff
    initrd    /initrd.img-3.2.0-79-generic-pae
}
1 menuentry 'Ubuntu, with Linux 3.2.0-79-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    echo    '载入 Linux 3.2.0-79-generic-pae ...'
    linux    /vmlinuz-3.2.0-79-generic-pae root=UUID=9a645864-14f3-4eee-9cf6-400fc8c7345c ro recovery nomodeset
    echo    '载入初始化内存盘...'
    initrd    /initrd.img-3.2.0-79-generic-pae
}
submenu "Previous Linux versions" {
2.0 menuentry 'Ubuntu,Linux 3.2.0-77-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    linux    /vmlinuz-3.2.0-77-generic-pae root=UUID=9a645864-14f3-4eee-9cf6-400fc8c7345c ro   quiet splash $vt_handoff
    initrd    /initrd.img-3.2.0-77-generic-pae
}
2.1 menuentry 'Ubuntu, with Linux 3.2.0-77-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    echo    '载入 Linux 3.2.0-77-generic-pae ...'
    linux    /vmlinuz-3.2.0-77-generic-pae root=UUID=9a645864-14f3-4eee-9cf6-400fc8c7345c ro recovery nomodeset
    echo    '载入初始化内存盘...'
    initrd    /initrd.img-3.2.0-77-generic-pae
}

2 menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    linux16    /memtest86+.bin
}
3 menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root bc7fe396-42c1-47ef-8a9b-e8a3f0076d8f
    linux16    /memtest86+.bin console=ttyS0,115200n8
}

一般顺序如红色字体,至于2.0 、2.1 是由于我内核更新过,所以才出现的,如果你内核更新过,就不已经对linux了解差不多了,不需要看这篇文章了。

启动项选择至此已可用,当然,以后grub更新还会变动,如果想彻底解决问题,请参考第一项1.1项启动值说明修改。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41717次
    • 积分:792
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:47篇
    • 译文:1篇
    • 评论:3条
    最新评论