この設定で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-modules
initramfs イメージのすべてのカーネルモジュールが含まれます。必須ではありませんが、安全のために試してみることができます。
答え2
ルートが論理ボリュームにある場合、systemd-bootローダーファイルは次のようになります。
title Debian10
linux /vmlinuz-4.19.0-4-amd64
initrd /initrd.img-4.19.0-4-amd64
options root=/dev/mapper/VG01-LV01 rw
LV パスを取得するには、次を使用します。 (
lsblk --path --output name,kname,fstype,mountpoint,model
熱name
)