Grub 在 btrfs RAID1 上具有加密的 /boot 和 /?

Grub 在 btrfs RAID1 上具有加密的 /boot 和 /?

我正在尝试将 grub 设置为从/boot基于 BTRFS 的 RAID1 阵列上的加密启动。但是,我找不到强制 grub 解锁两个磁盘的方法。 GRUB 要求两次解锁密钥/boot,但我不知道之后如何要求它解锁两个密码设备。这里是启动过程:

解锁/dev/sda2: /dev/sda2 解锁/dev/sdb2: /dev/sdb2 grub 要求输入 /dev/sdb2 密码 grub 要求输入 /dev/sdb2 密码 由于找不到 /dev/mapper/root1 而失败 由于找不到 /dev/mapper/root1 而失败

配置文件的相关部分如下所示:

/etc/default/grub.cfg:

...
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda2:root1 cryptkey=rootfs:/cryptfile.bin cryptdevice=/dev/sdb2:root2 cryptkey=rootfs:/cryptfile.bin root=/dev/mapper/root1 rootfstype=btrfs rootflags=device/dev/mapper/root1,device=/dev/mapper/root2,defaults"
GRUB_ENABLE_CRYPTODISK=y
...

磁盘分区如下所示:

/sda
    /sda1 - SWAP
    /sda2 - dmcrypt
        /root1 - / (RAID1)
/sdb
    /sdb1 - SWAP
    /sdb2 - dmcrypt
        /root2 - / (RAID1)

有什么帮助吗?

答案1

来自 reddit 的工作建议:

  1. 找到加密启动挂钩(捆绑在 initramfs 中的那个)
  2. 复制它并从中创建 encrypt2。从中删除一些卫生线(例如清除一些文件或文件夹)
  3. 将 encrypt2 添加到您的钩子 (mkinitcpio.conf(5)),将 encrypt2_* 参数添加到您的内核命令行,重建 initramfs。
  4. 重启?

相关内容