[linux-lvm] udev/10-dm.rules.in: unexpectedly skipping device?

Michael Stapelberg michael+lvm at stapelberg.ch
Fri Apr 17 07:42:22 UTC 2020


Hey,

I’m starting to use LVM (+LUKS) on a computer of mine, but ran into
trouble getting it to work.

The issue I’m running into is that systemd boot hangs until the
default unit timeout elapses. This is because the cryptroot device is
not found, which in turn is because udev doesn’t create the symlinks
(e.g. in /dev/disk/by-uuid). udevadm info shows:

# udevadm info -p /sys/block/dm-0
P: /devices/virtual/block/dm-0
N: dm-0
L: 0
E: DEVPATH=/devices/virtual/block/dm-0
E: DEVNAME=/dev/dm-0
E: DEVTYPE=disk
E: MAJOR=254
E: MINOR=0
E: SUBSYSTEM=block
E: USEC_INITIALIZED=6522555
E: DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG=1
E: DM_UDEV_DISABLE_DISK_RULES_FLAG=1
E: DM_UDEV_DISABLE_OTHER_RULES_FLAG=1
E: SYSTEMD_READY=0
E: TAGS=:systemd:

I pinpointed this result to udev rule
https://sourceware.org/git/?p=lvm2.git;a=blob;f=udev/10-dm.rules.in;hb=ecae76c713bd4fa6c9d8f2a2c990625e4f38b504#l87,
i.e.:
ENV{DM_UDEV_RULES_VSN}!="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1",
GOTO="dm_disable"

I assume I’m running into this rule because I’m using a custom initrd
which does not run systemd nor udev. Instead, my initrd is directly
calling vgchange -ay and vgmknodes.

I understand that this is not a common setup, but booting without
systemd/udev in the initrd should be supported, no?

I’m not sure where DM_UDEV_PRIMARY_SOURCE_FLAG is supposed to be set,
or why it isn’t set in my scenario. Do you have any ideas regarding
what I could check?

Thanks in advance,
Best regards,
Michael

PS: As a workaround, I’m just commenting out that rule. Does that have
any negative consequences?





More information about the linux-lvm mailing list