稍後安裝的加密磁碟區的 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 並在其上運行服務

相關內容