将“较旧”内核设置为默认grub条目
我安装了一个主线内核用于测试目的。 我想默认情况下将grub设置为从旧内核启动。
我知道我可以为grub的第一页设置GRUB_DEFAULT=0
设置,但是如何将它设置为默认从第二页中的一个内核启动(高级页面)?
我宁愿这样做而不安装其他软件(例如grub-customizer)。
相关问题:
如何将Windows设置为引导加载程序中的默认引导?
如何更改grub引导顺序?
首先,制作/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
注意:有一种方法利用数字来访问内核和菜单,但不建议这样做,因为在发生内核更新时它是不可靠的。
现在Ubuntu中的Advanced
菜单是默认的,您需要在使用>
字符的内核之前选择它。
设置例如:
GRUB_DEFAULT="1>7"
在/etc/default/grub
重新运行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
使用此设置,将保留上次选择的值以用于下次引导。 如果您有新内核,则无需编辑配置。
别忘了重新运行sudo update-grub
解决方案来自阅读: info grub-mkconfig
为了能够设置默认使用哪个引导选项,您需要知道它有什么…所以:
要显示菜单条目而不实际启动 ,请尝试以下操作:
$ lsb_release -s -rdc Ubuntu 16.04.4 LTS 16.04 xenial $ update-grub --version grub-mkconfig(GRUB)2.02~beta2-36ubuntu3.17 $ grep -Ei'子菜单| menuentry'/ boot/grub/grub.cfg | sed -re“s /(。?)'([^'] +)'。* / \ 1 \ 2 /” menuentry Ubuntu 子菜单Ubuntu的高级选项 menuentry Ubuntu,Linux 4.4.0-34-generic menuentry Ubuntu,Linux 4.4.0-34-generic(新贵) menuentry Ubuntu,Linux 4.4.0-34-generic(恢复模式) menuentry系统设置