2

I've installed Arch Linux with that setup. And now, I want to have dual boot with gentoo. But, when booting gentoo, the root UUID (on LVM) not detected. My partition scheme is like this: (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

I can boot Arch linux with /boot/loader/entries/arch.conf config file:

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

After finished gentoo installation, I create /boot/loader/entries/gentoo.conf file:

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

I use /boot/EFI/systemd/systemd-bootx64.efi to boot. The gentoo option did show up on boot menu, but when I select it no response at all. Just blank. I tried to boot on virtualbox directly using my hard drive, then boot works only until finding rootfs. Somehow, /dev/mapper/lvm-gentoo UUID can not be found. Only /dev/sda2 UUID is detected.

My guess, something wrong with the kernel or initramfs. But, I did compile the kernel with Device mapper support. And I didn't for get to do:

genkernel --lvm --install initramfs

What did I missing?

1

As you need to use not only Logical Volume Manager (LVM) but Universal Unique Identifier (UUID), you should add another option to genkernel command which is --disklabel which will result in something like this

genkernel --lvm --disklabel --install initramfs

using --disklabel option will ensure that blkid and other command are included in initramfs and are available during the boot phase.

Other advice is try another option to be sure that all driver are available too. Maybe you have build them as modules and not in kernel. --all-ramdisk-modules will include all kernel modules in initramfs image. This is not mandatory but you could try it just to be sure.

0

The systemd-boot loader-file should look something like this if root is located on an logical volume:

title      Debian10
linux      /vmlinuz-4.19.0-4-amd64
initrd     /initrd.img-4.19.0-4-amd64
options    root=/dev/mapper/VG01-LV01 rw

To get the LV path use:
lsblk --path --output name,kname,fstype,mountpoint,model
(the name column)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.