
Oi pessoal,
estou trabalhando em um Banana Pi com Arch Linux e atualmente estou tentando realizar o seguinte:
- Depois que alguém montou os arquivos-chave criptografados para meu sistema de armazenamento externo, devo usá-los e montar o armazenamento externo
- systemd deve iniciar todos os serviços que operam no armazenamento externo
- No desligamento, tudo será interrompido antes de desmontar o volume criptografado
Depois de algumas horas finalmente funcionou e me pergunto se existe uma solução menor:
/etc/systemd/system
luks.keys.path
[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
armazenamento.target
[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/local/bin/storage
#!/bin/bash
systemclt isolate storage.target
cryptsetup --key-file /etc/luks-keys/storage1 luksOpen /dev/sda1 storage1
mount /dev/mapper/storage1 /mnt/storage1
Botas Pi:
- systemd inicia multiusuário.target
- ativa luks.keys.path que espera por arquivos em /etc/luks-keys
- arquivos encontrados
- luks.keys.service é ativado e inicia storage.target
- os outros serviços estão começando
Antes de desmontar:
- systemctl tenta parar luks.keys.service
- storage.target e os outros serviços estão parando porque precisam de luks.keys.service
- luks.keys.service finalmente para e o desligamento continua com umount.target
Se não for possível fazer isso com menos trabalho, tenho o prazer de apresentar a resposta à pergunta:
Como configurar o systemd para um volume criptografado montado posteriormente com serviços trabalhando nele