そこで、次のようなレイアウトでシステムをインストールしました。
- という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つのステップが必要なようです。