Bug#980782: Info received (Bug#980782: Acknowledgement (os-prober: linux-boot-prober returning "root=/dev/dm-X" line instead of expected "root=UUID=[UUID128]))

2021-01-21 Thread Nicholas D Steeves
Mirko Vogt  writes:

> Looking at /usr/share/initramfs-tools/scripts/local-top/lvm2 more 
> closely, passing a UUID also wouldn't trigger a `vgchange -ay` here.
> But a path like /dev/mapper/X would.
> So maybe the question is rather: how to make os-prober return a 
> "root=/dev/mapper/X" line instead of one containing a UUID(?)

The first thing that comes to mind is:

For a given UUID
  run blkid, and exclude all lines that do not match the UUID
  count lines and error if there are duplicates
(it probably already does this, and I think the risk of collisions
 most significant for short UUIDs like FAT has)
  as part of that regex, check for ^/dev/mapper, with that anchor
  use /dev/mapper/X for the truly unique UUID


Cheers,
Nicholas


signature.asc
Description: PGP signature


Bug#980782: Info received (Bug#980782: Acknowledgement (os-prober: linux-boot-prober returning "root=/dev/dm-X" line instead of expected "root=UUID=[UUID128]))

2021-01-21 Thread Mirko Vogt
Looking at /usr/share/initramfs-tools/scripts/local-top/lvm2 more 
closely, passing a UUID also wouldn't trigger a `vgchange -ay` here.

But a path like /dev/mapper/X would.
So maybe the question is rather: how to make os-prober return a 
"root=/dev/mapper/X" line instead of one containing a UUID(?)




Bug#980782: Acknowledgement (os-prober: linux-boot-prober returning "root=/dev/dm-X" line instead of expected "root=UUID=[UUID128])

2021-01-21 Thread Mirko Vogt
Just adding, this isn't only a feature request but results in 
non-bootable systems.
If one of the os-probe'd systems e.g. is also a Debian, it will drop 
into an initramfs due to not finding the root device.
This is due to - within the initramfs - the VGs as part of the the LVM 
system only get activated by certain naming schemes 
("/usr/share/initramfs-tools/scripts/local-top/lvm2").
It tries ti figure out whether the rootfs resides on a LVM and if it 
thinks it doesn't, the respective VG won't be activated, resulting in 
the passed /dev/dm-X block device not being available.