我想更改 GRUB2 中的默认引导操作系统。但我知道在 GRUB 菜单中查看所需操作系统顺序的唯一方法是重新启动并查看显示的菜单。
grub.cfg
GRUB 菜单中的行数比实际选择多得多,menuentry
因此我无法在该文件中识别出我想要的行。
是否有任何地方可以存储实际显示的菜单,以便我无需重新启动即可看到它?
答案1
笔记:这个答案最初是在使用旧版 grub 时编写的。它已更新为可与 GRUB2 配合使用。
我相信这grub2-emu
应该对你有用。在终端中,执行:
sudo apt install grub2-emu && grub2-emu
看这里了解更多信息。
意识到:您必须将焦点设置到启动模拟器的终端才能进行输入!模拟器自身的窗口根本不会对任何输入做出反应。
答案2
您可以安装grub2 主题预览,这是一个 PyPi 包。它使用 QEMU,似乎可以很好地测试 grub 主题,并且无需在每次更改后重新启动。
也可以直接从 AUR 获取,这是我使用的版本,因为我使用的是 Manjaro。
它需要以下非 PyPi 依赖项(参见 README.md有关链接、更多详细信息和潜在更新):
- GRUB 2 的 grub-mkrescue(Debian 和 Ubuntu 上的 grub-common 软件包)
- QEMU — 执行硬件虚拟化的管理程序
- OVMF — 用于 QEMU 的 EFI BIOS 映像
- mtools — 访问 MS-DOS 的实用程序集合
- libisoburn 的 xorriso — 支持创建和扩展 ISO 格式的前端
- 当然还有 python / pip
要安装,请运行以下命令:
pip install --user grub2-theme-preview
安装后,您可以grub2-theme-preview /path/to/your/theme/directory
从终端运行来启动它(更多关于使用这里。)
注意:如果您有任何自定义配置,例如 custom.cfg 或 liveiso.cfg,您可以单独将其放入 grub.cfg 中,这要归功于 /etc/grub.d/41_custom 中的脚本,例如它们的条目可能不会显示,在这种情况下,您需要使用新添加的 --add 标志。您的命令可能如下所示,其中为您要添加的每个自定义配置添加 --add TARGET=/SOURCE:
grub2-theme-preview --verbose --grub-cfg /boot/grub/grub.cfg --add /boot/grub/custom.cfg=/boot/grub/custom.cfg --add /boot/grub/gpu-switcher.cfg=/boot/grub/gpu-switcher.cfg --add /boot/grub/liveiso.cfg=/boot/grub/liveiso.cfg /usr/share/grub/themes/manjaro
更多上下文在这里:https://github.com/hartwork/grub2-theme-preview/issues/29#issuecomment-980802808
您还可以查看答案在这里如果你想要一些更以终端为中心并且只需要查看顺序的东西。例如,这个 awk 命令也会为您提供条目和子条目:
awk -F\' '/(^|| )nuentry / {print $2}' /boot/grub/grub.cfg|cat -n|awk '{print $1-1,$1="",$0}'
我比 更喜欢这些选项grub-emu
,因为这似乎有一个关闭问题,而不必完全关闭终端,正如该答案的评论中提到的。另外,grub2-theme-preview 实际上会向您显示主题(尽管它确实需要更多依赖项设置),并且 awk 命令既快速又简单;如果您经常使用它,也许可以将其添加为别名,这样您就不必记住它。
答案3
grub-emu 对我来说工作得很好。grub-emu
如果卡住了,我只需使用以下命令来杀死它。
ps -a | grep grub-emu | cut -d' ' -f2 | xargs kill -9