regla udev para desconexión e hibernación/suspensión

regla udev para desconexión e hibernación/suspensión

Tengo un disco duro externo que contiene diferentes particiones GPT. Uno de ellos es una partición LVM. Esta partición está contenida en un grupo de volúmenes LVM (llamado "volga"), que a su vez se divide en muchos volúmenes lógicos diferentes, uno de ellos es "datos" y es una partición cifrada.

Cada vez que conecto este disco duro externo, me gustaría que mi sistema operativo:

  1. habilitar el volumen lógico "datos"
  2. use cryptsetup para crear un nodo de datos no cifrado /dev/mapper/datausando un archivo de clave almacenado en/somewhere/keyfile
  3. montar /dev/mapper/dataen /mnt/data  4. vincularse /mnt/data/Musica /home/qdii/Music(y otros directorios)

Además, cada vez que desconecto el dispositivo, me gustaría que mi sistema operativo borre todo.

Hasta ahora tengo 2 guiones. El primero abre y asigna el 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

El segundo cierra y desasigna el 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 la ejecución del primer script, escribí una regla udev simple:

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

Funciona de maravilla, pero no estoy seguro de cómo escribir la segunda regla udev, para llamar al segundo script al desconectarse (o cuando la computadora entra en hibernación/suspensión).

información relacionada