如何设置grub超时时间和grub默认启动项?


191

在Ubuntu 12.04(或更高版本)中,当我同时启动Windows(7/8)和Ubuntu(12.04或更高版本)时,如何设置GRUB时间和默认操作系统(在启动时看到)?


您能否提供更多信息。您对“ grub time”的含义是什么,默认的操作系统是什么。在您的grub菜单中,有哪些不同的行?
朱利安·肖(Julien Chau)

1
grub time表示我必须在BIOS启动屏幕上选择操作系统时的倒计时时间。抱歉,我不知道操作系统选择菜单的确切名称,因此我将其发布为grub时间。
流星2012年

Answers:


227
  • Alt+ F2gksudo gedit /etc/default/grub按,Enter然后输入密码。
  • 您将看到以下内容:

    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 =“”
    
  • 您可以将默认值从0更改为任意数字,与Grub启动菜单中的条目相对应(第一个条目为0,第二个为1,依此类推)

  • 您可以更改“隐藏超时”(无菜单);并显示倒数(GRUB_HIDDEN_TIMEOUT_QUIET=false
  • 您可以通过在行的开头GRUB_HIDDEN用a 注释掉两行来强制显示grub菜单#
  • 并设置grub菜单超时(默认为10秒)

  • 进行更改,按Ctrl+ S保存并按Ctrl+ Q退出

  • 重要提示:使用Ctrl+ Alt+ 打开终端,T然后输入sudo update-grub以应用您刚刚所做的更改
  • 重新启动,您应该会看到超时/默认条目更改

链接的问题:


谢谢@Raja,但是grub / grub2是主要区别。如果您使用了正确的grub2,我会很乐意编辑您的答案,而不是再提出一个问题:)
ish 2012年

谢谢您的回答有效,但是您能为我解释第二点和第三点(隐藏​​的超时和grub的隐藏线)是什么意思。
流星2012年

2
请不要建议任何人通过设置任意索引来更改默认grub选项。这是非常不直观的,很可能导致灾难。用户可能输入了错误的密码,或者在升级过程中可能更改了密码,从而导致意外的行为。
塞林2015年

2
这需要与当前grub菜单的双重级别相关的更新。
汉奴

1
@Cerin您的建议是什么?
布劳伦

30

如果您在上面的示例(/ etc / default / grub)中读取了正在编辑的文件,则会注意到前几行指示您update-grub进行更改后运行,以便将grub读取的实际文件更新为“获取说明”(/boot/grub/grub.cfg)。请注意,您实际上必须首先使用该sudo命令运行,因为您需要root特权才能实际运行该命令(这就是上面的发帖人说键入的原因sudo update-grub)。这将导致您所做的更改被写入/boot/grub/grub.cfg。接下来的几行告诉您可以通过键入阅读该文件中选项的完整文档(同样是/ etc / default / grub)info -f grub -n 'Simple configuration'

就是说,如果要将“ grub time”设置为不确定,则将GRUB_TIMEOUT设置为-1。换句话说,它将永远不会自动启动。您将必须进行选择。

最后,为回答您的问题,以下是直接来自上述参考文件的“隐藏线”的描述:

GRUB_HIDDEN_TIMEOUT
    Wait this many seconds for a key to be pressed before displaying
    the menu.  If no key is pressed during that time, boot
    immediately.  Unset by default.

GRUB_HIDDEN_TIMEOUT_QUIET
    In conjunction with `GRUB_HIDDEN_TIMEOUT', set this to `true' to
    suppress the verbose countdown while waiting for a key to be
    pressed before displaying the menu.  Unset by default.

我希望这有帮助!


14

您可以使用名为Grub Customizer的应用程序。这要容易得多。

您可以通过以下方式安装它:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

有一篇关于它的How-To Geek文章,如何以简单的方式配置Linux GRUB 2引导菜单。另外,Ubuntu论坛上有一个已解决的线程,提到此工具的GRUB 2中的更改启动顺序

以下是此软件的一些屏幕截图:

屏幕_1

屏幕_2

screen_3


1
这需要与当前grub菜单的双重级别相关的更新。
汉奴

5

我遵循了第一个答案,但是如果您使用Windows 7 Pro和Ubuntu 16.04双重引导,则似乎需要更新。还要确保在BIOS中关闭了安全启动。

