Правило udev для отключения и гибернации / приостановки
У меня есть внешний жесткий диск, который содержит различные разделы GPT. Одним из них является раздел LVM. Этот раздел содержится в группе томов LVM (называемой "volga"), которая, в свою очередь, разделяется на множество различных логических томов, один из которых - "data" и является зашифрованным разделом.
Всякий раз, когда я подключаю этот внешний жесткий диск, я хотел бы, чтобы моя ОС:
- включить логический том "данные"
- использовать cryptsetup для создания незашифрованного узла данных в
/dev/mapper/data
используя файл ключа, хранящийся в/somewhere/keyfile
- крепление
/dev/mapper/data
в/mnt/data
4. связать/mnt/data/Music
в/home/qdii/Music
(и другие каталоги)
Кроме того, всякий раз, когда устройство отключено, я бы хотел, чтобы моя ОС все очистила.
Пока у меня есть 2 сценария. Первый открывается и сопоставляет устройство:
#!/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
Второй закрывает и размечает устройство:
#!/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
Чтобы автоматизировать выполнение первого скрипта, я написал простое правило udev:
SUBSYSTEMS=="usb", ATTRS{serial}=="20120530280019", KERNEL=="sd?2", NAME="%k", SYMLINK+="thomson", GROUP="usb", RUN="/bin/bash /somewhere/open.sh"
Это работает удивительно, но я не уверен, как написать второе правило udev, чтобы вызвать второй скрипт при отключении (или когда компьютер переходит в режим гибернации / приостановки).