Linux

檢測加密掛載的設備

  • June 2, 2013

我在 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太久。

引用自:https://unix.stackexchange.com/questions/77987