Saving bootloader configuration fails with LVM setup

Hi,

I am trying to install 15.1 from DVD on a small newly built box that I want to use as a server. I have two new 120GB SSDs, I’ve given the first a 1GB /boot/efi partition, the second a 1GB swap partition, and the remaining space is given over to an LVM volume group named vg0.

vg0 consists of a 64GB thin pool named tp0 and the remainder is a regular XFS formatted logical volume named lv_data given over to application data, and striped across the two disks in the pool.

tp0 is allocated with the following thin volumes (name - mount point - size), all XFS unless indicated otherwise:

lv_root - / - 32GB (Btrfs)
lv_home - /home - 2GB
lv_log - /var/log - 2GB
lv_tmp - /tmp - 2GB

The install goes well up until it tries to install the bootloader, at which point it cannot connect to lvmetad so falls back to device scanning, then reports that it cannot a disk identified by an lvmid:

Error

Execution of command “”/usr/bin/shim-install", “–config-file=/boot/grub2/grub.cfg”]]" failed.
Exit code: 1
Error output: WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
WARNING:Failed to connect to lvmetad.Falling back to device scanning.
/usr/sbin/grub2-probe: error:disk ` lvmid/A8t50V-9VKA-bjbU-04B4-kY8v-zPvK-EXjUQC/uKF1L6-qeDI-qOEd-uoW2-qmVu-Zf7N-IDOHW0’ not found.

After OKing the message it appears again a couple of minutes later, after OKing that it continues as if the installation is complete and reboots after a couple more minutes. Upon reboot no bootable system is found on hard disks and it passes to the DVD ROM and if I try the option to boot an installed Linux system from the DVD it does not find an installed system. I’ve also tried following the routine to re-install grub from the rescue system as follows:

vgchange -ay vg0
mount /dev/mapper/vg0-lv_root /mnt
mount --bind /dev /mnt/dev
mount --bind proc proc /mnt/proc
mount --bind sysfs sysfs /mnt/sys
chroot /mnt
grub2-mkconfig-o /bot/grub2/grub.cfg

But at that point I get the same error message as above.

I feel like there is nothing in the setup that should be stopping it, there is an adequately sized FAT-formatted EFI boot partition and I have another desktop with a similar setup where root is on a thin volume (albeit from an older version of openSuse which has been upgraded, not a fresh install of 15.1) so don’t see this as an issue. I have retried the whole install procedure (including generating new GPTs for both disks) a couple of times with the same end result. Have also tried changing the SATA ports that the disks are connected to because initially I had plugged them into RAID-capable ports which was not recommended in the UEFI screens, but on grounds of speed, not boot-ability.

Motherboard is an AsRock C2550D4I, disks are Kingston 120GB UV500 SSDs, please let me know if any other hardware info is useful. Any help would be gratefully received.

You cannot have “/boot” as part of a thin volume. There’s a bug report on that
Bug 1134130 - “/boot” cannot be part of a thinly provisioned logical volume

The bug shows a “fixed”, but the fix is too late for Leap 15.1. And, in any case, the fix is for the installer to clearly tell you that it won’t work.

You are going to need a separate “/boot” partition if using thin volumes.

It is a separate partition, it’s not part of a thin volume or even a volume group. I’ve provisioned 1GB for it and then the remaining space on that disk is for the VG.

That’s not what you said in your opening post. There, you indicated that the 1GB was for the EFI partition, mounted at “/boot/efi”. That is not the same as “/boot”.

Can you post the output from

df

I’ve not mentioned /boot once, you did!

Will a photo suffice for the df output? Just asking cos it’ll be a lot quicker than connecting the rescue system to my network to move a text file around.

Should be okay. You can upload to paste.opensuse.org.

OK this is not going well, I’ve got photos but I can’t embed them here, I can only link to them so I’ll have to find somewhere to upload them so I can link to them which will take me a while. Have tried some OCR software but it’s not accurate enough.

I’m not sure that the output of df will tell you much since it’ll be from the rescue system so I’ve also snapped the output of fdisk -l and the Partitioner from the install program but have run out of time today, will try and get them uploaded tomorrow.

As an aside, any chance the forums could allow images to be embedded in posts? This whole process would be a whole lot quicker if I could embed the photos I’ve taken.

There is a button (icon) in the editor for images. But you have to first upload to somewhere. I did suggest paste.opensuse.org for that.

I’m looking at your rescue attempt, described in the first post.

After you do “chroot /mnt”, the very next step should be:

mount -a

That should mount the “btrfs” subvolumes, the separate “/boot” if there is one, and the EFI partition at “/boot/efi”.

If you don’t have those mounted, then the rescue will fail.

Thanks I’ve not tried that, will do tomorrow. I revisited the rescue code I posted, I did it from memory and I’ve realised some of it was wrong, and I’ve also tried something slightly different and got a slightly different outcome. So, the latest is:

vgchange -ay vg0
mount /dev/mapper/vg0-lv_root /mnt
mount /dev/sda1 /boot/efi
mount --bind /dev /mnt/dev
chroot /mnt
mount -t proc proc /proc
mount -t sysfs sysfs /sys

Now grub2-mkconfig gives the same error as before, however it then goes on to find a valid vmlinuz and initrd to write to the config file, continues with more grub2-probe errors around lvmids not found and then writes a config file, which I don’t think it did before. That feels like progress, sort of. I think it is the mounting of the boot partition that I hadn’t done previously. Will post the output tomorrow. But please can you clarify, are you suggesting running the following before grub2_mkconfig:

vgchange -ay vg0
mount /dev/mapper/vg0-lv_root /mnt
mount --bind /dev /mnt/dev
chroot /mnt
mount -a

I would suggest:


vgchange -ay vg0
mount /dev/mapper/vg0-lv_root /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
mount -a

You are using “btrfs”. And typically a “btrfs” file system has subvolumes that need to be mounted. You could manually mount them all, but that “mount -a” from within the “chroot” environment is the easiest way to handle that. And it will also take care of other needed mounts.

In what you say you tried, I see:

mount /dev/sda1 /boot/efi

But that would instead need to be:

mount /dev/sda1 /mnt/boot/efi

However, if you really have a separate “/boot”, then that should fail unless you first mount that “/boot”.

It still looks to me as if the problem is your use of a thinly provisioned volume for the file system containing “/boot”.

You were 100% right, I went through the install procedure again with /, and therefore /boot, on a normal logical volume instead of a thin volume and it was fine.

Thanks for your help

I’m glad you have it working.

For booting, grub has to manage with BIOS calls. And a thinly provisioned LVM volume is a bit too complex for that.

If use ext4 you only need /boot outside on its own partition. With BTRFS it is best to just put the whole root outside.