[linux-lvm] Failed to update old PV extension headers in VG

Henk Kraal h.kraal at exonet.nl
Fri Jul 17 07:04:32 UTC 2020


Hi all,

I’ve run into an issue when trying to activate an LV which resides on a read-only loop device. When I run lvchange -a y <LV Path> I get the following error:

  Error writing device /dev/loop0p5 at 4096 length 512.
  bcache_invalidate: block (4, 0) still dirty
  Failed to write mda header to /dev/loop0p5 fd -1
  Failed to update old PV extension headers in VG recursor02-01-vg.
  Volume group "recursor02-01-vg" not found
  Cannot process volume group recursor02-01-vg

I’ve observed this issue when using LVM version 2.03.02 (Debian 10) to activate the LV. The volume I’m trying to mount comes from a host which has LVM version 2.02.168 which explains why headers are attempted to be updated.


The lvchange commando is part of a file restore procedure. The backup solution we are using (Xen Orchestra) creates chained .vhd files but is unable to access LVM volumes which reside across multiple PV’s. As restoring a full VM is often not required a solution was found in using vhdimount and losetup to access the data and get the required files from the backups.

# vhdimount 20200714T234001Z.vhd /mnt/20200714T234001Z
# losetup -P -r -f /mnt/20200714T234001Z/vhdi1
# lsblk /dev/loop0
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0       7:0    0   42G  1 loop
|-loop0p1 259:0    0  243M  1 part
|-loop0p2 259:1    0    1K  1 part
`-loop0p5 259:2    0 41.8G  1 part


Given the error I would guess the source of this issue might be caused by the following commit: https://sourceware.org/git/?p=lvm2.git;a=commit;h=070c0d31ab3847240081e7593f959b03e716923d


Is there a way I can prevent the update of the extension headers when activating the LV?

With kind regards,

Henk






More information about the linux-lvm mailing list