我目前的设置是每个 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。