为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#1

帖子 deyong » 2011-03-31 17:10

我的Ubuntu开机时不显示启动菜单,而是直接就进入了
我想开机选择不同的内核启动,就去修改 /boot/grub/grub.cfg里timeout的值
把 set timeout=60 还是没见等待直接进了,没办法,只能每次修改 set default=?来进不同的内核
不知是怎么回事,感觉Ubuntu在启动方面还有些我们不了解的机制,还麻烦懂得原因的Linux高手帮忙解决下
补充:当启动失败时会显示启动菜单
下面是我的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
set default="0"
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 {
insmod vbe
insmod vga
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=60
else
set timeout=60
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
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.37.2' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
linux /boot/vmlinuz-2.6.37.2.x root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro quiet splash
initrd /boot/initrd.img-2.6.37.2.x
}
menuentry 'Ubuntu, with Linux 2.6.37.2 (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
echo 'Loading Linux 2.6.37.2 ...'
linux /boot/vmlinuz-2.6.37.2 root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.37.2
}
menuentry 'Ubuntu, with Linux 2.6.37.2.old' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
linux /boot/vmlinuz-2.6.37.2.old root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro quiet splash
initrd /boot/initrd-2.6.37.2.old
}
menuentry 'Ubuntu, with Linux 2.6.37.2.old (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
echo 'Loading Linux 2.6.37.2.old ...'
linux /boot/vmlinuz-2.6.37.2.old root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd-2.6.37.2.old
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
echo 'Loading Linux 2.6.35-22-generic ...'
linux /boot/vmlinuz-2.6.35-22-generic root=UUID=3783a779-4924-4338-a934-e889bb28b8c5 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-22-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,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 3783a779-4924-4338-a934-e889bb28b8c5
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ "x${timeout}" != "x-1" ]; then
if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep --interruptible 3 ; then
set timeout=0
fi
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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
上次由 deyong 在 2011-03-31 17:21,总共编辑 1 次。
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 让Ubuntu10.10显示启动菜单项时遇到的问题

#2

帖子 deyong » 2011-03-31 17:17

:em01 大家来帮帮我啊!!!
醉罪
帖子: 35
注册时间: 2008-09-20 13:49

Re: 让Ubuntu10.10显示启动菜单项时遇到的问题

#3

帖子 醉罪 » 2011-03-31 17:23

可以在/etc/default/grub 里面修改 GRUB_TIMEOUT=5 的值 然后update-grub 我hai没试过 你试试 :em06
oohyoou
帖子: 52
注册时间: 2010-05-27 17:01

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#4

帖子 oohyoou » 2011-03-31 17:42

if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep --interruptible 3 ; then
set timeout=0
fi
fi
fi
### END /etc/grub.d/30_os-prober ###


貌似要改这里。。。我在貌似在虚拟机这么试过。。。
头像
peteryeh64
论坛版主
帖子: 9379
注册时间: 2008-12-20 15:43
系统: 家kubuntu20.04
来自: 心靈深處

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#5

帖子 peteryeh64 » 2011-03-31 18:08

...單系統的ubuntu...按住shift...
附件
shift.png
shift.png (2.08 KiB) 查看 4970 次
[论坛版主行为规定]+[PITIVI簡易教程]+[ubuntu裝迅雷]
[releases.ubuntu.com]+[cdimage.ubuntu.com]+[old-releases.ubuntu.com]
[學ubuntu必須拜讀懶蝸牛"笨兔兔的故事"=viewtopic.php?f=112&t=162040][Linux明日的希望在中國]
头像
hasee.wu
帖子: 2089
注册时间: 2009-10-20 21:13
来自: Pacific Western University

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#6

帖子 hasee.wu » 2011-03-31 18:21

建议看小苹果的grub2 指南.

一般情况下, 最简单的方法是安装startupmanager
装好后 系统--系统管理--启动管理器

startup manager对grub2支持得不错, 改启动顺序, 开机菜单背景颜色和画面, 等待时间, 一般要用的功能都有,正合楼主要求. 全图形界面,不易出错.
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 让Ubuntu10.10显示启动菜单项时遇到的问题

#7

帖子 deyong » 2011-03-31 21:40

醉罪 写了:可以在/etc/default/grub 里面修改 GRUB_TIMEOUT=5 的值 然后update-grub 我hai没试过 你试试 :em06
真的很不解啊,我按照你的方法做了,Grub.cfg也更新了,不过还是老样子
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#8

帖子 billbear » 2011-04-01 17:14

如果楞改 grub.cfg 的话,要改 4 楼说的那一段,你前面赋值没用,到这一段又变回0了。脚本仔细看
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#9

帖子 deyong » 2011-04-02 15:32

billbear 写了:如果楞改 grub.cfg 的话,要改 4 楼说的那一段,你前面赋值没用,到这一段又变回0了。脚本仔细看
嗯,是这么回事,接触Linux不长,看的不是太深,O(∩_∩)O谢谢
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#10

帖子 deyong » 2011-04-02 15:48

oohyoou 写了:if keystatus; then
if keystatus --shift; then
set timeout=-1
else
set timeout=0
fi
else
if sleep --interruptible 3 ; then
set timeout=0
fi
fi
fi
### END /etc/grub.d/30_os-prober ###


貌似要改这里。。。我在貌似在虚拟机这么试过。。。
应该是这样的,谢谢
tangy110
帖子: 1
注册时间: 2011-02-24 19:37

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#11

帖子 tangy110 » 2011-04-04 16:18

:em11 刚好我也遇到
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#12

帖子 deyong » 2011-04-05 18:40

peteryeh64 写了:...單系統的ubuntu...按住shift...
对,就是这样的,谢了
gunix
帖子: 8
注册时间: 2011-03-01 18:23

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#13

帖子 gunix » 2011-04-09 21:08

遇到同样的问题
zxx007
帖子: 217
注册时间: 2006-04-29 15:43
联系:

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#14

帖子 zxx007 » 2011-04-16 10:09

关键点在这
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi

if [ "${recordfail}" = 1 ]; then
set timeout=-1
为-1菜单列表就会显示出来
如果不想显示菜单列表那么就把数值设为0
else
set timeout=10
是显示菜单后的等待时间,
不想显示菜单也不想等待那么就把数值设为0

而楼主你这是这样的
if [ "${recordfail}" = 1 ]; then
set timeout=60
else
set timeout=60
fi
### END /etc/grub.d/00_header ###
想出菜单第一项不应该为60,应该改为-1
第二项才是等待时间
头像
deyong
帖子: 17
注册时间: 2011-03-31 16:46

Re: 为什么Ubuntu10.10中修改grub.cfg后还是不显示启动菜单项!!!

#15

帖子 deyong » 2011-04-18 16:03

zxx007 写了:关键点在这
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi

if [ "${recordfail}" = 1 ]; then
set timeout=-1
为-1菜单列表就会显示出来
如果不想显示菜单列表那么就把数值设为0
else
set timeout=10
是显示菜单后的等待时间,
不想显示菜单也不想等待那么就把数值设为0

而楼主你这是这样的
if [ "${recordfail}" = 1 ]; then
set timeout=60
else
set timeout=60
fi
### END /etc/grub.d/00_header ###
想出菜单第一项不应该为60,应该改为-1
第二项才是等待时间
第一项是系统失败时的等待时间,光修改这里没有用,4楼说的是正确的,你看看吧
回复