检测加密安装的设备

检测加密安装的设备

我在 OpenSUSE 12.2 系统上有一个外部 eSATA 硬盘。外部硬盘在 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 或加密设备中推断出它吗?

答案1

是的,您可以在 中找到信息/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

答案2

有很多可能性:

:> # 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尽管一直很高兴地使用它,但显然并没有真正关注太久。

相关内容