当前位置: 首页>>技术问答>>正文


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

,

问题描述

我为测试目的安装了一个主线内核。我想在默认情况下将grub设置为从较旧的内核启动。

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

如果不安装其他软件(例如grub-customizer),我宁愿这样做。

Related Questions:
如何将Windows设置为引导加载程序中的默认引导?
我如何更改GRUB引导顺序?

最佳解决方案

首先,制作/etc/default/grub的备份副本。如果出现问题,您可以轻松恢复到known-good副本。

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 menu”的全名 – 例如Advanced options for Ubuntu

然后,您将这两个字符串与>并将GRUB_DEFAULT设置为:GRUB_DEFAULT =“Ubuntu> Ubuntu的高级选项,Linux 3.13.0-53-generic”(包括引号)。

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

sudo update-grub

另见:GNU GRUB Manual 2.02


注意:有一种利用数字访问内核和菜单的方法,但不推荐这样做,因为内核更新发生时它不可​​靠。

次佳解决方案

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

例如:

GRUB_DEFAULT="1>7"

/etc/default/grub和re-run sudo update-grub中。

需要注意的是,对于GRUB菜单条目编号以0开头。因此上面的1指向Advanced菜单。作为预防措施,您可能需要初始设置GRUB_TIMEOUT=5。有些可能无法通过在启动时键入密钥来访问GRUB。这是一个安全网,以防您不小心指向Memory test之类的东西。还需要将上述数字包含在引号中。否则它将无法工作。

我在16.04 LTS上测试过。

第三种解决方案

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

 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

通过这个设置,最后一次选择的值将保留下次启动。如果你有一个新的内核,你不必编辑你的配置。

别忘了re-run sudo update-grub

解决方案来自:info grub-mkconfig

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1001.html,未经允许,请勿转载。