a)首先,当我认为他想使用其打开终端窗口时,请说使用Alt+ F2。就我而言,它是Ctrl+ Alt+ T

b)在第一个条目gksudo gedit /etc/default/grubgksudo,默认情况下未在Ubuntu 16.04中安装命令。要解决此问题,请在终端中执行以下操作:

sudo -i然后按Enter并输入密码,然后Enter再次输入。

然后输入:

gedit /etc/default/grub然后按Enter

c)现在,您将看到答案1中所示的grub更改菜单。按照他的答案进行操作,直到他到达Ctrl+ S以保存更改。这在Ubuntu 16.04中不起作用,但是您应该在屏幕的右上角看到一个保存按钮。点击那个。

d)Ctrl+ Q退出。

e)下一类sudo update-grubEnter

f)类型exit。您需要执行两次。

g)重新启动

我发现在几次登录后,我的计算机上的启动过程在启动时不会显示grub屏幕,因此我无法进入Ubuntu,因为我将Windows设置为默认启动,并且有7秒的延迟,以防万一我想获得进入Ubuntu。

要更正此问题,您需要进入Windows。

  1. 单击开始菜单,然后CMD在搜索框中键入。

  2. 右键单击CMD行,该行应位于通过右键单击生成的屏幕顶部。

  3. 单击以管理员身份运行

  4. 在命令行上bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi。此项具有向Windows引导管理器注册grub菜单的作用。(信用:Windows 8.1 Ubuntu 13.10 Dual boot的启动时未显示Grub

  5. 最后,我重新启动回Windows。

我希望这有帮助。


能否请您链接到“答案1中的插图”-我找不到您的意思。
汤姆·黑尔

另外,“我遵循了第一个答案”。您可以以我的“贷方为:”格式为例。很棒的第一篇文章。欢迎来到AskUbuntu。
汤姆·黑尔

在运行诸如gedit之类的图形应用程序时,我以奇怪的方式中断了X窗口。我建议改用像nano这样的基于文本的编辑器。
亚瑟塔卡

2
Alt+F2是在后台运行命令的统一快捷方式。在打开的菜单中,您可以像在终端中一样输入任何命令。但是由于它无法打开终端,您将看不到任何终端输出,也无法与终端进行交互。这就是为什么您通常将其用于启动gedit之类的GUI程序之类的原因。另外,您不能使用sudo,因为您需要使用终端。这就是他们使用gksudo(GUI sudo)的原因。如果您在终端中执行命令,则可以仅使用如下常规方法sudosudo gedit /etc/default/grub不需要sudo -i
塞巴斯蒂安

@Sebastian对于启动图形应用程序,sudo -H效果更好,即sudo -H gedit /etc/default/grub
wjandrea

2

自从GRUB引入以来,使用基于数字的默认条目令我感到惊讶。这真是个坏主意。内核更新和自动grub重新配置如何?如果没有意识到喜欢在列表末尾输入内容的用户又如何呢?更新将破坏该默认的基于数字的配置。

而是在这里使用SAVED选项来记住最后选择的条目:

GRUB_DEFAULT=SAVED
GRUB_SAVEDEFAULT=TRUE

然后将GRUB与

sudo update-grub

1
这不是一个大问题,但这不能解释如何或在何处进行这些更改。您可能想要链接到另一个答案。
wjandrea

1

这对16.04也对我不起作用。

但是我通过更改文件/boot/grub/grub.cfg来修复它

sudo vim /etc/default/grub

编辑grub

sudo update-grub
sudo chmod u+w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg

更改超时值

###segment in /boot/grub/grub.cfg:
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  #set timeout=10 # comment this original
  set timeout=0 # add this
fi

sudo chmod -w /boot/grub/grub.cfg
reboot

0

无需任何代码即可轻松完成。只需按照以下步骤。

  1. 打开文件系统。
  2. 打开/etc文件夹。
  3. 打开default文件夹。
  4. 查找grub文件并使用leafpad(或任何其他文本编辑器)将其打开。
  5. GRUB_TIMEOUT根据需要设置并保存。
  6. 现在打开终端并输入update-grub
  7. 重新启动系统。

而已。


0

我认为您有这样一行:GRUB_TIMEOUT_STYLE =隐藏

将其更改为GRUB_TIMEOUT_STYLE = menu

并注释有关隐藏功能的所有行。

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.