大多数发行版在UEFI系统上安装了额外的引导加载程序。UEFI本身是一个引导程序,它提供菜单来选择不同的操作系统或单个内核。此外,UEFI设置可以使用诸如的用户空间工具轻松更改efibootmgr
。
从3.3开始,内核支持EFI_STUB,这意味着可以直接从UEFI加载内核。发行版本决定使用其他引导加载程序的原因是什么?关于Linux / UEFI的大多数教程主要关注如何设置附加的引导加载程序(rEFInd,grub2,ELILO等),而不是使用EFI_STUB引导Linux。
发行版中唯一缺少的是支持。由于大多数发行版都链接了第二个引导加载程序,因此不会将内核添加到UEFI引导菜单,也不会将其复制到EFI系统分区。
三个脚本足以完成所有任务。将initramfs复制到ESP的一种。第二个将内核复制到ESP,并在UEFI引导菜单中创建一个新条目。第三个脚本从ESP中删除了旧内核和initramfs,并删除了UEFI引导菜单项。这允许完全自动化的内核/ initramfs更新/清除,而无需用户交互。我使用这种方法已经有一年多了,而且效果一直很好。
为什么大多数发行版都使用grub而不是EFI_STUB?
链接:
编辑:我并不是在说完全删除grub支持,而是为出于各种原因想要使用它的人提供选择。发行版可以为grub-efi
想要链接UEFI和grub的用户提供一个程序包,以及一个efistub-boot
包含我上面提到的脚本的程序包。