ubuntu - GRUB 的多个 EFI 可执行文件的引导行为
问题描述
安装Ubuntu后, EFI系统分区的/efi/UBUNTU/里面有几个*.efi文件:
- GRUBX64.EFI
- MOKMANAG.EFI
- SHIMX64.EFI
- mmx64.efi
- fwupx64.efi
但是UEFI 规范 2.7在“ 13.3.1.3 目录结构”部分中说:
每个供应商子目录中的每个支持的处理器架构也必须只有一个可执行的 EFI 映像。这保证了 EFI 引导管理器只能从供应商子目录加载一个映像。如果存在多个可执行 EFI 映像,则系统的引导行为将不是确定性的。
我会明确 GRUB 的 5 个 EFI 可执行文件的引导行为。
解决方案
UEFI 固件通常会在/boot/efi/EFI/BOOT/
文件夹中查找相应的 EFI 可执行文件。它查找的可执行文件的名称取决于系统的体系结构。对于 x86_64 架构,该文件为BOOTX64.EFI
该文件实际上是文件夹中的一个 EFI 可执行文件的副本/boot/efi/EFI/ubuntu/
。在我的情况下/boot/efi/EFI/BOOT/BOOTX64.EFI
是/boot/efi/EFI/ubuntu/shimx64.efi
.
请参阅UEFI 引导:那它实际上是如何工作的?和EFI 系统分区和默认引导行为以获得更详细的说明。
要了解为什么在 中存在所有这些其他 EFI 可执行文件/boot/efi/EFI/ubuntu/
,请参阅ubuntu wiki 上的SecureBoot 。
推荐阅读
- gitlab-ci - 如何在 gitlab-ci 上获得 unittest 测试结果?
- python - 如何从最后一维的单列中获取多维 numpy 数组中的行?
- asp.net-mvc - 使用部分视图和 ajax 调用呈现引导模式使所有字段不可编辑(事件模式本身)
- android-volley - Volley 错误:POST 方法中空 requestObject 上的 ParseError
- flutter - 颤动圆角矩形边框,每边具有不同的颜色
- php - 是否可以覆盖 Wordpress 中网站标题的回显功能?
- split - H2o Flow UI:Split Frame 如何适用于多类数据集?
- elixir - 在创建新的 Mix 项目期间,“主模块”的目的是什么?
- python - 如何将一个矩形分成 4 个部分?
- vb.net - 如何计算 vb.net 中使用或未使用的函数和方法?