Grub 菜单工作但被隐藏,无法使其可见

Grub 菜单工作但被隐藏,无法使其可见

升级到 19.04 后,Grub 菜单被隐藏了。它仍然有效,我可以通过盲目找到条目并按回车键来启动 Windows 10 和 Ubuntu。我尝试编辑/etc/default/grub并随后运行sudo update-grub,但没有变化。现在它看起来是这样的:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TIMEOUT_STYLE=menu
GRUB_HIDDEN_TIMEOUT_QUIET=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

我无法使用ShiftEsc使其可见。按下其中任何一个后,Grub 不再工作,我需要关闭笔记本电脑然后再打开才能启动。

编辑:不确定这是否有帮助,但我刚刚意识到,如果我退出 BIOS 时进入 BIOS,grub 菜单就会毫无问题地显示出来。下次启动时,grub 菜单又不可见了。

答案1

我也遇到了同样的问题。

尝试了几种解决方案后,终于有一种方法奏效了(详细说明,以防别人需要):

  1. /etc/default/grub通过在正确的文件夹中的终端运行进行编辑:

    sudo gedit grub
    
  2. 取消注释该行#GRUB_TERMINAL=console。正确版本应为:

    GRUB_TERMINAL=console
    
  3. 保存文件。

  4. 在终端中运行:

    sudo update-grub
    
  5. 重新启动。现在应该会出现 GRUB 菜单。

注意:我不知道为什么,但是图形终端无法工作。控制台有点丑,但我不在乎。

答案2

我也遇到了这个问题。您的描述让我找到了最终的解决方案:GRUB-GFXMODE=auto是这个问题。

我通过按进入 GRUB 控制台C(在我取消注释 GRUB 控制台输出以便再次可以看到 GRUB 菜单之后)并运行了没有返回任何内容的/etc/default/grub命令。videoinfo

好吧,如果自动模式不起作用,任何输出都很困难 ;-) 这就是问题的原因。系统不会自动检测屏幕分辨率。需要手动输入合适的值。

我将其更改为GRUB-GFXMODE=1280x800,这是我的笔记本电脑的已知分辨率,您的值当然可能有所不同。grub可以在图形模式下编辑文件,文件管理器以 root 模式打开(您需要 root 权限才能更改系统文件),对于命令,grub-update我当然使用终端,如中所述Felipe 的帖子

最后,我又看到了漂亮的 GRUB 屏幕 :-)

答案3

对于 Manjaro 21.2 及以上版本或 Ubuntu 20.04 及以上版本,在 /boot/grub/grub.cfg 中添加以下几行

videoinfo

并在/etc/default/grub注释中输入以下行以启用 grub 主题

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

如果这个方法有效,你可以将这些行添加到 /etc/grub.d/00_header 中。这个解决方案在 Ubuntu 18.04 中不起作用,可能是因为我没有更努力,我不知道。

此解决方案假设 grub 在视频模块完全加载到内存之前向其发出了主题编译指令。这会导致视频模块崩溃,但 grub 不会受到影响。因此,此解决方案强制 grub 在模块加载时在控制台上停留一段时间,然后最终转到 gfxmode

答案4

我遇到了同样的问题并且我无法忍受丑陋的文本/控制台菜单。

答案来自汉克·W解决了它但每次重启时视频信息都会闪烁,因此可以使用另一个命令来代替videoinfo相同的目的:

sleep .5

这样,grub 需要一段时间来加载模块,然后才能进入图形模式,并且不会在屏幕上显示任何内容。


笔记:您可以尝试使用该sleep值(以秒为单位)来让它正常工作,而不会花费太多时间。我发现它sleep .1在我的系统中仍然可以正常工作。


笔记:如果您不确定如何在文件中包括该命令/etc/grub.d/00_header,以下是我找到的方法(请注意,编辑 grub 文件可能会导致你的系统无法启动)

sudo gedit /etc/grub.d/00_header

找到下面这行set gfxmode

set gfxmode=${GRUB_GFXMODE}
load_video
insmod gfxterm

并在 load_video 之前插入命令,如下所示:

set gfxmode=${GRUB_GFXMODE}
sleep .1
load_video
insmod gfxterm

在那次跑步之后

sudo grub-mkconfig -o /boot/grub/grub.cfg

最后重启。对我来说,它成功了!

相关内容