如何更改作为根文件系统安装的未加密 LUKS 分区的名称?

如何更改作为根文件系统安装的未加密 LUKS 分区的名称?

当我安装 Linux 时,我的根 LUKS 设备的块设备路径是/dev/md125,未加密的分区是/dev/mapper/md125_crypt。我已将 MD 设备重命名为/dev/md0,现在我想将 LUKS 分区重命名为/dev/mapper/md0_crypt。这是我到目前为止所做的:

  1. 替换了所有引用(在各个*选项卡中)md125_crypt
  2. 更新了我的 initramfs
  3. 更新了grub2

然而,当我重新启动时,我的系统并没有要求我提供解密密码;它说的是“无法找到根分区”。

我还尝试添加符号链接(/dev/mapper/md125_crypt -> ./md0_crypt),但重新启动后它似乎不会持续存在。

如何重命名未加密的 LUKS 分区,以便在执行此操作后可以成功启动?

答案1

更新您的 时initramfs,根分区是从正在运行的系统中检测到的,而不是从您的新/重命名的配置值中检测到的。相反,请使用 live CD 并chroot设置新名称。

  1. 启动到另一个/类似的系统(live/rescue cd)。
  2. 指示cryptsetup open /dev/md0 md0_crypt新的根名称md0_crypt
  3. Mount /dev/mapper/md0_crypt,其中分区为/boot,挂载--bind/dev /proc /sys内部。
  4. chroot成装入md0_crypt
    1. 编辑/etc/crypttab/etc/fstab使用新的根名称。
    2. 更新 initramfs 和 grub 的内核参数。
    3. 关闭之前仔细检查所有内容chroot
  5. 重新启动进入主系统。

在 Ubuntu 22.04 上测试了上述步骤,但是使用(如果是 grub,则改为);在这种情况下,还要编辑refind_linux.conf以在内核参数中设置新的根名称。


暂时更改dmsetup rename md125_crypt md0_crypt名称/dev/mapper似乎也是一个可行的选择。update-initramfs但它不会影响根分区检测chroot

相关内容