スパニング-lvmとLUKSを使用したsystemd-boot

スパニング-lvmとLUKSを使用したsystemd-boot

そこで、次のようなレイアウトでシステムをインストールしました。

  • という2つのNVMEドライブにまたがるLVを作成しましたspanned_vg-spanned_lv
  • LUKSでLVをフォーマットし、次のようにマッピングしました。cryptroot
  • このcryptroot仮想ドライブには、ルートパーティションとして使用するパーティションが 1 つしかありません。
  • 起動はドライブの1つにある別々のパーティションです。

lsblk:

NAME                      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0                       7:0    0   3.1G  1 loop  /mnt/livecd
sda                         8:0    1 119.3G  0 disk  
├─sda1                      8:1    1 119.2G  0 part  
│ └─ventoy                253:0    0   3.2G  1 dm    /mnt/cdrom
└─sda2                      8:2    1    32M  0 part  
nvme1n1                   259:0    0 476.9G  0 disk  
└─nvme1n1p1               259:1    0 476.9G  0 part  
  └─spanned_vg-spanned_lv 253:1    0   1.4T  0 lvm   
    └─cryptroot           253:2    0   1.4T  0 crypt /mnt/gentoo
nvme0n1                   259:2    0 931.5G  0 disk  
├─nvme0n1p1               259:3    0   512M  0 part  /mnt/gentoo/boot
└─nvme0n1p2               259:4    0   931G  0 part  
  └─spanned_vg-spanned_lv 253:1    0   1.4T  0 lvm   
    └─cryptroot           253:2    0   1.4T  0 crypt /mnt/gentoo

私はluksのアーチでsystemd-bootをたくさん使用しましたが、LVMやgentooでは一度も使用しませんでした(文書では少し異なる設定項目を使用しているようです)。だから少し恥ずかしいです。私はオンラインで見つけたいくつかの例を試してみましたが、これまでローダーアイテムを手に入れました。

tile Gentoo Linux
efi /vmlinuz-6.1.41-gentoo-x86_64
initrd /initramfs-6.1.41-gentoo-x86_64.img
options luks.name=/dev/mapper/spanned_vg-spanned_lv=cryptroot root=/dev/mapper/cryptroot init=/usr/lib/systemd/systemd ro dolvm

ただし、起動しようとするとルートディレクトリが見つからないため、カーネルパニックが発生します。

したがって、次のいずれかが正しいと思います。

  • 普段使っていた仮想ディスクの作成をめちゃくちゃにしたので、間違ってmkinitcpio使っている可能性もありますgenkernel。私genkernel.confのもの:
INSTALL="yes"
NOCOLOR="false"
LVM="yes"
LUKS="yes"
MICROCODE="amd"
GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"
CACHE_DIR="/var/cache/genkernel"
DISTDIR="${GK_SHARE}/distfiles"
LOGFILE="/var/log/genkernel.log"
LOGLEVEL=1
DEFAULT_KERNEL_SOURCE="/usr/src/linux"
  • 私のlvは、systemdがcryptrootを開こうとするまで見つかりません。この問題をどのように解決できるかわかりませんか?
  • 私がやっていることは愚かで、このレイアウトは実際にはサポートされていません。

ここでどんな助けでもいいでしょう。ありがとうございます!

答え1

私はGentooを使わなかったので間違っているかもしれません。これらのカーネルパラメータは、実際にはカーネル自体ではなくinitramfsによって解釈されるためです。しかし...

一歩を逃したようです。これを行うには、cryptsetupがinitramfsからLUKSドライブのロックを解除する必要があります。

root=/dev/mapper/

他のディストリビューションでは、次のことを行う必要があります。

  • パッケージをインストールし、initramfsにスクリプトを追加してLUKSブロックデバイスのロックを解除します。たとえば、Ubuntuではインストールできますcryptsetup-initramfs
  • /etc/cryptabロック解除行を含めるように更新されました。/dev/mapper/cryptroot
  • initramfsを再構築するコマンドを実行します(update-initramfs)。

Gentooにも同様の3つのステップが必要なようです。

関連情報