![EFI 混合模式下启动 GRUB 时的 LUKS 指令集](https://linux22.com/image/201828/EFI%20%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%E4%B8%8B%E5%90%AF%E5%8A%A8%20GRUB%20%E6%97%B6%E7%9A%84%20LUKS%20%E6%8C%87%E4%BB%A4%E9%9B%86.png)
有一些 amd64 计算机只支持从x86 中的 UEFI(32 位)模式,但允许加载 amd64 操作系统。在 GNU/Linux 上,这通常是通过--target=i386-efi
在安装 GRUB 引导加载程序时发出命令来实现的。
如今GRUB(v2.06) 允许从LUKS加密 /boot
分区(即使是在一个左心室容量) 并GRUB_ENABLE_CRYPTODISK=y
加载密钥和相应的 LUKS 或 LUKS2 模块。
如果我们用这个启动系统32位EFI设置后,LUKS 是否会使用完整的解密分区内容64位指令集(和AES-NI适用时)还是会坚持32位操作系统运行时的指令?
答案1
GRUB 将以 32 位模式读取加密分区,即不使用加速指令,但随后它将传递分区并将执行传递给 Linux 内核,Linux 内核将使用 x86-64 例程在 64 位模式下工作,因此它将利用所有可用的东西。
答案2
在 Linux 上,LUKS 将使用完整的 x64 指令集
和在 GRUB 上它只会使用 32 位指令为,与 OpenBSD 不同,其中引导加载程序的驱动器加密驱动程序GRUB 一直在幕后运行加密盘和卢克斯是两个完全不同的运行的实现分别地在不同的启动阶段和根本不分享任何信息与彼此。
据该书的一位作者称这个线程来自 GRUB 开发者邮件列表
a) 由于许多加速指令不可用,GRUB 中的加密性能比内核中低得多。因此,请准备好花费大量时间进行密钥恢复或减少密钥强化。
b) 您需要输入密码两次。一次用于 GRUB,一次用于操作系统。