On 17 Jul 2020, at 18:20, David Teigland <teigland@redhat.com> wrote:

On Fri, Jul 17, 2020 at 09:04:32AM +0200, Henk Kraal wrote:
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

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

I don't think there's a way to tell that version to skip the header
update.  A more recent verson of lvm should work, and let you use the PV
without updating the header.  It will not attempt updates from commands
which are not otherwise updating lvm metadata.
Dave

Hi Dave,

Thank you for confirming that skipping the header update probably isn’t possible as I expected. I just wanted to make sure I wasn’t going down a rabbit hole needlessly.

The older LVM headers which I’m dealing with are part of the OS of hundreds of virtual servers which I don’t control. My task is to make the data on the read-only PV accesable for retrieval. A parameter to skip the update would’t have been the best option but I guess I need figure out if I can place a (temporary) writeable layer on top of the device to work around this.

Off course I’m open to idea’s if they come to the table ;)

With kind regards,

Henk