答案1
grub-install
期望找到/boot
,但不能,因为根据您的lsblk
,它位于/mnt/boot
...,因此您此时尚未 chroot 到新安装中。
但我同意 Sheldon 的观点:将 EFI 系统分区(简称 ESP)放在 Linux 加密分区中是行不通的。
UEFI 固件想要找到满足以下条件之一的可读 FAT 分区(最好是 FAT32,但较新的 UEFI 版本也接受其他形式的 FAT):
- 其 PARTUUID 与写入 UEFI 启动 NVRAM 变量的值匹配(在 Linux 中可使用 访问
efibootmgr
),并且该分区包含启动文件,其路径名在该 NVRAM 变量中指定(例如,\EFI\Arch\grubx64.efi
或者\EFI\Arch\shimx64.efi
如果使用安全启动兼容性填充程序) - 或者该分区包含一个文件,其路径名可以用 Windows 风格表示为
\EFI\BOOT\BOOTx64.efi
(= 可移动媒体/后备启动路径)
根据您当前的配置,固件将看到该sda1
分区,但由于其内容显然是随机的废话(因为已加密),因此固件根本无法继续启动。除非您的 UEFI 固件支持您计划使用的确切磁盘加密方案,否则 ESP 分区必须保持未加密状态:通常 UEFI 固件无法从加密的 ESP 分区启动。这在实践中不应该是一个主要问题,因为 ESP 应仅包含标准引导加载程序组件。如果安全启动有效,固件将检查启动加载程序加密签名的有效性。
如果 UEFI 固件实现允许您更改安全启动密钥,您可以将出厂默认密钥替换为您自己生成的密钥,然后系统将仅接受由你的钥匙。
ArchWiki 有此示例配置用于使用 UEFI 引导的全磁盘加密。
+---------------------+----------------------+----------------------+----------------------+----------------------+
| BIOS boot partition | EFI system partition | Logical volume 1 | Logical volume 2 | Logical volume 3 |
| | | | | |
| | /efi | / | [SWAP] | /home |
| | | | | |
| | | /dev/MyVolGroup/root | /dev/MyVolGroup/swap | /dev/MyVolGroup/home |
| /dev/sda1 | /dev/sda2 |----------------------+----------------------+----------------------+
| unencrypted | unencrypted | /dev/sda3 encrypted using LVM on LUKS1 |
+---------------------+----------------------+--------------------------------------------------------------------+
它还包括 BIOS 启动分区以实现最大兼容性,但如果您计划仅以 UEFI 本机样式启动,则可以省略 BIOS 启动分区以及与其相关的所有步骤。在此布局中,ESP 的安装方式与/efi
最终安装中的安装方式相同(/mnt/efi
如果屏幕截图中存在的话,ESP 也将处于这种情况),并且它/boot
不是一个单独的文件系统,而只是根文件系统中的一个普通目录。