Configuración de Systemd para un volumen cifrado montado posteriormente con servicios trabajando en él

Configuración de Systemd para un volumen cifrado montado posteriormente con servicios trabajando en él

Hola a todos,
Estoy trabajando en una Banana Pi con Arch Linux y actualmente estoy intentando lograr lo siguiente:

  1. Después de que alguien haya montado los archivos de claves cifrados para mi sistema de almacenamiento externo, los usaré y montaré el almacenamiento externo.
  2. systemd iniciará todos los servicios que operan en el almacenamiento externo.
  3. Al apagar, todo se detendrá antes de desmontar el volumen cifrado

Después de algunas horas finalmente funcionó y me pregunto si hay una solución menor:

/etc/systemd/sistema

luks.claves.ruta

[Unit]
Description=luks-keys found in /etc/luks-keys

[Path]
DirectoryNotEmpty=/etc/luks-keys/

[Install]
WantedBy=multi-user.target


luks.keys.servicio

[Unit]
Description=luks-keys availible
Conflicts=umount.target
Before=umount.target

[Service]
Type=simple
ExecStart=/usr/local/bin/storage
RemainAfterExit=yes


almacenamiento.objetivo

[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/almacenamiento

#!/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 multi-user.target
  • activa luks.keys.path que espera archivos en /etc/luks-keys
  • archivos encontrados
  • luks.keys.service se activa e inicia Storage.target
  • los otros servicios están comenzando


Antes de desmontar:

  • systemctl intenta detener luks.keys.service
  • Storage.target y los otros servicios se detienen porque necesitan luks.keys.service
  • luks.keys.service finalmente se detiene y el apagado continúa con umount.target

Si no es posible lograr esto con menos trabajo, me complace presentar la respuesta a la pregunta:

Cómo configurar systemd para un volumen cifrado montado posteriormente con servicios trabajando en él

información relacionada