Detectando o dispositivo de uma montagem criptografada

2

Eu tenho um eSATA-hdd externo em um sistema OpenSUSE 12.2. O disco rígido externo tem um LVM em uma partição dm-crypt.

Eu o monto, ligando e fazendo

rescan-scsi-bus.sh
cryptsetup -v luksOpen
vgchange -ay
mount

Agora, quando quero desligar o disco rígido, faço

 umount
 vgchange -an extern-1
 cryptsetup -v remove /dev/mapper/extern-1-crypt
 echo 1 >/sys/block/sdf/device/delete

Aqui, o dispositivo ( sdf ) está atualmente codificado no script. Posso de alguma forma deduzi-lo no script do VG ou do dispositivo de criptografia?

    
por Martin Schröder 02.06.2013 / 23:05

2 respostas

3

Sim, você pode encontrar as informações em /sys/block/$DEVICE/slaves . Se você tiver apenas o nome canônico, use readlink para obter os detalhes, por exemplo:

devdm="$(readlink -f /dev/mapper/extern-1-crypt)"
dm="${devdm#/dev/}"
ls /sys/block/$dm/slaves/

Se você quiser remover tudo, basta utilizar diretamente o sistema de arquivos sys :

echo 1 > /sys/block/$dm/slaves/*/../device/delete
    
por 02.06.2013 / 23:24
2

Existem muitas possibilidades:

:> # 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

Ou pegue o número "dm-" em dmsetup ls .

edit 1:

OK, parece que tem sido todas as possibilidades, exceto a fácil. Depois de olhar para a resposta de Ulrich, eu mesmo tenho que rir ... Obviamente, não olhei muito para /dev/mapper por muito tempo, apesar de usá-lo alegremente o tempo todo.

    
por 02.06.2013 / 23:24