regra udev para desconexão e hibernação / suspensão

1

Eu tenho um disco rígido externo que contém diferentes partições GPT. Um deles é uma partição LVM. Esta partição está contida em um grupo de volumes LVM (chamado "volga"), que por sua vez se divide em muitos volumes lógicos diferentes, um deles é "data" e é uma partição criptografada.

Sempre que eu conecto esse disco rígido externo, gostaria que meu sistema operacional:

  1. ativar o volume lógico "data"
  2. use o cryptsetup para criar um nó de dados não criptografados em /dev/mapper/data usando um arquivo de chaves armazenado em /somewhere/keyfile
  3. monte /dev/mapper/data em /mnt/data 4. ligar /mnt/data/Music em /home/qdii/Music (e outros diretórios)

Além disso, sempre que o dispositivo for desconectado, gostaria que meu sistema operacional limpasse tudo.

Até agora, tenho dois scripts. O primeiro abre e mapeia o dispositivo:

#!/bin/bash
sleep 5
vgchange -aly volga
cryptsetup luksOpen -d /somewhere/keyfile /dev/mapper/volga-data data
mount /dev/mapper/data /mnt/data
for i in Music Videos Ebooks Iso Vbox Games Vrac
do 
    mount --bind /mnt/data/$i /home/qdii/$i
done

O segundo fecha e desmarca o dispositivo:

#!/bin/bash
umount -l /run/media/qdii/zero
umount -l /home/qdii/{Videos,Ebooks,Iso,Music,Vbox,Games,Vrac}
umount -l /mnt/data
sleep 2
cryptsetup luksClose /dev/mapper/data
lvchange -aln volga/data

Para automatizar a execução do primeiro script, escrevi uma regra do udev simples:

SUBSYSTEMS=="usb", ATTRS{serial}=="20120530280019", KERNEL=="sd?2", NAME="%k", SYMLINK+="thomson", GROUP="usb", RUN="/bin/bash /somewhere/open.sh"

Funciona maravilha, mas não sei como escrever a segunda regra do udev, chamar o segundo script após a desconexão (ou quando o computador vai para o modo de hibernação / suspensão).

    
por qdii 15.04.2013 / 20:05

0 respostas