起動時に luks で保護された LVM ボリュームをマウントする方法

起動時に luks で保護された LVM ボリュームをマウントする方法

プライマリ Ubuntu インストールを 1 つのディスクにインストールし、セカンダリ インストール (プライマリのオフライン バックアップ用) を別のディスクにインストールしています。便宜上、セカンダリ インストールのルート ボリュームをプライマリ インストール内にマウントしたいと思います。

crypttab エントリ: と fstab エントリ: がありsda3_ubuntu UUID=XXX keyfile luks,nofailます
/dev/mapper/vgubuntu-root /home/XXX/sda3_ubuntu ext4 nofail,errors=remount-ro 0 1

起動時に と を使用するとcryptdisks_start、ボリュームは期待どおりにロック解除されます。ただし、LVM ボリュームはロック解除後に非アクティブになるため (そのため dm デバイスが存在しない)、ルート ボリュームはマウントされません。これをアクティブにすると、mount -a正常にマウントされます。

これらはすべてスクリプト化可能ですが、ブート ボリュームの場合のように、途中で LVM ボリュームを自動的にアクティブ化するものが欠けているように感じます。そのようなものが存在し、Google が役に立たないのでしょうか?

答え1

LVM は、LUKS デバイスの暗号化を解除した後、基礎となる VG (および LV) を自動的にアクティブ化できる必要があります。確認すべき重要な点は、LVM 構成ファイルと、適切なサービスが有効になっていて実行されているかどうかです。

lvm.conf は、

event_activation = 1

auto_activation_volume_list設定しないでください (デフォルトではすべての LV がアクティブになります)。lvmpolld ( use_lvmpolld = 1) を有効にすることも試してみる価値があります。

実行する必要があるサービスは次のとおりです。

lvm2-monitor
dm-event

次のコマンドで systemd 実行チェーンを確認できます。

systemd-analyze plot > plot.svg

どのサービスがいつ開始されるかを確認します。一部のサービスがアクティブでないか、適切なタイミングで開始されていない可能性があります。

関連情報