
다양한 GPT 파티션이 포함된 외장 하드 드라이브가 있습니다. 그 중 하나는 LVM 파티션입니다. 이 파티션은 LVM 볼륨 그룹("volga"라고 함)에 포함되어 있으며, 이 그룹은 여러 다른 논리 볼륨으로 분할됩니다. 그 중 하나는 "데이터"이고 암호화된 파티션입니다.
이 외장 하드 드라이브를 연결할 때마다 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
두 번째는 장치를 닫고 매핑을 해제합니다.
#!/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 규칙을 작성하는 방법을 잘 모르겠습니다.