将“较旧”的内核设置为默认 grub 条目

将“较旧”的内核设置为默认 grub 条目

我安装了一个主线内核用于测试。我想将 grub 设置为默认从旧内核启动。

我知道我可以设置GRUB_DEFAULT=0grub 第一页的设置,但是如何设置它从第二页(高级页面)中的一个内核默认启动?

我更愿意在不安装其他软件(例如 grub-customizer)的情况下执行此操作。

相关问题:
如何在引导加载程序中将 Windows 设置为默认引导?
如何更改 grub 启动顺序?

答案1

首先,备份/etc/default/grub。如果出现问题,您可以轻松恢复到已知良好的副本。

sudo cp /etc/default/grub /etc/default/grub.bak

然后使用您选择的文本编辑器(例如 gedit 等)编辑该文件。

sudo -H gedit /etc/default/grub

找到包含以下内容的行GRUB_DEFAULT- 这是您要编辑以设置默认值的内容。您必须知道所需内核的全名 - 例如Ubuntu, with Linux 3.13.0-53-generic- 以及“高级菜单”的全名 - 例如Advanced options for Ubuntu

然后将这两个字符串组合>并设置GRUB_DEFAULT为:(GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-53-generic"包括引号)。

保存它,然后构建更新的 grub 菜单。

sudo update-grub

也可以看看:GNU GRUB 手册 2.02或者更具体地说15.1.0 节关于设置默认值


注意:有一种方法可以利用数字来访问内核和菜单,但不建议这样做,因为在内核更新时这种方法不可靠。

答案2

对我来说最好的解决方案是设置(在/etc/default/grub):

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

使用此设置,上次选择的值将保留用于下次启动。如果您有新内核,则无需编辑配置。

不要忘记重新运行sudo update-grub

解决方案来自阅读:info grub-mkconfig

答案3

现在,AdvancedUbuntu 中菜单是默认的,您需要在使用字符选择所需内核之前选择它>

设置例如:

GRUB_DEFAULT="1>7"

/etc/default/grub重新运行sudo update-grub

需要注意的是,GRUB 菜单项的编号以 开头0。因此,1上面的数字指向Advanced菜单。作为预防措施,您可能需要首先设置GRUB_TIMEOUT=5。有些人可能无法在启动时通过按键来访问 GRUB。这是一个安全网,以防您不小心指向了类似的东西Memory test。还需要将上面的数字放在引号中。否则它将不起作用。

我在 16.04 LTS 上进行了测试。

答案4

当我最初发布这篇文章时,我没有注意到 OP 的具体要求,不要求婚grub-customizer......抱歉。

不管怎样,我会把它留在这里,但也要确认最好的解决方案确实是获得最多赞成票的解决方案这里,其中的变量可以在补充答案。


为了使用 GUI 来实现,我使用Grub 定制器(我在 Mint,但这不算在这里)。

最简单、最直接的方式(感谢@eMKi 在评论中的建议)——最适合永久设置,常规设置 > 默认条目 > 预定义,只需在下拉列表中选择所需的内核。

在此处输入图片描述


或者,如果需要将“上一次启动的条目”作为选定的条目(例如,在进行需要重新启动的 Windows 更新时,在双启动 Windows 中可能会很有用)— 保留高级选项如果在 Grub Customizer 中更改了默认列表,则在 grub 列表中:

在此处输入图片描述

在下面常规设置选择默认条目:上一个引导项

在此处输入图片描述

然后,重新启动,并在启动过程中选择 grub 列表中的“高级选项”条目:

在此处输入图片描述

并选择较旧的内核

在此处输入图片描述

下次重启时,“高级选项”项将成为 grub 列表中默认选择的项,并将启动其中最后选择的内核(无需打开完整的内核列表)。

如果使用 Windows,或者 grub 列表中有其他选项,请记住重新执行前面的步骤。

相关内容