LVM 上的 LUKS:lvresize 不起作用 - 错误:“无法使用...找到活动的 LUKS dm-crypt 设备”

LVM 上的 LUKS:lvresize 不起作用 - 错误:“无法使用...找到活动的 LUKS dm-crypt 设备”

我有一个 LUKs-on-LVM 设置。我正在尝试lvresize,这样我就可以删除 pv。但是,我不断收到错误:

使用 my_vg/luks_lv 无法找到活动的 LUKS dm-crypt 设备。


更多信息:

我的设置:

我的_vg:6TB

  • luks_lv:6TB(6TB ext4)
    • 小_pv1:3TB
    • 小_pv2:3TB

我添加了一个新的大驱动器。

我的_vg:12TB

  • luks_lv:12 TB(12 TB ext4)
    • 小_pv1:3 TB
    • 小_pv2:3 TB
    • big_pv3:6 TB

我想将所有范围从small_pv1 移动到其他pv。然后从vg中删除small_pv1。因此,首先我用 .ext4 缩小了 ext4 文件系统resize2fs

我的_vg:12TB

  • luks_lv:12 TB(8 TB ext4)
    • 小_pv1:3 TB
    • 小_pv2:3 TB
    • big_pv3:6 TB

我打算在删除pv后,扩展lv和文件系统以占用整个vg。

我认为我需要使用 调整 luks_lv LUKS 分区的大小cryptsetup resize。这似乎并没有起到任何作用。然后我看到这个帖子,这表示这是不必要的,因为我会cryptsetup luksClose在执行之前使用lvresize.

所以我尝试了lvresize --size 8500G /dev/my_vg/luks_lv。但是,我收到了这个错误:

使用 my_vg/luks_lv 无法找到活动的 LUKS dm-crypt 设备。

cryptsetup status /dev/my_vg/luks_lv返回:

/dev/my_vg/luks_lv 处于活动状态。

我仍然可以解密并挂载 luks_lv。文件系统已按预期调整大小,但 lv 仍然跨越整个 vg。

再次强调,我的最终目标是:

我的_vg:9TB

  • luks_lv:9 TB(9TB ext4*)
    • 小_pv2:3 TB
    • big_pv3:6 TB

*我知道我无法获得确切的 9TB,因为 LUKS 需要一些空间。

这是怎么回事?我该如何解决这个问题?谢谢。


编辑:添加@telcoM 请求的信息

lsblk返回:

姓名 少:最小 R M 尺寸 反渗透 类型 挂载点
SDDC 8:32 0 2.7T 0 磁盘
- my_vg-luks_lv 254:1 0 10.9吨 0 左室厚度
SDD 8:48 0 5.5T 0 磁盘
- my_vg-luks_lv 254:1 0 10.9吨 0 左室厚度
斯德 8:64 0 2.7T 0 磁盘
- my_vg-luks_lv 254:1 0 10.9吨 0 左室厚度

*为了简单起见,我在最初的问题中使用了整数。

编辑2:

我正在运行 Arch Linux:cryptsetup 2.6.1-3、linux 6.5.4.arch-1、lvm2 2.03.22-2。

答案1

所以我尝试了lvresize --size 8500G /dev/my_vg/luks_lv。但是,我收到了这个错误:

Cannot find active LUKS dm-crypt device using my_vg/luks_lv.

这似乎难以置信——LVM 工具甚至不应该寻找 dm-crypt 设备。是实际的命令吗cryptsetup resize --size 8500G /dev/my_vg/luks_lv


cryptsetup resize需要加密映射的名称(即您用来挂载加密文件系统的名称),而不是底层设备的名称(在本例中为 LV)。

cryptsetup status这与可以接受其中任何一个不同。

换句话说,如果你正在做类似的事情:

cryptsetup open /dev/my_vg/luks_lv my_crypt --type luks
mount /dev/mapper/my_crypt /where/ever

然后cryptsetup resize会想要类似的东西:

cryptsetup resize --device-size 8300G my_crypt
lvresize --size 8500G /dev/my_vg/luks_lv

如果仍然有问题,请显示 的输出以及或lvdisplay -m my_vg/luks_lv的相关行。dmsetup ls --tree -o blkdevnamelsblk

相关内容