リムーバブル暗号化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