稍后安装的加密卷的 Systemd 配置以及在其上运行的服务

稍后安装的加密卷的 Systemd 配置以及在其上运行的服务

大家好
我正在使用 Arch Linux 开发 Banana Pi,目前正在尝试完成以下任务:

  1. 有人为我的外部存储安装了加密的密钥文件后,系统将使用它们并安装外部存储
  2. systemd 应启动在外部存储上运行的所有服务
  3. 关闭时,在卸载加密卷之前应停止所有操作

几个小时后终于成功了,我想知道是否有更小的解决方案:

/etc/systemd/系统

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


存储.目标

[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 启动多用户.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 并在其上运行服务

相关内容