如何让grub2记住最后的选择?


102

Grub2-社区Ubuntu文档说:

如果在/ etc / default / grub中设置了DEFAULT = saved,则可以通过运行sudo grub-set-default来保存操作系统。如果还在/ etc / default / grub中设置了GRUB_SAVEDEFAULT = true,则也可以保存它。在这种情况下,默认操作系统将保留,直到从GRUB 2菜单中手动选择新的操作系统或执行grub-set-default命令为止。

我把线DEFAULT=saved插进GRUB_SAVEDEFAULT=true/etc/default/grub,然后跑了sudo grub-set-default。这是输出:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <bug-grub@gnu.org>.

我没有正确遵循文档吗?正确的方法是什么?


2
更改grub文件后,最好始终运行“ sudo update-grub”。
朱利安·

只需运行:sudo grub-set-default保存就这么简单。
T. Coles

Answers:


153

在这种情况下,文档是错误的。在所有变量/etc/default/grub下手GRUB_,所以它的GRUB_DEFAULT=saved不是 DEFAULT=saved。我已经更正了Ubuntu Wiki以反映这一点。

grub官方手册正确地描述了这一点:http : //www.gnu.org/software/grub/manual/grub.html#Simple-configuration

将以下内容放入/etc/default/grub

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

然后运行:

sudo update-grub

4
+1的链接,我已经使用对我有用的解决方案(由我提供的链接派生出来)编辑了您的答案
Jay Sullivan

该答案中的链接已断开。“第404页”。
sdlins

我应该删除现有的行GRUB_DEFAULT=0吗?
user25

@ user25 yes remove GRUB_DEFAULT=0,该行应显示为GRUB_DEFAULT=saved
ctrl-alt-delor

4

在我的情况下,它对于定义/etc/grub.d/40_custom缺少savedefault行的条目不起作用。

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}

2

您忘记了该数字(即,文本中的“ ENTRY是数字或菜单项标题。”)。

sudo grub-set-default 1

选项1为默认值。

始终sudo update-grub在修改/etc/default/grub文件以应用更改后运行。


7
这对我不起作用,它只是将GRUB菜单设置为指向条目1,而不是最后的选择
Jay Sullivan

如果您的菜单选项将被埋在子菜单中(例如“ ubuntu的高级选项”中),则格式为“ submenu-index> submenu-item-index”。因此,您需要指定1>“您的选择索引”。您还应该能够为每个选择通过字符串名称指定。
2015年

1

如果自动生成的grub.cfg中没有适当的头,则savedefault将不起作用

要生成适当的头文件,您需要在/ etc / default / grub中进行设置

GRUB_DEFAULT=saved

并使grub-mkconfig替换您的grub.cfg副本

grub-mkconfig -o /boot/grub.cfg

Grub 2.02中的savedefault不需要任何其他参数

您可以在grub.cfg中看到savedefault的来源


查看@ccpizza的答案,可能会有所帮助:askubuntu.com/a/674148/97838
Hibou57 '17
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.