[linux-lvm] dmsetup says "Device does not exist", though it exists
zkabelac at redhat.com
Wed Aug 14 11:07:45 UTC 2019
Dne 14. 08. 19 v 9:22 Christoph Pleger napsal(a):
>>> I have a volume group with 20 logical volumes. Only the last one of these
>>> volumes has a strange problem with dmsetup, shown by these commands and
>>> output on the command line:
>>> root at host:/home/linux# /sbin/dmsetup info -c -o name --noheadings /dev/vg/lv20
>>> Device does not exist.
>>> Command failed
>>> root at host:/home/linux# lvdisplay -c /dev/vg/lv20
>>> root at host:/home/linux# mount /dev/vg/lv20 /mnt
>>> root at host:/home/linux# ls /mnt
>>> lost+found data1 data2
>>> That is, dmsetup says "Device does not exist" about a logical volume,
>>> though the volume exists and is operating normally. What is the possible
>>> problem here?
>> Have you tried strace ?
> I attached the relevant lines of the strace output. I am really wondering what
> is happening there:
> 1. A stat() on /dev/mapper/lv20 is performed, though I requested
> 2. A stat() on/dev/mapper/vg-lv15-real is performed. What does this have to do
> with lv20 (after I wrote what is at number 3, I know)
> 3. I do not even know where /dev/mapper/vg-lv15-real is coming from. I created
> a logical volume named lv15, but none named lv15-real. And really, 'ls -l
> /dev/vg/' does not list lv15-real, but 'ls -l /dev/mapper' lists vg-lv15-real
> and shows that is has the same link target /dev/dm-18 as lv20.
> 4. Though stat() found /dev/mapper/vg-lv15-real, ioctl() says that this device
> does not exist.
>> Kernel version, lvm version, distribution... ?
> Kernel Debian amd64 4.9.168-1+deb9u2, LVM version 2.03.02(2), Debian 9 (stretch)
So are you actually trying to access not a 'normal' LV - but an LV under
Debian is using it's own modified udev-rules - so I can't really tell without
exactly looking what sort of rules are running there.
You can try to provide 'lvchange -ayvvvv' debug trace when you activate such
LV and you can enable verification of udev rule processing with lvm.conf option:
verify_udev_operations = 1
That should 'create' missing links if they were not created by udev.
NOTE: this is a cruel hack - nothing I'd advice to use normally - since udev
rules should handle this case normally - but it can give us some hints,
where the issue could be buried-in.
So try above steps and check if the LV links are in /dev/vgname dir.
More information about the linux-lvm