我正在尝试从 USB 启动一台 64 位机器,其中 EFI 仅兼容 32 位,即Lenovo Ideapad 100S。
当我在完整的 32 位 USB 加密狗(从 a 获得.iso
)上启动时,它可以工作。但是对于 64 位的相同版本,它不会。
为了解决这个问题,我正在遵循建议修改 64 位 USB 密钥并在/efi/boot
目录中添加 32 位 EFI 文件的教程。
它在 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 加载序列中涉及哪些文件吗?
根据 UEFI 规范,从可移动媒体启动时,
/efi/boot/boot<architecture>.efi
是 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 加密狗启动时实际上并未使用它。