如何使用 dm-crypt 在加密的纠错 RAID 1 设备上安装 Ubuntu?

Pro*_*700 5 encryption partitioning raid cryptsetup system-installation

我想在具有dm-integrity和 LUKS2-encryption的两磁盘 RAID 1 上安装 Ubuntu 。

不幸的是,Ubiquity 和替代的 textmode-installer 都没有提供这样的解决方案。

虽然这看起来很容易手动完成,但我还无法安装系统。

两个驱动器的布局如下:

  1. /dev/sdX1 [ext2] 用作未加密 /boot
  2. /dev/sdX2[未格式化] 要在 LVM 中配置为加密/root&swap

我在实时系统上格式化了两个驱动器gparted,然后cryptsetup luksFormat --type luks2 --integrity hmac-sha256 /<device>/<partition>作为基础对其中一个驱动器执行,以便在稍后的手动安装程序中创建 RAID 设备、LVM 和文件系统。

但是,手动分区程序无法识别加密分区,我无法继续使用它们。

我怎样才能“打开”加密分区来为系统安装设置它们,而无需先重新格式化它们?

这种方法还有什么需要考虑的吗?Ubuntu 是否需要某些 LUKS 参数,或者是否建议为此目的使用某些东西?

我是否必须在安装后手动将设备添加到文件中才能在启动时正确解密?该--integrity选项是否自动使用?

这是最好的方法还是有另一种方法来实现这一目标?(不包括 Btrfs/ZFS 文件系统的使用)

小智 3

首先,如果稍后在扩展逻辑分区上使用 LVM,那么在扩展逻辑分区中创建加密卷可能会更安全。

\n\n

在打开安装程序之前,我尝试在 Ubuntu 20.04 中使用 dm-integrity 格式化分区,虽然 cryptsetup 能够打开它,但我无法在其上创建卷组或文件系统,因为mkfs.ext4会失败并pvcreate导致:

\n\n
Error reading device /dev/mapper/sda5_crypt at 0 length 512.\nError reading device /dev/mapper/sda5_crypt at 0 length 4096.\nDevice /dev/mapper/sda5_crypt excluded by a filter.\n
Run Code Online (Sandbox Code Playgroud)\n\n

安装程序也不知道如何处理分区,并且不允许我在其上创建任何分区。

\n\n

我没有在 RAID 设备上尝试过此操作,但我怀疑这会让它变得更好。我还注意到 dm-integrity 创建了两个 crypt 设备,如下所示lsblk

\n\n
\xe2\x94\x94\xe2\x94\x80sda5               8:6    0 237.3G  0 part  \n  \xe2\x94\x94\xe2\x94\x80sda5_crypt_dif 253:0    0 223.2G  0 crypt \n    \xe2\x94\x94\xe2\x94\x80sda5_crypt   253:1    0 223.2G  0 crypt\n
Run Code Online (Sandbox Code Playgroud)\n\n

文件系统创建在常规 luks 设备上运行良好,没有完整性,所以我认为这可能是问题所在。

\n\n

当尝试在虚拟控制台上打开 dm-integrity 设备时,即使在加载所有 dm-crypt 模块之后,我也收到错误:

\n\n
\n

内核不支持 dm 完整性映射。

\n
\n\n

我在线搜索错误并发现此博客条目,它处理非常相似的问题:https://kenta.blogspot.com/2019/07/ttvdpsoo-installing-ubuntu-with-luks2.html

\n\n

作者建议:

\n\n
    \n
  1. 安装加密到常规安装程序可以做到的程度。
  2. \n
  3. 重新启动至 Live CD。
  4. \n
  5. 基本上,创建整个加密系统分区的映像
  6. \n
  7. 使用完整性选项重新格式化加密分区
  8. \n
  9. 将系统映像推送到新分区并更新 crypttab、initramfs
  10. \n
\n\n

我还没有尝试过这个,也无法评论这是否有效,但我可以看到实时系统在尝试格式化新分区时会在步骤 4 中遇到相同的错误,因此它必须是USB 上的系统可以以某种方式正确格式化它们。

\n\n

作者在最后还提到:

\n\n
\n

不幸的是,这些说明不适用于 Debian Buster (RC2)(也可能是 Ubuntu 的更高版本),因为最近对 cryptsetup 进行了更改,特别是 /usr/share/initramfs/hooks/cryptroot 。第一个错误(“源不匹配”)发生在 print_crypttab_entry 中,其中 dmsetup info -c -o devnos_used 在处理 dm_integrity 设备时返回不同的主设备号。

\n
\n\n

不幸的是,目前这似乎是不可能的,除非人们能够以某种方式复制并重新格式化整个系统而不会出现任何进一步的问题。如果我犯了错误或者还有其他选择,请随时纠正我。

\n