MD + LUKS + LVM 无法正常关闭

MD + LUKS + LVM 无法正常关闭

我目前的设置是每个 md 分区上的 raid1 + luks,顶部有 lvm,用于在阵列之间进行条带化。目前只有一个卷组和一个逻辑卷。

sdc                             8:32   0   1.8T  0 disk
└─sdc1                          8:33   0   1.8T  0 part
  └─md127                       9:127  0   1.8T  0 raid1
    └─data-crypt0 (dm-3)      252:3    0   1.8T  0 crypt
      └─data_raid-data (dm-5) 252:5    0   2.7T  0 lvm   /mnt/data
sdd                             8:48   0 931.5G  0 disk
└─sdd1                          8:49   0 931.5G  0 part
  └─md126                       9:126  0 931.4G  0 raid1
    └─data-crypt1 (dm-4)      252:4    0 931.4G  0 crypt
      └─data_raid-data (dm-5) 252:5    0   2.7T  0 lvm   /mnt/data

我可以通过以下方式启动设备

cryptsetup luksOpen /dev/md/data:0 data-crypt0     # decrypt
cryptsetup luksOpen /dev/md/data:1 data-crypt1     # decrypt
vgchange -ay /dev/data_raid                        # turn on lvm
mount /dev/data_raid/data /mnt/data                # mount

不幸的是,我无法朝相反的方向关闭它。

umount /mnt/data            # ok
vgchange -an /dev/data_raid # ok
cryptsetup luksClose data-crypt0 # fail

由于某种原因,我多次看到以下情况,但设备并未关闭。

device-mapper: remove ioctl on data-crypt0 failed: Device or resource busy

这是在重启后,我所做的只是我所展示的命令,而从未使用过分区上的任何数据。如果有人对设置或如何关闭它有任何建议,我希望得到一些建议。

答案1

我在安装 Ubuntu 13.04 时遇到了类似的问题。由于某种原因(可能是错误),vgchange -a n不会删除设备映射。因此,LVM 物理卷(即 LUKS 容器)仍被视为正在使用中,并且无法进行 luksClose。

使用 检查您是否有同样的问题dmsetup ls。如果它列出了您的任何 data_raid 逻辑卷,并且它们在 之后仍然存在vgchange -a n,您可以使用 删除它们dmsetup remove NAME

一旦删除了所有设备映射,您就应该能够 luksClose。

相关内容