启动时的引导菜单... "按住Shift" 不起作用

我在这里阅读了这个帖子,说在启动时按住Shift键可以打开GRUB菜单。但是我试过按住一个或另一个Shift键,轻击、轻击然后按住,都没有作用。我是不是漏掉了什么?在启动时如何访问GRUB菜单?
没有双启动,只是标准的Lubuntu 14.04安装。

9这取决于硬件。有时候ESC键会起作用。 - Pilot6
1也尝试按了ESC键。这个键是我的BIOS用来进入设置菜单的。我在Ubuntu启动画面之前的BIOS启动画面后按了ESC,但还是没有成功。在这台机器上(ASUS X200M)似乎无法进入那里。其他机器都没有问题。 - colorful-shirts
1另一个因素是按键的时机。在BIOS启动画面后按住Esc键对我有效。如果提前按下,我会进入CSM屏幕(因为我已禁用了安全启动)。我只能建议合适的时机。 - user37165
1这个回答解决了你的问题吗?如何在启动时进入GRUB菜单? - Artur Meinild
6个回答

我在我的Asus X205TA上无论如何按shiftesc,都无法访问GRUB菜单。为了在启动时显示GRUB菜单,我不得不修改/etc/default/grub文件。请参阅此页面
为了每次都显示GRUB菜单(直至我改回来),我使用nano在终端中编辑了文件。输入:
sudo nano /etc/default/grub

找到包含GRUB_HIDDEN_TIMEOUT=0GRUB_TIMEOUT_STYLE=hidden的那一行 在该行开头加上#来注释掉它
#GRUB_HIDDEN_TIMEOUT=0

或者

#GRUB_TIMEOUT_STYLE=hidden

确保GRUB_TIMEOUT=10或其他大于零的数字。完成后,退出nano并保存更改,然后运行。
sudo update-grub

非常抱歉回复晚了,但这对我也起作用了,谢谢! - colorful-shirts
2只是评论一下,因为我尝试了这个方法:由于某些更新,这对我来说不起作用(Ubuntu 18.04)。我的/etc/default/grub文件中没有GRUB_HIDDEN_TIMEOUT行,不过可能已经被GRUB_TIMEOUT_STYLE=hidden替代了。我应该用其他东西来模仿你的解决方案吗?你知道应该用什么吗? - Marses
1@LimokPalantaemon感谢你非常有帮助的评论!每次软件包维护者更改了/etc/default/grub文件时,我都会保留我的编辑版本(因为我使用许多引导参数以及强制GRUB菜单显示)。多亏了你,我检查了新版本并对其进行了测试,并在这里更新了我的答案。这个版本成功地强制显示了菜单。现在我只需要尝试找到我提到这个问题的所有地方,并进行修正。 - Zanna

我有一台X200MA。要进入GRUB菜单,你在启动时按下Esc键。选择Ubuntu以正常启动。
如果你没有以UEFI模式安装Ubuntu,可能会遇到问题。我没有以那种方式进行测试。

换挡键对我来说不起作用,但是Esc键可以。谢谢。 - Alexander Mills

我遇到了同样的问题。系统会直接启动,我的显示器会处于超出范围的模式。我反复按键,直到我认为GRUB在等待命令,然后我按下Enter来选择恢复模式。
尝试了几次或者随机性的操作后,当我进入恢复模式时,显示器恢复正常。然后我:
  1. 选择root以获取root提示符
  2. 运行mount -o rw,remount /以将文件系统挂载为读写模式
  3. 运行vi /etc/default/grub
  4. GRUB_TERMINAL=console中移除#
  5. 保存文件
  6. 运行update-grub以更新GRUB
  7. 运行exit返回菜单并继续启动
这样,GRUB就会显示出来,显示器也能正常工作,然后我就可以登录了。

取消注释GRUB_TERMINAL=console对我也起作用了,谢谢! - stilliard

我回答这个问题是希望能帮助到其他人。
通常情况下,你试图通过按下Shift键来进入Grub是正确的!但是如果你启用了"Fastboot",Grub通常会明确禁止使用Shift键:
if [ "\${fastboot}" = "1" ]; then
  # timeout_style=menu + timeout=0 avoids the countdown code keypress check
  set timeout_style=menu
  set timeout=0

取自/etc/grub.d/12_menu_auto_hide

但是这里其他回答的人也是对的,只是我认为是针对不同的问题。如果 Grub 菜单在启动时没有自动启动,您可以尝试调整 /etc/default/grub 文件。

使用 sudo 权限打开它:

sudo nano /etc/default/grub

在那里,你应该能看到两个对我们很重要的条目:
GRUB_TIMEOUT= "some number, probably 0 or 5"
GRUB_TIMEOUT_STYLE= hidden/menu/countdown

GRUB_TIMEOUT告诉我们Grub加载默认操作系统之前等待输入的时间。

  • 0将立即选择默认操作系统
  • -1将无限期地等待用户输入

GRUB_TIMEOUT_STYLE告诉你如何显示Grub菜单,如果有的话

  • hidden= 隐藏Grub,除非你及时按下Shift
  • menu= 显示Grub
  • countdown= 不显示Grub,但会在屏幕上实际倒计时

希望这有所帮助 (更多信息,请参见/etc/default/grub中的其他条目Ubuntu Wiki


如果你一开始就无法进入系统,那么这个回答对你来说并没有帮助。 - chx101

有三个问题使得在某些系统上进入 grub 菜单变得困难。
1. 按下中断隐藏菜单功能的按键的时机很棘手。 2. 按住 Shift 键并不总是有效,因为一些 BIOS 会认为该键被卡住了并清除它,或者显示卡住键错误。 3. 当菜单应该出现时,有些显卡尚未初始化,屏幕会变黑,导致你错过了菜单。
前两个问题可以通过使用大写锁定键来绕过。诀窍是在启动过程中按下大写锁定键,并观察大写锁定指示灯。当它熄灭时,再次按下大写锁定键将其打开,并重复此操作,直到你要么获得 grub 菜单,要么意识到你又错过了时机。
一旦你成功进入隐藏菜单并获得 grub 菜单,你需要关闭大写锁定键,然后在菜单超时之前与菜单进行交互,以避免默认选项被选择。
如果您的系统在grub中存在定时问题或视频卡初始化问题,我强烈建议您使用这里的其他答案之一来永久禁用隐藏菜单功能和/或强制文本控制台模式。您需要成功启动系统才能进行此操作 - 无论是正常启动,通过grub菜单中的救援选项,还是通过引导Ubuntu安装介质并从那里调用救援模式。
当我在已知存在此类问题的计算机上安装Ubuntu时,我会使用“在安装之前尝试Ubuntu”的选项,并在安装完成之前编辑/etc/default/grub以禁用隐藏菜单。这可以在安装过程中或最后重新启动之前完成。确保在进行此编辑后重新运行update-grub命令,可以作为安装的一部分或手动执行。

简单回答:

在文件/etc/default/grub中,将GRUB_TIMEOUT设置为1,而不是0。(或者将其设置为其他正数,表示秒数。)然后保存编辑后,运行sudo update-grub

终端一行命令来完成此操作:

sudo sed -i 's/^.*GRUB_TIMEOUT=.*$/GRUB_TIMEOUT=1/' /etc/default/grub && sudo update-grub

如果这个包括了GRUB_TIMEOUT_STYLE=menu,我会给它点赞的。 - user10489
即使菜单被隐藏,按下Shift键(持续x秒)仍然有效,按下该键将显示菜单。这是一种不在每次启动时都看到菜单的隐蔽方式,同时具备中断和加载Grub选择的能力。 - Majal