当我安装 Linux 时,我的根 LUKS 设备的块设备路径是/dev/md125
,未加密的分区是/dev/mapper/md125_crypt
。我已将 MD 设备重命名为/dev/md0
,现在我想将 LUKS 分区重命名为/dev/mapper/md0_crypt
。这是我到目前为止所做的:
- 替换了所有引用(在各个*选项卡中)
md125_crypt
- 更新了我的 initramfs
- 更新了grub2
然而,当我重新启动时,我的系统并没有要求我提供解密密码;它说的是“无法找到根分区”。
我还尝试添加符号链接(/dev/mapper/md125_crypt -> ./md0_crypt
),但重新启动后它似乎不会持续存在。
如何重命名未加密的 LUKS 分区,以便在执行此操作后可以成功启动?
答案1
更新您的 时initramfs
,根分区是从正在运行的系统中检测到的,而不是从您的新/重命名的配置值中检测到的。相反,请使用 live CD 并chroot
设置新名称。
- 启动到另一个/类似的系统(live/rescue cd)。
- 指示
cryptsetup open /dev/md0 md0_crypt
新的根名称md0_crypt
。 - Mount
/dev/mapper/md0_crypt
,其中分区为/boot
,挂载--bind
为/dev
/proc
/sys
内部。 - 尽
chroot
成装入md0_crypt
。- 编辑
/etc/crypttab
并/etc/fstab
使用新的根名称。 - 更新 initramfs 和 grub 的内核参数。
- 关闭之前仔细检查所有内容
chroot
- 编辑
- 重新启动进入主系统。
在 Ubuntu 22.04 上测试了上述步骤,但是使用重新寻找(如果是 grub,则改为);在这种情况下,还要编辑refind_linux.conf
以在内核参数中设置新的根名称。
暂时更改dmsetup rename md125_crypt md0_crypt
名称/dev/mapper
似乎也是一个可行的选择。update-initramfs
但它不会影响根分区检测chroot
。