여러분, 안녕하세요,
저는 Arch Linux를 사용하여 Banana Pi를 개발 중이며 현재 다음 작업을 수행하려고 합니다.
- 누군가 내 외부 저장소에 암호화된 키 파일을 설치하면 시스템은 해당 파일을 사용하고 외부 저장소를 마운트합니다.
- systemd는 외부 저장소에서 실행되는 모든 서비스를 시작해야 합니다.
- 종료 시 볼륨을 마운트 해제하기 전에 모든 작업을 중지해야 합니다.
몇 시간 후에 마침내 작동하게 되었는데, 더 작은 해결책이 있는지 궁금합니다.
/etc/systemd/시스템
luks.keys.경로
[Unit]
Description=luks-keys found in /etc/luks-keys
[Path]
DirectoryNotEmpty=/etc/luks-keys/
[Install]
WantedBy=multi-user.target
luks.keys.service
[Unit]
Description=luks-keys availible
Conflicts=umount.target
Before=umount.target
[Service]
Type=simple
ExecStart=/usr/local/bin/storage
RemainAfterExit=yes
스토리지.대상
[Unit]
Description=Storage
Requires=basic.target
After=multi-user.target
Requisite=luks.keys.service
AllowIsolate=yes
./storage.target.wants/minidlna.service
[Unit]
Description=minidlna server
After=network.target
Requisite=luks.keys.service
[Service]
Type=forking
ExecStart=/usr/bin/minidlnad -P /run/minidlna/minidlna.pid
PIDFile=/run/minidlna/minidlna.pid
[Install]
WantedBy=storage.target
/usr/로컬/빈/스토리지
#!/bin/bash
systemclt isolate storage.target
cryptsetup --key-file /etc/luks-keys/storage1 luksOpen /dev/sda1 storage1
mount /dev/mapper/storage1 /mnt/storage1
가죽 부츠:
- systemd는 multi-user.target을 시작합니다.
- luks.keys.path를 활성화하고 /etc/luks-keys에서 파일을 기다립니다.
- 찾은 파일
- luks.keys.service가 활성화되고 Storage.target이 시작됩니다.
- 다른 서비스가 시작됩니다
제거하기 전에:
- systemctl이 luks.keys.service를 중지하려고 시도합니다.
- luks.keys.service가 필요하기 때문에 Storage.target 및 기타 서비스가 중지됩니다.
- luks.keys.service는 결국 중지되고 umount.target으로 계속 종료됩니다.
더 적은 노력으로 이 작업을 수행할 수 없다면 다음 질문에 기꺼이 답변해 드리겠습니다.
나중에 마운트하고 서비스를 실행할 암호화된 볼륨에 대해 systemd를 구성하는 방법