[lvm-devel] lvrename changes link to direct /dev/dm-X

Zdenek Kabelac zkabelac at redhat.com
Fri Aug 30 09:09:20 UTC 2013


Dne 29.8.2013 11:54, Oliver Rath napsal(a):
> Hi list,
>
> I was able to reproduze the renaming issue on a gentoo-machine with lvm-git:
>
> heimserver ~ # lvcreate --name myoriginal -V 10M -T dmivg/winthinpool
>    Rounding up size to full physical extent 12,00 MiB
>    Logical volume "myoriginal" created
> heimserver ~ # ls -l /dev/dmivg/myoriginal
> lrwxrwxrwx 1 root root 28 29. Aug 11:46 /dev/dmivg/myoriginal ->
> /dev/mapper/dmivg-myoriginal

So Gentoo has broken udev rules as well probably.
Links created by proper udev rules should be pointing directly to /dev/dm-x


Have you been compiling lvm2 yourself ?

Have you configured lvm2 package with --enable-udev_rules?
(it's not enabled by default)

Isn't there any udev falback running in this system ?

Isn't device activated without udev?

In pre-udev  era all dm nodes have been created in /dev/mapper subdir.
So lvm created links pointing to this place.

With  udev  all dm nodes are by default created as  /dev/dm-xx and all
the links in /dev/mapper & /dev/vgname/lvname  are pointing directly
to this node - but that require proper udev rules and properly configured 
system -  I'd recommend  to test with i.e. Fedora.

Unfortunately systems like Debian are using non-upstream udev rules
from maintainer which are reinventing them based on some unknown rules to us...


> heimserver ~ # lvrename /dev/dmivg/myoriginal myrenamedoriginal
>    Renamed "myoriginal" to "myrenamedoriginal" in volume group "dmivg"
> heimserver ~ # ls -l /dev/dmivg/myrenamedoriginal
> lrwxrwxrwx 1 root root 8 29. Aug 11:47 /dev/dmivg/myrenamedoriginal ->
> ../dm-13
> heimserver ~ # ls -l /dev/mapper/dmivg-myrenamedoriginal
> lrwxrwxrwx 1 root root 8 29. Aug 11:47
> /dev/mapper/dmivg-myrenamedoriginal -> ../dm-13
>
>
> It seems, that after renaming the link points directly to the /dev/dm-X
> device, before that he linked to the link in /dev/mapper/..

Well as long as the point to the proper device at the end - it's at least 
usable - but it's clear the udev dir has been probably touched by fallback 
rules (which are there for cases, udev is failing to do proper thing)


> root at asterisk:~# ls -l /dev/mapper/dmivg-myoriginal
> lrwxrwxrwx 1 root root 8 Aug 29 11:50 /dev/mapper/dmivg-myoriginal ->
> ../dm-55
> root at asterisk:~# lvrename /dev/dmivg/myoriginal myrenamedoriginal
>    Renamed "myoriginal" to "myrenamedoriginal" in volume group "dmivg"
>    Unable to rename device node from 'dmivg-myoriginal' to

Udev rules are not doing what they supposed to do....

> 'dmivg-myrenamedoriginal'
> root at asterisk:~# ls -l /dev/dmivg/myrenamedoriginal
> lrwxrwxrwx 1 root root 35 Aug 29 11:51 /dev/dmivg/myrenamedoriginal ->
> /dev/mapper/dmivg-myrenamedoriginal
> root at asterisk:~# ls -l /dev/mapper/dmivg-myrenamedoriginal
> brw------- 1 root root 252, 55 Aug 29 11:51
> /dev/mapper/dmivg-myrenamedoriginal
> root at asterisk:~#
>
> Here the device twice: in /dev/dm-55 _and_ in
> /dev/mapper/dmivg-myrenamedoriginal
>
> @Zdenek: if you need a -vvvv log, please tell me.

If you have been compiling lvm2 yourself - you could replace upstream rules 
with those placed in Debian.

I guess the only real solution here would be to build Debian package by some 
lvm2 team member since the package in Debian is probably broken.

Zdenek




More information about the lvm-devel mailing list