是否可以在启动时解锁多个 LUKS 设备以形成 LVM?

是否可以在启动时解锁多个 LUKS 设备以形成 LVM?

我有以下设置:一个 LUKS 加密 SSD,其上使用 LVM 形成典型的 Linux 分区(/、/home/ 等)。此设置在启动时通过密码解锁。我正在使用 Debian Jessie。

由于空间不足,我想向 LVM 添加另一个 PV,当然应该在启动时对其进行 LUKS 加密和解密 - 使用从第一个 PV 派生的密钥或使用与第一个 PV 相同的密码。

这意味着LVM(包括/、/home/等)跨越两个LUKS加密的SSD(当然每个SSD包含一个实际加密的分区,而不是SSD本身,但我认为这是显而易见的。)。

由于 Systemd 已经集成,似乎不可能在启动时解锁这种设置 - 所有找到的指令都派生密钥(或其他),而 Systemd 无法再执行这些操作,因为密钥派生脚本在启动时不再执行(或指令)只是失败)。

有人知道这是否以及如何实际工作吗?

否则我必须更改我的设置以拥有一个单独的根分区(在 LVM 之外),以便可以在启动后安装其余部分,或者在 lvm 内拥有 luks。但这都是我最后想选择的选项。

谢谢!

答案1

方法一 我发现,由于 Systemd 是在 *buntu 桌面中实现的,因此它将解锁所有附加的 LUKS 分区如果

  1. 您要解锁的所有分区都使用相同的密码
  2. 第一次输入正确的根分区密码。如果输入错误,则需要为每个其他 LUKS 分区重新输入

这在 Ubuntu Server 16.04 中对我不起作用

方法二 使用 gnome-disk-utility (GUI) 应用程序...

  1. 选择加密的LUKS分区
    1. 单击齿轮按钮(其他分区选项)
    2. 编辑加密选项
    3. 禁用自动加密选项
    4. 启用启动时解锁
    5. (可选)更改名称。这将在 /dev/mapper/ 下标记未锁定的分区
    6. 输入密码。该实用程序将为您以这种方式设置的每个分区在 /etc/luks-keys/ 中创建一个密钥文件
    7. (可选)手动或使用磁盘实用程序将未锁定的分区添加到 fstab
    8. update-initramfs(不确定是否需要)
    9. 更新grub

方法三使用 keyutils。

我没有测试过这个。从https://www.redpill-linpro.com/techblog/2016/08/12/btrfs-and-encryption.html

  1. 对两个加密卷使用相同的密码。
  2. 启动到新安装的系统:
  3. ~# apt-get install keyutils 并将 keyscript=decrypt_keyctl 选项添加到 /etc/crypttab 中列出的两个加密卷中。
  4. 然后发出: ~# update-initramfs -u -k all 更新您的 initramfs 以包含 keyutils。
  5. 然后重新启动并检查输入的密码是否已缓存并用于解锁两个加密卷。

相关内容