
我的設定目前是每個 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
。
刪除所有設備映射後,您應該能夠關閉。