用於斷開連接和休眠/掛起的 udev 規則

用於斷開連接和休眠/掛起的 udev 規則

我有一個外部硬碟驅動器,其中包含不同的 GPT 分割區。其中之一是 LVM 分割區。該分區包含在 LVM 卷組(稱為“volga”)中,該卷組又分為許多不同的邏輯卷,其中一個是“資料”,是一個加密分割區。

每當我插入此外接硬碟時,我希望我的作業系統能夠:

  1. 啟用邏輯磁碟區“資料”
  2. /dev/mapper/data使用 cryptsetup使用儲存在中的金鑰檔案建立未加密的資料節點/somewhere/keyfile
  3. 掛載/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 規則,在斷開連接時(或當電腦進入休眠/掛起狀態時)調用第二個腳本。

相關內容