Upgrade from 30 to 31 results in lvm inactive on boot

Hey - I upgraded from 30 to 31 a few days ago and it went horribly, I have fixed most of the problems but I am left with the lvm volumes not being active on boot. I can fix this by dropping rd.break=initqueue in the kernel options, then running lvchange -ay, exit. But how can I make that happen automatically? Thanks for any help…

Hi @blitzd welcome to ask fedora.

I will leave a link here where an user of centos did have the same problem link

I think you understand perfectly that you are doing, but just in case i will mark the differences in the steps.

  • It is how the LV is named in my boot options (bold text) :
GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet"

rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap

You can have other names so use your names.

  • To regenerate grub here:

https://fedoraproject.org/wiki/GRUB_2

Note: Be careful between BIOS or UEFI (system) you need choose the right one

*To regenerate initramfs you need use dracut in fedora:

https://fedoraproject.org/wiki/Dracut

You can choose between 2 ways to regenerate initramfs:

  • 1 . You can do a backup first:
## Backup old initramfs  image ##
sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-backup.img
 
## Create new initramfs image ##
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)
  • 2 . You can force the regeneration of actual initramfs (I don’t like too much this option):

sudo dracut -f

I never did test it out because never did have the issue, so it is just one thing that to me look logic in this case but no can confirm that it will do the trick. but I think that you know that you are doing and the commands before don’t be nothing strange.

I hope it can help you a bit.

Regards.

1 Like

Hey, xtym - thanks for the reply!

My volumes appear to be named correctly within the /etc/default/grub file:

GRUB_CMDLINE_LINUX=“rd.lvm.lv=fedora/root rd.lvm.lv=fedora/swap rhgb quiet systemd.unified_cgroup_hierarchy=0”

…that’s the same way I activate them with the lvm lvchange -a y fedora/root etc…

This is how they look in the fstab:

/dev/mapper/fedora-root /                       ext4    defaults        1 1
UUID=ddcdf8e3-fc89-42db-b1e9-a2d18d9a6e37 /boot                   ext4    defaults        1 2
UUID=8FCB-AF71          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
/dev/mapper/fedora-home /home                   ext4    defaults        1 2
/dev/mapper/fedora-swap swap                    swap    defaults        0 0

I re-did the grub2-mkconfig, and the dracut/initramfs you suggested - but there is no change (wasn’t expecting any since nothing else had changed, but…).

No lvm volumes active on boot still…

I did also notice that I can no longer even boot into the Fedora 31 live CD, it locks up at the exact same point (“Reached target: Basic system” or whatever). Same with a USB. So I am wondering if something was introduced to 31 that is just not compatible with my system. Not sure how that would affect LVM, but…

Maybe it is something related with the name of VG that is not matching with the service to load/active them in the boot
I don’t know if this will help but i did check the names so:

[jorge@f31 ~]$ sudo lvs
  LV   VG                    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home fedora_localhost-live -wi-ao---- 153,38g                                                    
  root fedora_localhost-live -wi-ao----  70,00g                                                    
  swap fedora_localhost-live -wi-ao----   7,91g   
[jorge@f31 ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu Jan  9 20:55:19 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/fedora_localhost--live-root /                       ext4    defaults        1 1
UUID=7d36a736-eca6-442b-9785-250b85984cc1 /boot                   ext4    defaults        1 2
UUID=37A4-CFE0          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home                   ext4    defaults        1 2
/dev/mapper/fedora_localhost--live-swap none                    swap    defaults        0 0
/dev/disk/by-uuid/2f2f56a3-c161-4004-91b6-fb9f6c40022f /mnt/2f2f56a3-c161-4004-91b6-fb9f6c40022f auto nosuid,nodev,nofail,x-gvfs-show 0 0

I did see that systemctl services is related with lvm

[jorge@f31 ~]$ systemctl list-units --type service | grep -i lvm
  lvm2-monitor.service                                                                      loaded active exited  Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
  lvm2-pvscan@8:19.service                                                                  loaded active exited  LVM event activation on device 8:19   
  • After did check the status and the name of the VG:
[jorge@f31 ~]$ systemctl status lvm2-pvscan@8\:19.service 
● lvm2-pvscan@8:19.service - LVM event activation on device 8:19
   Loaded: loaded (/usr/lib/systemd/system/lvm2-pvscan@.service; static; vendor preset: disabled)
   Active: active (exited) since Thu 2020-01-16 14:31:13 CET; 4h 15min ago
     Docs: man:pvscan(8)
  Process: 763 ExecStart=/usr/sbin/lvm pvscan --cache --activate ay 8:19 (code=exited, status=0/SUCCESS)
 Main PID: 763 (code=exited, status=0/SUCCESS)
      CPU: 26ms

jan 16 14:31:13 f31 lvm[763]:   pvscan[763] PV /dev/sdb3 online, VG fedora_localhost-live is complete.
jan 16 14:31:13 f31 lvm[763]:   pvscan[763] VG fedora_localhost-live run autoactivation.
jan 16 14:31:13 f31 systemd[1]: Starting LVM event activation on device 8:19...
jan 16 14:31:13 f31 lvm[763]:   3 logical volume(s) in volume group "fedora_localhost-live" now active
jan 16 14:31:13 f31 systemd[1]: Started LVM event activation on device 8:19.

Here the VGs name did match with my fstab and boot parameters : “fedora_localhost-live”

  • 1-Check that it is the same for you in the other case you could try rename them to default name in fedora31 to see if this does the trick

  • 2-Check in your lvm.conf in the path /etc/lvm/lvm.conf how does it recognize the name of VG to be mounted my lvm.conf is here check the options of activation and the value =1 and also you can add VG manually like you can see here

  • 3- (skip this step and look for info if you did failed with the 2 options above because I am not sure that this services can do “lvm2-activation-early.service lvm2-activation.service” but looks like they do a do a vgscan -ay in the boot process but i am not sure so you should check it if you are interested.

[jorge@f31 ~]$ systemctl status lvm2-
lvm2-activation-early.service  lvm2-activation.service        lvm2-lvmpolld.service          lvm2-lvmpolld.socket           lvm2-monitor.service           lvm2-pvscan@8:19.service

I hope it can help you in some way.

Regards.

Thanks @xtym, I checked the names and they do indeed match.

I am thinking that there may be multiple issues here though. I thought I’d maybe try a clean install over top but it appears that the Fedora 31 live CD does not even support my system any more - it gets stuck at the very same place as my upgraded system does. It also does the same thing on another machine I have (Lenovo T580), but works on an older Lenovo W540. My workstation is a Lenovo P700 - both it and the T580 are new-ish, so I’m thinking something in kernel/driver-land that was introduced in F31 and doesn’t like newer Lenovo products.

1 Like

Yes @blitzd, a clean install would be the better.

Maybe if you are stacked in the point that you don’t have stack graphic to continue and If you have a Intel hybrid CPU (CPU+GPU integreted) and one Nvidia card it high probably that you need put in the boot parameter before you do the install the parameter nouveau.modeset=0 this would load the graphic install though the module i915. It doesn’t would be the first case this happen.

Here i will leave a post with another Thinkpad T580:

Sincerely i think you don’t need add this parameter fix i915.modeset=1 to force to use the intel integrated GPU because it would be done automatically.

Regards.