systemd、UEFI、lvm2 rootfs、およびsystemd EFIブートを使用してGentooを起動するには?

systemd、UEFI、lvm2 rootfs、およびsystemd EFIブートを使用してGentooを起動するには?

この設定でArch Linuxをインストールしました。今、Gentooでデュアルブートしたいです。ただし、Gentooを起動するとルートUUIDは検出されません(LVM上)。私のパーティションスキームは次のとおりです。 ( lsblk -f)

sda                                                                    
├─sda1         vfat        E3B9-CCB0                               /boot
└─sda2         LVM2_member GwYKZG-fjl2-UV2L-KX57-1O8J-rBdp-fpdheC 
  ├─lvm-arch   ext4        67ce60f0-1a30-4da3-bb14-8dbfa0e4ea1d    /
  └─lvm-gentoo ext4        4db48ce0-3163-4a4d-ab8a-1961935cb680

設定ファイルを使用してArch Linuxを起動できます/boot/loader/entries/arch.conf

title           Arch Linux (LVM)
linux           /vmlinuz-arch
initrd          /initramfs-arch.img
options         root=UUID=67ce60f0-1a30-4da3-bb14-8dbfa0e4ea1d rw

Gentooのインストールが完了したら、/boot/loader/entries/gentoo.confファイルを生成します。

title           Gentoo (LVM)
linux           /vmlinuz-gentoo
initrd          /initramfs-gentoo.img
options         root=UUID=4db48ce0-3163-4a4d-ab8a-1961935cb680 rw

私は/boot/EFI/systemd/systemd-bootx64.efiブートを使用します。 Gentooオプションが起動メニューに表示されますが、選択しても何も起こりません。ただ空です。私のハードドライブを使用してvirtualboxから直接起動しようとしましたが、UUIDが見つからないまで起動が機能しますrootfs。 UUID/dev/mapper/lvm-gentooのみ/dev/sda2が検出されます。

私の考えではカーネルやinitramfsに問題があるようです。しかし、私はデバイスマッパーサポートを使ってカーネルをコンパイルしました。私がしなかったこと:

genkernel --lvm --install initramfs

私が逃したものは何ですか?

ベストアンサー1

Logical Volume Manager(LVM)だけでなく、ユニバーサルユニーク識別子(UUID)も使用する必要があるため、genkernelコマンドに他のオプションを追加する必要があります。これにより、--disklabel次のような結果が表示されます。

genkernel --lvm --disklabel --install initramfs

using--disklabelオプションを使用するblkidと、他のコマンドがinitramfsに含まれ、ブート段階で使用できるようになります。

他のアドバイスは、すべてのドライバが利用可能であることを確認するために別のオプションを試すことです。たぶんカーネルではなくモジュールとして構築したかもしれません。--all-ramdisk-modulesinitramfs イメージのすべてのカーネルモジュールが含まれます。必須ではありませんが、安全のために試してみることができます。

おすすめ記事