
皆さん、こんにちは
私は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を構成する方法