答案1
我们可以使用 Grub 的环境块。环境块存储在 中/boot/grub/grubenv
,这个文件有点特殊,它有一个预分配的大小 1024 字节。即使你可以用文本编辑器打开这个文件来显示它的内容,我们也不应该用文本编辑器编辑这个文件。
我们可以/boot/grub/grubenv
使用不同的工具进行编辑:
终端命令sudo grub-editenv [OPTION...] FILENAME COMMAND
,另请参阅man grub-editenv
菜单输入命令save_env [-f file] var
,详细信息请参阅 GNU Grub 手册
如果文件/boot/grub/grubenv
不存在,你可以使用以下命令创建它
sudo grub-editenv /boot/grub/grubenv 创建
我们必须创建一些自定义菜单项,https://help.ubuntu.com/community/Grub2/CustomMenus
提供了有关如何执行此操作的有用信息。编辑/etc/grub.d/40_custom
它,使其看起来像这样:
/bin/sh #!/bin/sh 复制代码 执行 tail -n +3 $0 # 此文件提供了一种添加自定义菜单项的简单方法。只需输入 # 个要在此注释后添加的菜单项。请注意不要更改 # 上面的‘exec tail’行。 # 子菜单‘设置启动默认值’{ menuentry'将第一个条目设置为默认条目'{ 设置 saved_entry=0 保存环境已保存条目 重启 } menuentry'将第二个条目设置为默认条目'{ 设置 saved_entry=1 保存环境已保存条目 重启 } }
如果文件中已经有自定义菜单项,我们只需将注释行后的行附加到文件中。菜单项中的命令作用如下:
set saved_entry 将环境变量saved_entry设置为指定值。 Save_env saved_entry 将变量saved_entry存储在/boot/grub/grubenv中。 重启机器
此外,我们还需要编辑/etc/default/grub
包含基本 Grub 配置的文件。同样,在 GNU Grub 手册中,我们会找到详细资料。
我们/etc/default/grub
必须将 的值更改为GRUB_DEFAULT
。GRUB_DEFAULT=saved
这将强制 Grub 在我们启动时加载默认菜单项/boot/grub/grubenv
。如果您发现一行带有GRUB_SAVEDEFAULT=true
,请删除此行。
要将我们所做的更改应用到 Grub 的主配置文件,/boot/grub/grub.cfg
我们必须运行sudo update-grub
。
下一步我们sudo grub-editenv - set saved_entry=0
在终端中运行。这样做是为了避免冲突,当 Grub 下次启动时,Grub 会查找saved-entry
并/boot/grub/grubenv
找到它。
现在我们可以重新启动,当 Grub 菜单出现时,我们将在列表中看到添加的子菜单,我们打开它并选择其中一个条目。Grub 将设置 saved_entry 为指定值,保存它然后/boot/grub/grubenv
重新启动。Grub 菜单再次出现,我们将看到,新的默认值被自动选中。
还有一件事需要考虑
在哪个操作系统中我们必须进行这些更改?我们安装了两个 Linux 发行版,并且都附带 Grub。根据启动信息摘要和终端命令,findmnt
我们应该能够识别保存和控制配置文件的发行版。在这个发行版中,我们必须执行上述步骤。在其他发行版中,Grub 是不需要的,应该被删除甚至清除,只是为了避免任何类型的冲突。
附加信息:
使用 Grub 版本在我的系统上对此进行了测试2.02~beta2-36ubuntu3.8
。
答案2
cd /etc/默认/
vim grub
改变GRUB_DEFAULT=0到您想要的那个。
或者
cd /启动/grub
vim grub配置文件
编辑时请小心
重新排列菜单项的功能,您将能够在引导加载程序上看到它。