grub启动说明:
执行update-grub时,
利用/etc/default/grub文件中的参数值,去运行 /etc/grub.d/目录下的众多程序,
生成/boot/grub/grub.cfg文件,供启动时调用。
一、修改启动时间
1.1 启动值说明:
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项启动值说明修改。