Bug#678954: lvm2: Inconsistencies between lvm.conf and udev rules lead to hide VG, and worse

bilibop project quidame at poivron.org
Mon Jun 25 10:47:11 UTC 2012


Package: lvm2
Version: 2.02.95-4
Severity: important

Dear Maintainer,

Here is the partition scheme of my system:

$ lsblk --noheadings -o TYPE,NAME,MOUNTPOINT /dev/sdb
disk  sdb
part  └─sdb1
lvm     ├─usb-boot (dm-0)  /boot
lvm     └─usb-luks (dm-1)
crypt     └─luks (dm-2)
lvm         ├─luks-root (dm-3) /
lvm         └─luks-home (dm-4) /home

It worked fine, but recently, and because several other drives using LVM can be
plugged on the same computer and I don't want to automatically activate them
when my system boots, I have modified the 'filter' assignment in
/etc/lvm/lvm.conf.
Knowing that:
$ ls -l /dev/disk/by-id | awk '/\/sdb1$/ {print $9}'
usb-Storage_Media_07BB103100182DD2-0:0-part1

my filter is:
filter = [ "a|^/dev/disk/by-id/usb-Storage_Media_07BB103100182DD2-0:0-part1$|",
"a|^/dev/mapper/luks$|", "r|.*|" ]

But:
# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "usb" using metadata type lvm2

The "luks" VG is not found !

In lvm.conf, only filter has been modified, and in the 'devices' section, I
have this default:
obtain_device_list_from_udev = 1

But:
$ /sbin/udevadm info --query symlink --name dm-0

$ /sbin/udevadm info --query symlink --name dm-1

$ /sbin/udevadm info --query symlink --name dm-2

$ /sbin/udevadm info --query symlink --name dm-3
root
$ /sbin/udevadm info --query symlink --name dm-4


The symlinks exist (at least in /dev/mapper) but are no more managed by udev !
It seems they have been created from the initramfs environment.
After what, when udev runs again from the system environment, some rules I
don't understand make those symlinks no more managed by udev, and unusable by
LVM tools !

In /lib/udev/rules.d/60-persistent-storage-dm.rules:
ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="persistent_storage_dm_end"

In /lib/udev/rules.d/60-persistent-storage-lvm.rules:
ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1",
GOTO="persistent_storage_lvm_end"

What about the two previous rules ?
What is the need to prevent creation of symlinks by udev the second time it
runs ?

After 'update-initramfs -u', I have to boot the system manually from the
initramfs shell, because
/conf/conf.d/cryptroot don't exist, because /dev/mapper/luks-root is not seen
as a Logical Volume,
and the 'cryptroot' initramfs hook fails. But I'm not sure I have to report a
bug against the cryptsetup
package for that.

When the responsible files 60-persistent-storage-{dm,lvm}.rules are copied in
/etc/udev/rules.d
and then the above rules are just commented, all works fine (symlinks,
cryptroot and other expected
behaviours). But I suppose that there can be side effects concerning temporary
nodes. What about ?

Cheers,
quidame



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-proposed-updates')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-2-486
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages lvm2 depends on:
ii  dmsetup                   2:1.02.74-4
ii  initscripts               2.88dsf-22.1
ii  libc6                     2.13-33
ii  libdevmapper-event1.02.1  2:1.02.74-4
ii  libdevmapper1.02.1        2:1.02.74-4
ii  libreadline5              5.2-11
ii  libudev0                  175-3.1
ii  lsb-base                  4.1+Debian6

lvm2 recommends no packages.

lvm2 suggests no packages.

-- Configuration Files:
/etc/lvm/lvm.conf changed [not included]

-- no debconf information





More information about the pkg-lvm-maintainers mailing list