
異なる GPT パーティションを含む外付けハード ドライブがあります。そのうちの 1 つは LVM パーティションです。このパーティションは LVM ボリューム グループ (「volga」と呼ばれます) に含まれており、このグループはさらに多くの異なる論理ボリュームに分割されます。そのうちの 1 つは「data」で、暗号化されたパーティションです。
この外付けハードドライブを接続するたびに、OS に次の動作を実行させたいです。
- 論理ボリューム「データ」を有効にする
/dev/mapper/data
cryptsetupを使用して、保存されているキーファイルを使用して暗号化されていないデータノードを作成します。/somewhere/keyfile
-
4.
/dev/mapper/data
にマウントし、(他のディレクトリにも)バインドする/mnt/data
/mnt/data/Music
/home/qdii/Music
さらに、デバイスが取り外されるたびに、OS ですべてをクリアするようにしたいと思います。
今のところ、スクリプトは 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
2 番目はデバイスを閉じてマップを解除します。
#!/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"
驚くほどうまく動作しますが、切断時(またはコンピューターが休止状態/サスペンド状態になったとき)に 2 番目のスクリプトを呼び出すための 2 番目の udev ルールの記述方法がわかりません。