Linux
檢測加密掛載的設備
我在 OpenSUSE 12.2 系統上有一個外部 eSATA-hdd。外部硬碟在 dm-crypt 分區上有一個 LVM。
我通過給它加電然後做來安裝它
rescan-scsi-bus.sh cryptsetup -v luksOpen vgchange -ay mount
現在,當我想關閉硬碟電源時,我會
umount vgchange -an extern-1 cryptsetup -v remove /dev/mapper/extern-1-crypt echo 1 >/sys/block/sdf/device/delete
此處設備 (
sdf
) 目前在腳本中進行了硬編碼。我可以以某種方式從 VG 或加密設備的腳本中推斷出它嗎?
是的,您可以在 中找到資訊
/sys/block/$DEVICE/slaves
。如果您只有規範名稱,您可以使用它readlink
來獲取詳細資訊,例如:devdm="$(readlink -f /dev/mapper/extern-1-crypt)" dm="${devdm#/dev/}" ls /sys/block/$dm/slaves/
如果要刪除所有內容,則可以直接使用
sys
文件系統:echo 1 > /sys/block/$dm/slaves/*/../device/delete
有很多可能性:
:> # 1 :> pvscan :> # 2 :> vgscan -v extern-1 :> # 3 :> dmsetup table /dev/mapper/extern-1-crypt :> # 4 :> cd /sys/devices/virtual/block/ :> for dmdev in dm-*; do :> if [ xyz = $(< "${dmdev}/dm/name") ]; then :> ls -l "${dmsev}/slaves/" :> fi :> done
或從 中獲取“dm-”數字
dmsetup ls
。編輯1:
好吧,似乎除了簡單的可能性之外,所有的可能性都是如此。看了烏爾里希的回答後我自己也笑了……雖然一直很開心地使用它,但顯然沒有真正看
/dev/mapper
太久。