[linux-lvm] Re: Problem with vgscan "only found 626 of 625 LEs for LV"
Tomas Edwardsson
tommi at tommi.org
Wed Sep 12 09:40:47 UTC 2001
Well, problem number 1. vgscan fails and therefore vgchange does also.
]# ll -d /dev/vg00
ls: /dev/vg00: No such file or directory
I ran the rest of the commands just the same since we have a backup.
After I did that it seems all LV and LE info has evaporated.
Current pvdata is http://vefur.hp.is/lvm/pvdata-hdd1-new.txt
Thanks, Tommi
On Tue, Sep 11, 2001 at 10:49:34AM -0600, Andreas Dilger wrote:
> On Sep 11, 2001 11:30 +0000, Tomas Edwardsson wrote:
> > I had already tried the vgcfgrestore, it didn't seem to help but I discovered
> > that the UUID for one of my PVs was missing so I ran the uuid-fixer and now
> > they all have UUIDs again (don't know if that is relevant).
> >
> > I have run the pvdata on all my PVs although I think the right one is the
> > following file run with pvdata -avP /dev/hdd1:
> > http://vefur.hp.is/lvm/pvdata-hdd1.txt
>
> Yes, this clearly shows that lvol1 has 625 LEs (in the LV data), but it
> has PE 0-625 from that PV assigned to it (total of 626 PEs). I don't
> know which one is correct, nor how it got that way. If you have a
> filesystem on that LV, you could find out how big the fs is to figure
> out which value needs fixing. For ext2, you can do:
>
> dumpe2fs -h /dev/vg00/lvol1
>
> and figure out if it is 2500MB (625 LE) or 2504MB (626LE). Then (the fun
> part) you need to go and edit either the LV table or the PE table to have
> the right numbers in it. I'm guessing the LV table is wrong (and even if
> not, it is safer to add the PE to the end than to truncate your filesystem).
>
> dd if=/dev/hdd1 of=/hdd.sav bs=1024 count=188 # backup LVM metadata
> dd if=/dev/hdd1 of=/lv1.dat bs=1 skip=43008 count=328 # get lvol1 metadata
> od -Ad -tx1 /lv1.dat # show lvol1 metadata
>
> # 625 = 0x271 which you should see at offset 300, 301 of the LV struct
> # 626 = 0x272 = 0x02 0x72, 0x72 = "r" in ASCII, so we write this into LV
> echo "r" | dd of=/lv1.dat count=1 seek=300 # write 0x72 to LE count
>
> od -Ad -tx1 /lv1.dat # show lvol1 metadata
> # we should now see 0x72 0x02 0x00 0x00 at offset 300 of the LV metadata
>
> dd if=/lv1.dat of=/dev/hdd1 bs=1 seek=43008 # write LV meta to disk
> pvdata -avP /dev/hdd1 # verify all is well
> vgscan # should be OK now
>
> Cheers, Andreas
> --
> Andreas Dilger \ "If a man ate a pound of pasta and a pound of antipasto,
> \ would they cancel out, leaving him still hungry?"
> http://www-mddsp.enel.ucalgary.ca/People/adilger/ -- Dogbert
>
>
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at sistina.com
> http://lists.sistina.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://www.sistina.com/lvm/Pages/howto.html
More information about the linux-lvm
mailing list