Mar*_*rco 37 boot boot-loader grub2 uefi
大多数发行版会在 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
包含我上面提到的脚本的包。
msw*_*msw 10
鉴于 UEFI 仅在 2005 年定义,存在大量不支持该规范的传统设备。要将 UEFI 添加到标准发行版中,需要测试两个代码路径而不是一个,而且启动代码不仅是出了名的挑剔,而且是要测试的最烦人的耗时代码之一。
归档时间: |
|
查看次数: |
8167 次 |
最近记录: |