そのセットアップでArchLinuxをインストールしました。そして今、私は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
/boot/loader/entries/Arch.conf
設定ファイルでArchLinuxを起動できます。
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で直接起動しようとしましたが、起動はrootfs
が見つかるまでしか機能しません。どういうわけか、/dev/mapper/lvm-gentoo
UUIDが見つかりません。 /dev/sda2
UUIDのみが検出されます。
私の推測では、カーネルまたはinitramfsに何か問題があります。しかし、私はデバイスマッパーをサポートしてカーネルをコンパイルしました。そして、私はやることができませんでした:
genkernel --lvm --install initramfs
私は何が欠けていましたか?
論理ボリュームマネージャー(LVM)だけでなくUniversal Unique Identifier(UUID)も使用する必要があるため、genkernelコマンドに--disklabel
という別のオプションを追加する必要があります。これにより、次のようになります。
genkernel --lvm --disklabel --install initramfs
--disklabel
オプションを使用すると、blkid
およびその他のコマンドがinitramfsに含まれ、ブートフェーズで使用できるようになります。
他のアドバイスは、すべてのドライバーも利用できることを確認するために別のオプションを試すことです。カーネルではなくモジュールとしてビルドしたのかもしれません。 --all-ramdisk-modules
は、すべてのカーネルモジュールをinitramfsイメージに含めます。これは必須ではありませんが、念のために試すことができます。
Rootが論理ボリューム上にある場合、systemd-bootloader-fileは次のようになります。
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
列)