到目前为止我已采取的步骤:

到目前为止我已采取的步骤:

我一直在尝试在运行 Kali Linux 2022.3 的 HP EliteBook 850 G8 上使用 TPM2 进行 LUKS 磁盘加密。但是,我正在努力将 TPM2 磁盘解密添加到 Initramfs 中。

到目前为止我已采取的步骤:

  • 确保 TPM2 已启用并且可供操作系统访问
  • 使用以下命令将 TPM 作为密钥库 1 添加到已加密的硬盘驱动器中systemd-cryptenroll --tpm2-device=auto /dev/nvme0n1p3
  • 通过运行验证 LUKS 设置是否正确cryptsetup luksDump /dev/nvme0n1p3

失败的原因:

按照上面列出的步骤,我尝试修改/etc/crypttab以允许在启动期间解锁我的 LUKS2 加密磁盘,类似于 Bitlocker 的工作方式。因此,我将文件更改crypttab为以下内容:

nvme0n1p3_crypt UUID=<Redacted> none luks,discard,tpm2-device=auto

然后尝试使用 重建 initramfs update-initramfs -u -k all,这给了我以下错误:

└─# sudo update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-5.18.0-kali5-amd64
cryptsetup: WARNING: nvme0n1p3_crypt: ignoring unknown option 'tpm2-device'

让我困惑的是,我认为这个选项应该存在于 248 及更高版本的 systemd 中。尽管有 v251,但它无法识别此选项。

谁能解释一下这里发生的事情吗?这是基于 Debian 的系统特有的东西还是我遗漏了一些东西?非常感谢任何帮助或提示。

系统环境:

操作系统版本:

└─# lsb_release -a
No LSB modules are available.
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2022.3
Codename:       kali-rolling

系统版本:

└─# systemd --version
systemd 251 (251.3-1)
+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified

答案1

您可以切换到dracut,它或多或少开箱即用地支持此配置。

但有一些注意事项,如果您使其无法启动,请准备好从恢复 shell 修复您的设置。就我而言,dracut 是hostonly="yes"必需的,因此它将包含/etc/crypttab在 initrd 映像中。

或者,还有tpm2-initramfs-tool.它做同样的事情,尽管它可能与 不兼容systemd-cryptenroll,而且似乎配置起来更困难。

相关内容