Mounting LVM mirror partition at boot: missing /dev/<vg>/<lv> device

I could not mount a LVM mirror partition to where I wanted to move /home at boot. The boot process asked to enter a rescue system by entering the root password. The errors reported where:

  • the UUID of the mirror I had put in /etc/fstab was now unknown
  • the corresponding LVM device /dev// was missing (not built at boot by udev)
  • dmesg reported:
md: personality for level 1 is not loaded!

Each sub partition of the mirror was previously built on a different SSD Intel disk of the same model with no problem. The UUID found by blkid was put in /etc/fstab.

After many trials and errors I managed to solve this by rebuilding initramfs (1) with additional modules, changing the order of the hooks (2) and adding a parameter to grub command line (3). One can do this in single-user mode if the boot is very much impaired. Here are the details.

  1. Initramfs

Add the following modules to the MODULES= line in /etc/mkinitcpio.conf

  • vmd
  • dm-raid
  • dm-mod
  • raid1

It reads now:

MODULES=“crc32c-intel vmd dm-raid dm-mod raid1”

I am not sure if everything is needed. vmd and raid1 are definitely needed.

  1. HOOKS

In the same file, on the HOOKS= line, change the order to put block before autodetect

Not sure if it helped.

  1. GRUB

I added

nvme_load=YES

at the end of the line GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub

After the changes one need to to rebuild initramfs:

mkinitcpio -P

And rebuild grub:

grub-install

Before rebooting

Hope it helps somebody :wink: