kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #90832
[Bug 1391429] Re: grub-probe takes snapshot LV instead of origin
I've built a system to reproduce the bug. You can download the image and
run it with KVM or other virtualization technology. Instructions are
straightforward – if you start the VM, you'll know what to do, and
you'll see what I was talking about.
http://undead.megabrutal.com/kvm-reproduce-1391429.img.xz
Download size: 113 MB; Unpacked image size: 2 GB.
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1391429
Title:
grub-probe takes snapshot LV instead of origin
Status in “grub2” package in Ubuntu:
New
Status in “linux” package in Ubuntu:
Confirmed
Bug description:
grub-probe takes the snapshot of my root LV as if it was the legitimate root device.
This is an issue because in any case an update-grub / grub-mkconfig runs, my GRUB config will be rewritten so that the system would boot from the snapshot. This is really undesirable.
root@thinkpad:~# mount | grep " / "
/dev/mapper/thinkvg-rootlv on / type btrfs (rw,subvol=@)
root@thinkpad:~# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
homelv thinkvg -wi-ao--- 64,00g
rootlv thinkvg owi-aos-- 16,00g
snap-rootlv thinkvg sri-a-s-- 16,00g rootlv 2,54
swap0 thinkvg -wi-ao--- 2,00g
swap1 thinkvg -wi-ao--- 2,00g
root@thinkpad:~# grub-probe --target=device /
/dev/mapper/thinkvg-snap--rootlv
The most apparent reason could be that obviously the UUIDs of the
origin and the snapshot are the same.
root@thinkpad:~# blkid /dev/thinkvg/*rootlv
/dev/thinkvg/rootlv: LABEL="SystemRoot" UUID="dd6904ff-d187-43a8-ae18-478283f29d68" UUID_SUB="80b3d748-51e0-4a51-a021-55005b0ec434" TYPE="btrfs"
/dev/thinkvg/snap-rootlv: LABEL="SystemRoot" UUID="dd6904ff-d187-43a8-ae18-478283f29d68" UUID_SUB="80b3d748-51e0-4a51-a021-55005b0ec434" TYPE="btrfs"
However, strangely, if I hide the snapshot by deleting nodes (as I
can't deactivate a snapshot without deactivating its origin too – lost
nodes will come back after reboot, or sometimes can be recovered with
"vgscan --mknodes"), grub-probe won't find any device:
root@thinkpad:~# rm /dev/thinkvg/snap-rootlv /dev/mapper/thinkvg-snap--rootlv /dev/dm-5
root@thinkpad:~# grub-probe --target=device /
grub-probe: error: cannot find a device for / (is /dev mounted?).
I'd expect grub-probe to find /dev/mapper/thinkvg-rootlv, and ignore
the snapshot.
For me, it serves as an evidence that grub-probe totally ignores LVM,
or at least makes no attempt to differentiate snapshots from origins,
while LV snapshots are easily recognized from their "s" flag.
The same thing happened when I manually cloned the root LV as "backup-
rootlv", though since it was created with simply dd-ing "rootlv" over,
the LVs were not related on LVM level, thus grub-probe legitimately
treated it as a stand-alone device that has the same file system as
the one being mounted.
Still, it would be best is grub-probe found the device that is
actually mounted, no matter what clones of the device exist. But at
least it should certainly ignore LVM snapshots.
I experienced this bug on 2 systems: on Trusty Tahr and on Utopic
Unicorn.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1391429/+subscriptions