
Ich habe eine externe Festplatte, die verschiedene GPT-Partitionen enthält. Eine davon ist eine LVM-Partition. Diese Partition ist in einer LVM-Volumengruppe (genannt „volga“) enthalten, die wiederum in viele verschiedene logische Volumes aufgeteilt ist, eines davon ist „data“ und eine verschlüsselte Partition.
Immer wenn ich diese externe Festplatte anschließe, möchte ich, dass mein Betriebssystem:
- Aktivieren Sie das logische Volume "data"
- Verwenden Sie cryptsetup, um einen unverschlüsselten Datenknoten zu erstellen, indem
/dev/mapper/data
Sie eine Schlüsseldatei verwenden, die in/somewhere/keyfile
- mounten
/dev/mapper/data
in/mnt/data
4. binden/mnt/data/Music
in/home/qdii/Music
(und andere Verzeichnisse)
Darüber hinaus möchte ich, dass mein Betriebssystem alles löscht, wenn das Gerät vom Stromnetz getrennt wird.
Bisher habe ich 2 Skripte. Das erste öffnet und ordnet das Gerät zu:
#!/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
Der zweite Schritt schließt das Gerät und hebt die Zuordnung auf:
#!/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
Um die Ausführung des ersten Skripts zu automatisieren, habe ich eine einfache udev-Regel geschrieben:
SUBSYSTEMS=="usb", ATTRS{serial}=="20120530280019", KERNEL=="sd?2", NAME="%k", SYMLINK+="thomson", GROUP="usb", RUN="/bin/bash /somewhere/open.sh"
Es funktioniert wunderbar, aber ich bin nicht sicher, wie ich die zweite Udev-Regel schreiben soll, um das zweite Skript beim Trennen der Verbindung aufzurufen (oder wenn der Computer in den Ruhezustand/Suspendzustand wechselt).