我正在尝试从 USB 启动 64 位机器,其中 EFI 仅兼容 32 位,这是一个联想Ideapad 100S。
当我在完整的 32 位 USB 加密狗(从.iso
)上启动时,它可以工作。但在 64 位中进行相同的修订后,情况却并非如此。
为了解决这个问题,我遵循建议修改 64 位 USB 密钥并在目录中添加 32 位 EFI 文件的教程/efi/boot
。
它在 2018 年的 Debian 上不起作用。
现在的 Debian 安装 USB 加密狗包含许多称为 EFI 的东西。
/boot/grub/efi.img
/boot/grub/
/boot/grub/x86_64-efi <-- a dir with many driver modules
/efi/boot/bootx64.efi <-- the original file
/efi/boot/bootia32.efi <-- the file added thanks to tutorials
所以我真的错过了一些东西,或者启动磁盘已经改变,我必须修改更多。
那么您知道 EFI 加载顺序涉及哪些文件吗?
答案1
/efi/boot/boot<architecture>.efi
根据 UEFI 规范,从可移动媒体启动时,这是 UEFI 固件应查找的文件。
但是,Debian 打包的 GRUB 引导加载程序可能还需要相应的 GRUB 模块目录及其内容:对于 32 位 GRUB,它将是/boot/grub/i386-efi/
.我认为 Ubuntu 和 Fedora 配置它们的 GRUB 版本略有不同,并且它们的 GRUB 配置将更多 GRUB 模块打包到主 GRUB .efi 二进制文件中。
这些模块位于grub-efi-ia32-bin
软件包中,在正常运行的操作系统安装中,它们最初位于 下/usr/lib/grub/<module directory>
,引导加载程序安装过程会将它们从那里复制到最终位置/boot/grub/<module directory>
.
我认为它/boot/grub/efi.img
包含 ISO-9660 标准的“El Torito”扩展所需的 CD-ROM 启动映像,但从 FAT32 格式的 USB 加密狗启动时实际上并未使用它。