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

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

我想在双磁盘 RAID 1 上安装 Ubuntu,dm-完整性和 LUKS2 加密。

不幸的是,Ubiquity 和替代的文本模式安装程序都没有提供这样的解决方案。

尽管手动操作似乎很简单,但我还无法安装系统。

两个驱动器的布局如下:

  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 文件系统)

答案1

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

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

Error reading device /dev/mapper/sda5_crypt at 0 length 512.
Error reading device /dev/mapper/sda5_crypt at 0 length 4096.
Device /dev/mapper/sda5_crypt excluded by a filter.

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

我没有在 RAID 设备上尝试过,但我怀疑这不会使情况变得更好。我还注意到 dm-integrity 创建了两个加密设备,如下所示lsblk

└─sda5               8:6    0 237.3G  0 part  
  └─sda5_crypt_dif 253:0    0 223.2G  0 crypt 
    └─sda5_crypt   253:1    0 223.2G  0 crypt

文件系统创建在没有完整性的常规 luks 设备上工作正常,所以我认为这可能是问题所在。

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

内核不支持 dm-integrity 映射。

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

作者建议:

  1. 安装加密,以便常规安装程序可以完成此操作。
  2. 重新启动进入实时 CD。
  3. 基本上,创建整个加密系统分区的映像
  4. 使用完整性选项重新格式化加密分区
  5. 将系统映像推送到新分区并更新 crypttab、initramfs

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

作者在最后还提到:

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

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

相关内容