暗号化方式でインストールされたデバイスの検出

暗号化方式でインストールされたデバイスの検出

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

ここのdevice()は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:

まあ、単純な可能性を除いてすべてがあるようです。 Ulrichの回答を読んだ後、私は笑った。/dev/mapperたとえ幸せになってきましたが、明らかに長い間それに注意を払っていませんでした。

関連情報