如何隐藏启动开始时显示的GRUB菜单?


42

我停止了双重引导,并且不再需要选择操作系统。我想直接启动到Ubuntu 12.04,而没有看到GRUB菜单。

我该如何实现?


如果停止了双重引导,则可能已停止使用其他操作系统。为什么不能删除其他操作系统,以便ubuntu可以正常启动。
karthick87 2012年


如果这些答案中的任何一个“回答了”您的问题,请接受其中一个:)
blade19899

@ david6:我看不到这些问题中的任何一个是重复的。我认为这是关于在超时期间隐藏grub菜单。
2012年

抱歉,第二个链接应该是:askubuntu.com/questions/66070/…这包括如何:隐藏Grub2菜单,并使用默认菜单选项
david6 2012年

Answers:


33

您可以更改grub设置。

输入终端

sudo -H gedit /etc/default/grub

你需要改变这个

更改GRUB_HIDDEN_TIMEOUT_QUIET=false

GRUB_HIDDEN_TIMEOUT_QUIET=true

保存文件并退出

类型 sudo update-grub

如果没有得到想要的结果,请参见此错误


7
它目前已更改为True,但我仍然看到grub菜单...
Alex Poulos 2012年

我在12.04上试过,但我已经尝试过了,但是它已经说“ true”,并且仍然显示出来。我仅有的其他操作系统是故障保护和Memtest-就是这样。我已经删除了Windows分区并更新了grub,菜单仍然显示。
亚历克斯·普洛斯

@AlexPoulos看看此链接

2
通过将超时更改为0,然后使其安静为我工作。谢谢
king_julien 2014年

23

我通过禁用OS Prober解决了这个问题。我这样做是因为在/boot/grub/grub.cfg模板生成的部分中/etc/grub.d/30_os-prober,“ timeout”为10,“ style”为菜单。

编辑/etc/default/grub并添加以下行:

GRUB_DISABLE_OS_PROBER=true

希望你觉得这个有用!

顺便说一句,我完整的/ etc / default / grub是:

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR= [...]
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0

快乐编码


2
这对我
有用

1
@opensas如果未显示选择菜单,您怎么知道该菜单上“出现”了哪些引导选项?如果要禁用菜单,为什么要使用非默认启动选项?
凯尔·斯特兰德

如果您忽略了'GRUB_TIMEOUT_STYLE = hidden'部分,那么倒数是可见的,但除非您中断它,否则其他都不会。这样,即使不那么明显,也可以进入菜单并更改启动设置。
碎石机

如果要在按住Shift键后才能看到启动菜单,则必须将GRUB_TIMEOUT设置为大于零(例如GRUB_TIMEOUT = 5)。否则,如果需要,其他启动选项(例如Windows)将无法激活。
user3804598

在Ubuntu 18.04 LTS,GRUB_RECORDFAIL_TIMEOUT=0对变化/etc/default/grub,消除在30秒的超时时间(和共GRUB启动菜单),这似乎是一个错误:bugs.launchpad.net/ubuntu/+source/grub2/+bug/1814403/评论/ 4。另外,sudo update-grub必须执行才能使编辑生效,答案中没有提到。请注意,0除非机器是开发VM或类似机器,否则不建议将此值设置为(请参见上文引用的链接)。
本·约翰逊

11

我尝试了所有这些无效的技巧,最终将超时时间减少为零,如下所示:

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

sudo update-grub更改值后运行
niksmac 2014年

我也是。我运行了“ update-grub”-没用。
罗宾·温斯洛

1
这就是我的/ etc / default / grub,但是在显示grub菜单的情况下,我仍然得到了10秒的倒计时。
zorkerz

8

您需要在处编辑文件,/etc/default/grub以防止显示grub菜单。

默认情况下,该文件中的条目如下所示。

GRUB_DEFAULT = 0
#GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = false
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR =`lsb_release -i -s 2> / dev / null || 回声Debian`
GRUB_CMDLINE_LINUX_DEFAULT =“安静的飞溅”
GRUB_CMDLINE_LINUX =“”
  • #从第二行删除标记,然后
  • 将行更改GRUB_HIDDEN_TIMEOUT_QUIET=falseGRUB_HIDDEN_TIMEOUT_QUIET=true

更改后,文件的所需部分将如下所示

GRUB_DEFAULT = 0
GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = true
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR =`lsb_release -i -s 2> / dev / null || 回声Debian`
GRUB_CMDLINE_LINUX_DEFAULT =“安静的飞溅”
GRUB_CMDLINE_LINUX =“”
  • 然后sudo update-grub在终端中运行命令,然后重新启动以查看结果。

3
我有此配置,但仍出现grub菜单。

1
使用此设置,update-grub返回“警告:不再支持在设置GRUB_HIDDEN_TIMEOUT时将GRUB_TIMEOUT设置为非零值”,并且在显示grub菜单时,我仍然得到10秒的倒计时。将GRUB_TIMEOUT设置为0也将返回相同的结果。
zorkerz

@zorkerz您使用的是哪个版本的ubuntu?
Anwar

Xenial Xerus在15.10时有相同的行为
zorkerz

5

我遇到了同样的问题,这里的所有提示均无效!唯一的方法是手动更改/boot/grub/grub.cfg。在该文件的某个时刻,他使超时时间达到10!因此,只需注释这些行

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

