我正在寻找如何在启动时自动解锁加密的 ZFS 根分区(无需密码)的指导。这适用于无头服务器,需要能够在没有人工输入的情况下重新启动。驱动器已加密,以防发生故障并需要返回 OEM。
理想情况下,我计划使用 TPM 来存储/检索密码,但如果我能找到如何在启动时对密码进行硬编码,这将是一个好的开始(TPM 将是一个加分项,也是我最终尝试实现的目标)。
我使用以下设置安装了 Ubuntu 22.04:
ZFS + 加密:
这将使用本机加密来加密 rpool/root 卷,并将 system.key 文件存储在启动时通过 cryptsetup 打开的 LUKS 卷中。
root@zfs_encrypt:~# sudo blkid --match-token TYPE=crypto_LUKS -o device
/dev/zd0
看起来 处有一个 LUKS 设备/dev/zd0
。它映射到以下内容:
/dev/mapper/keystore-rpool: LABEL="keystore-rpool" UUID="6866fb91-cd4d-47a4-b560-87f869c8cfff" BLOCK_SIZE="4096" TYPE="ext4"
我不确定如何在启动时提供密码。Crypttab 是空的,/etc/fstab
仅包含 EFI 的挂载。
如果您有任何资源可以帮助概述使用此配置自动执行启动/cryptsetup 过程的后续步骤,请告诉我。