システムの依存関係は、デバイスの「ExecStart」操作にのみ適用できますか?

システムの依存関係は、デバイスの「ExecStart」操作にのみ適用できますか?

リムーバブル暗号化USB「キーリング」フラッシュドライブに含まれているキーを使用して複数のストレージボリュームを暗号化するシナリオがあります。私はArch Linuxを実行していますが、この質問はシステム依存関係の設定に関するものです。

キーリングが存在する限り、システムはボリュームを起動してマウントするように構成されています。キーリングパスワードは起動時に手動で入力されます。

システム起動後にUSBキーリングを削除できるようにしたいが、systemdがすべてを削除するために問題が発生します。

以下は私がしたことの例です。まず、/etc/crypttab

# <name>  <device>           <password>             <options>
keyring   PARTLABEL=keyring  none                   noauto
abc       /dev/lvm/abc       /root/keyring/abc.key  header=/root/keyring/abc.hdr
xyz       /dev/lvm/xyz       /root/keyring/xyz.key  header=/root/keyring/xyz.hdr
  • 私はsystemdこのオプションをサポートする最近のGitチェックアウトを使用していますheader。このオプションは1月8日にリポジトリに追加されました。

  • バックアップ/利便性のために複数の物理キーリングがあるため、キーリングにパーティションラベルを使用します。 UUIDは異なる場合がありますが、同じPARTUUID設定を使用します。

  • 私が使用しているnoautoキーリングは、暗号化を解除する必要があるすべてのデバイスへの依存関係です。

以下は次のとおりです/etc/fstab

# <file system>     <dir>         <type>    <options>
/dev/mapper/keyring /root/keyring ext4      ro,noauto
/dev/mapper/abc     /srv/abc      ext4
/dev/mapper/xyz     /srv/xyz      ext4

同様に、キーリングはnoauto依存関係なのでインストールされます。さらに、読み取り専用でマウントされており、安全に引き出すことができる。

これで、ボリュームとキーリングの間の依存関係を作成するために、以下を使用しました。オーバーライドの挿入、例えば:

# /etc/systemd/system/systemd-cryptsetup\@abc.service.d/override.conf
[Unit]
Requires=root-keyring.mount

これはすべて素晴らしいと起動するのに最適です。問題は、キーリングを削除すると、それに依存するデバイスが停止することです。私はこのようなことが起こりたくありません。依存関係は、ボリュームがロック解除されたときにキーとヘッダーにアクセスできるようにするためにのみ必要です。ロックが解除されると、キーとヘッダーは不要になります。

だから私の質問は尋ねることです。「ExecStart」コマンド期間中にのみ存在するキーリングの依存関係をソートする方法[Eメール保護]単位

あるいは、これが間違ったアプローチである場合は、改善されたソリューションを歓迎します。

ベストアンサー1

明示的な依存関係の代わりに、次を使用できます。自動マウント

Systemdがあったことを覚えています。Poetteringのブログオリジナル投稿、暗黙の依存関係です。これは(systemdを使用して)ソケットにリクエストを作成し、適切なサービス(たとえば「ソケットを有効にする」)を開始する方法と同じです。この場合、ファイルシステムにアクセスすると、そのファイルシステムがマウントされます。

このアプローチを使用すると、サービスまたはファイルシステムが準備されるまでブロックできます。 ノート:これは、システムにそのディレクトリを表示しようとすると(「キーリング」ドライブを削除した後)、ブロックされるディレクトリがあることを意味します。おそらく他の目的で/ rootを使用している場合は、インストールする方が良いでしょう。たとえば/automount/keyring、ぶら下がらないように他の場所に置いてください。個人的には、私はこの問題が自動マウントをやや混乱させると思います。しかし、問題を非常に迅速に解決するようです。

ファイルシステムがにリストされている場合は、オプションリストに/etc/fstab追加するだけです。x-systemd.automount

ネイティブファイルとして.mount記述する場合は、.automount同じ名前のファイルを作成する必要があるようです。たとえば、次のようなものがありroot-keyring.automountます。

[Automount]
Where=/root/keyring

おすすめ記事