Конфигурация Systemd для последующего монтирования зашифрованного тома с работающими на нем службами

Конфигурация Systemd для последующего монтирования зашифрованного тома с работающими на нем службами

Всем приветЯ работаю над Banana Pi с Arch Linux
и в настоящее время пытаюсь добиться следующего:

  1. После того, как кто-то смонтировал зашифрованные ключевые файлы для моего внешнего хранилища, systemd будет использовать их и смонтировать внешнее хранилище.
  2. systemd должен запустить все службы, работающие на внешнем хранилище
  3. При выключении все должно быть остановлено перед размонтированием зашифрованного тома.

Через несколько часов это, наконец, сработало, и мне стало интересно, есть ли более простое решение:

/etc/systemd/система

luks.ключи.путь

[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/local/bin/хранилище

#!/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
  • storage.target и другие службы останавливаются, потому что им нужен luks.keys.service
  • luks.keys.service наконец останавливается и выключение продолжается с umount.target

Если этого невозможно добиться меньшими усилиями, я с радостью представлю ответ на вопрос:

Как настроить systemd для последующего монтирования зашифрованного тома с работающими на нем службами

Связанный контент