a lvm global_filter related boot issue

JimmyZ

Member
Sep 6, 2019
4
1
23
42
I have a custom global_filter set in lvm.conf like this:
Code:
global_filter=["a|M4-CT064M4SSD2|", "r|.*|"]

Basically I have quite a lot of physical disks, and some of them were spun down most of the time, I don't want to accidentally wake them up by lvm, and white listing the only disk I have lvm on seems easier instead of black listing all the other disks. this global_filter works according to pvscan, it shows the only ssd I want.

But then it would throw me to the initramfs shell during boot like this:
Code:
Gave up waiting for root files system device. Common problems:
 - Boot args (cat /proc/cmdline)
     - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/vg_m4-lv_debian_root does not exist. Dropping to a shell!
lvm vgchange -ay in the initramfs shell then it boots normally though.

Removing the global_filter then update-initramfs does fix this but I'd like to keep the filter on, any suggestions?

And I feel like this is a lvm bug not really specific to PVE, but since I encountered this on a PVE8 system, I feel like I should probably ask here.

BTW I installed PVE on debian so the lv name is not pve_root.
 
I changed the filter to:
Code:
global_filter=["r|WDC|", "r|TOSHIBA|", "r|/dev/zd.*|", "r|/dev/mapper/.*|"]
then it boots without issue, so this is a viable workaround. But I guess that's still a bug in lvm?