但是,您永远无法再次执行update-grub,否则它将返回到同一文件,并且超时将再次变为10!保存文件(在vi中,即使您是su,也需要强制执行该操作)。重新启动计算机,它将正常工作!


有趣,为什么不if [ "${timeout}" = 10 ]; then set timeout=0 fi 呢?或者只是完全删除if语句,然后离开set timeout=0
极客长老

这是从可以禁用的模板放到那里的(如Agustin的答复中所述,OS探针程序)。您无需手动编辑grub.cfg。
尼尔·特拉夫特

这在14.04中为我工作
卡拉马卡小子

3

如果要删除引导项,请键入:

sudo update-grub

如果那不起作用,请安装启动管理器,如下所示:

sudo apt-get install startupmanager


使用启动管理器,您可以

  1. 选择要启动的条目,
  2. 选择分辨率,以及启动前要等待多长时间,
  3. 您还可以选择0来自动引导默认的引导条目

汉堡,但他正在吃g头
Black Block

抱歉打错字。它应该是sudo update-grub,我编辑了答案
blade19899 2012年

唯一的问题是我所拥有的Startup-manager版本没有太多选择-Imgur
Alex Poulos

1
我在12.04上试过,但我已经尝试过了,但是它已经说“ true”,并且仍然显示出来。我仅有的其他操作系统是故障保护和Memtest-就是这样。我已经删除了Windows分区并更新了grub,菜单仍然显示
Alex Poulos

在“以秒为单位的超时”旁边,有一个编号为10的框,将其重命名为编号0
blade19899 2012年

3

Agustin一样,我发现问题出在OS Prober。比他的解决方案好一步,我发现了这个要点,它可以让您拥有自己的操作系统,但仍然隐藏菜单。您只需要下载这两个文件,然后将它们放入中/etc/grub.d,并赋予它们与该目录中其他模板相同的权限即可。

如果要访问非默认操作系统,只需在启动时按住shift键即可。这将显示菜单。


在我看来,这绝对是个错误。有没有人举报呢???
打开

是的...也许我会在某个时候解决它。不知道是否已经有一个。
尼尔·特拉夫特

3

我找到了解决该问题的简单方法。

  echo "
  set timeout_style=hidden
  set timeout=2" | sudo tee --append /etc/grub.d/40_custom 

并更新grub。它将覆盖grub.cfg中的超时设置,因此与/ etc / default / grub中的内容无关。因此,我有隐藏菜单,可以通过切换2秒来调用。


当此页面上提出的其他解决方案都没有起作用时(我最后一次测试此方法真的很不幸:/),这种方法对我有效(由Ubuntu 17.10安装的grub 2.02〜beta3-4ubuntu7)。谢谢!
pchaigno

2

将以下行添加到/etc/default/grub

GRUB_FORCE_HIDDEN_MENU="true"

2

我一直在看到很多人说建议的答案对他们不起作用。我尝试了几种选择,而这个选择对我有用

编辑/etc/grub.d/00_header,然后找到:

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1

更改为...

if [ "\${recordfail}" = 1 ]; then
  set timeout=10

并运行update-grub。


2

对于所有在cmd行中出现单词飞溅的人,除了将0硬编码为超时外,其他任何方法都将不起作用,

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

尝试从倒数第二行中删除单词飞溅,更新并重新启动,瞧,没有菜单:)

hth,krex


2

这花了我一段时间,但确实有回报,这是我自己在挖掘的结果,上面的答案首先要确保您/etc/default/grub/usr/grub/default/grub相同。然后gksu gedit /etc/grub.d/30_os-prober在顶部附近是我们想要的两行,但是要找到它们,请搜索styke并将该行更改为hidden,然后搜索超时行,就像timeout = 0设置为10一样,从if到文件的末尾删除该部分,确保您删除文件的末尾或拧紧后,您的grub配置应该记录这样的内容,例如,这是我的:

将默认启动设置为Windows 8.1 Pro

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

设置一个五秒钟的窗口以进行轮班,这样我就可以启动进入Ubuntu

GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true

主要修复错误,以防万一

GRUB_TIMEOUT=0

将样式设置为隐藏

GRUB_TIMEOUT_STYLE=hidden

默认的Ubuntu资料

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

1
  • 通过配置grub sudo nano /etc/default/grub
  • 键入文件结尾:
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
  • 保存更改CTRL+S
  • 退出CTRL+X
  • 更新grub菜单 sudo update-grub

0

尝试此方法时,后果自负,仅当不得已时使用!

我尝试编辑/etc/default/grub并运行但sudo update-grub没有结果。

最终/boot/grub/grub.cfg是手工编辑,特别是,

...
### END /etc/grub.d/00_header ###

set timeout=0
saved_entry="Ubuntu"
save_env saved_entry

### BEGIN /etc/grub.d/05_debian_theme ###
...

-1
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="lsb_release -i -s 2> /dev/null || echo Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Set this if you hide grubmenu at boot! hidden-timeout has to be 0-10
# NOT recommend with dual-boot systems
# Type ESC/ENTER at boot to make grub-menu visible again! 
# in this case hidden-timeout has to be 3-10
GRUB_DISABLE_OS_PROBER=true

解决了问题!s.grub2 @ubuntuusers!;-)

也可以在引导过程中再次显示grub菜单!

重要信息:如果您崩溃了,并且想引导一个旧的(稳定的)内核!

(在基于Ubuntu 14.04的Linux Mint 17.3 Rosa上进行了测试)


4
请不要重复先前的答案
大卫·佛斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.