我有一个三重启动系统,包括 ubuntu、debian 和 windows。 grub 和 grub 菜单是在安装 ubuntu 后安装的。有没有一种方法可以编辑订单条目和名称,而无需安装额外的应用程序(如 grub 定制器)?可以通过重命名 /etc/grub.d 中的脚本来重新排序条目,但也会重新排序“高级选项...”条目。我想将它们全部移至菜单底部。
更新后应该就存在了。
答案1
您关心的条目是由 /etc/grub.d/10_linux 脚本生成的(/boot/grub.cfg 中的注释显示了文件不同部分的生成位置)。不幸的是,该脚本不允许进行任何开箱即用的配置或自定义。
然后你唯一能做的就是手动编辑/etc/grub.d/10_linux。但一般来说,这似乎是一个坏主意,因为这是一个复杂的脚本,编辑脚本会破坏系统的轻松升级。
答案2
基本上,grub 菜单项是由各自的操作系统创建的。您可以使用类似的内容os-prober
或写入自定义脚本,但获得您想要的内容的最简单方法可能是将 GRUB 与另一个 GRUB 进行链式加载,该 GRUB 在其之前加载其自己的配置,其中包含以下内容grub.cfg
:
insmod part_gpt
insmod search_fs_uuid
insmod chain
menuentry "Debian" {
search --fs-uuid --no-floppy --set=root 1234-abcd
chainloader ($root)/EFI/debian/grubx64.efi
}
menuentry "Ubuntu" {
search --fs-uuid --no-floppy --set=root 1234-abcd
chainloader ($root)/EFI/ubuntu/grubx64.efi
}
menuentry "Windows" {
search --fs-uuid --no-floppy --set=root 1234-abcd
chainloader ($root)/EFI/MICROSOFT/BOOT/bootmgfw.efi
}
其中 set root 是每个引导加载程序的 ESP 的 UUID。他们可能都是一样的。
这也意味着每个引导加载程序都有自己的设置和主题以及高级条目等。