如何在 Centos-8 下的命令行中列出 GRUB2 的“菜单项”?使用的可行方法“fgrep menuentry /etc/grub2.conf”失败。
因为在 Centos-8/RHEL-8 中,它们不会将 menuentry 存储在 /etc/grub2.conf 中。相反,它们在启动运行时搜索和构建条目。
以及如何将自定义 cmdline 参数添加到特殊菜单项?/etc/grub2.conf 中没有menuentry,我无法编辑任何menuentry。
RHEL/CentOS 8 中的 Grub 菜单条目由各种文件和脚本组合而成,因此我们不会像以前版本的操作系统那样看到静态条目。(您可以看到位于 /boot/loader/entries/ 目录下的未扩展启动项配置文件)
为了查看默认菜单项,您可以使用:
grubby --info DEFAULT
为了查看所有菜单条目,您可以使用:
grubby --info ALL
后者还为我们提供了每个有用的条目的相应索引。例如,以下将列出第三个条目的多个条目详细信息:
grubby --info 2
为了自定义特定条目,您可以通过引用索引来做到这一点:
grubby --args amd_iommu=on --update-kernel 2
或者通过简单地使用当前内核的内核版本如下:
grubby --args amd_iommu=on --update-kernel=/boot/vmlinuz-$(uname -r)
对条目进行修改后,选项应展开并列在 /boot/loader/entries/ 中的相应条目文件中(否则您将看到变量)。
不幸的是,grubby 不会列出您添加到 /boot/grub2/custom.cfg(由 /etc/grub.d/41_custom 加载)中的菜单条目。我也不确定它是否会包含 /etc/grub.d/40_custom 中加载的条目。
通过编译 grub2-emu 并运行它,我已经成功地看到了 grub 的菜单条目:
https://github.com/Jolicloud/grub2/blob/master/util/grub-emu.c
它在某些存储库中以 grub-emu 或 grub2-emu 包的形式提供。它向您展示了 grub 菜单的模拟,就像它在启动时出现的那样。