grub-probe takes snapshot LV instead of origin
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
grub2 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Triaged
|
Medium
|
Unassigned |
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/
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/
The most apparent reason could be that obviously the UUIDs of the origin and the snapshot are the same.
root@thinkpad:~# blkid /dev/thinkvg/
/dev/thinkvg/
/dev/thinkvg/
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/
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/
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.
Changed in linux (Ubuntu): | |
status: | Incomplete → Confirmed |
Changed in linux (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in grub2 (Ubuntu): | |
status: | New → Invalid |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
Grub does ignore snapshots... what does cat /proc/mounts say?