30_os_prober: LINUXPROBED embedded spaces in kernel parameters generates false menuentry's

Bug #1737604 reported by TJ
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
grub2 (Ubuntu)
New
Undecided
Unassigned
os-prober (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

With multiple Linux OS installs on a single block device additional false menuentry's for the 'foreign' OS built by linux-boot-prober are generated when there are double-quoted kernel command-line options present.

When a kernel command-line option contains an embedded space such as this example from /boot/grub/grub.cfg:

linux /vmlinuz-4.13.0-19-lowlatency root=/dev/mapper/VG_OS-ubuntu_16.04_rootfs ro nopat pci=use_crs,realloc,assign-busses,pcie_scan_all acpi_osi=! "acpi_osi=Windows 2006" splash $vt_handoff

The result from calling linux-boot-prober is multiple entries with the name of the embedded-space parameter:

# linux-boot-prober /dev/sdb3
/dev/sdb3:/dev/sdb3:Ubuntu:/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 4.13.0-19-lowlatency:/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 4.13.0-19-lowlatency (recovery mode):/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 3.16.0-031600-lowlatency:/boot/vmlinuz-3.16.0-031600-lowlatency:/boot/initrd.img-3.16.0-031600-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 3.16.0-031600-lowlatency (recovery mode):/boot/vmlinuz-3.16.0-031600-lowlatency:/boot/initrd.img-3.16.0-031600-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 3.15.10-031510-lowlatency:/boot/vmlinuz-3.15.10-031510-lowlatency:/boot/initrd.img-3.15.10-031510-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:Ubuntu, with Linux 3.15.10-031510-lowlatency (recovery mode):/boot/vmlinuz-3.15.10-031510-lowlatency:/boot/initrd.img-3.15.10-031510-lowlatency:root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.16.0-031600-lowlatency:/boot/initrd.img-3.16.0-031600-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.15.10-031510-lowlatency:/boot/initrd.img-3.15.10-031510-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.16.0-031600-lowlatency:/boot/initrd.img-3.16.0-031600-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.15.10-031510-lowlatency:/boot/initrd.img-3.15.10-031510-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-4.13.0-19-lowlatency:/boot/initrd.img-4.13.0-19-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.16.0-031600-lowlatency:/boot/initrd.img-3.16.0-031600-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc
/dev/sdb3:/dev/sdb3:acpi_osi=Windows 2006:/boot/vmlinuz-3.15.10-031510-lowlatency:/boot/initrd.img-3.15.10-031510-lowlatency:root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc

which results in:

menuentry 'Ubuntu, with Linux 4.13.0-19-lowlatency (recovery mode) (on /dev/sdb3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.13.0-19-lowlatency-root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc-5a7fa7e3-941d-4b88-a948-d736b5fdc93f' {

    linux /boot/vmlinuz-4.13.0-19-lowlatency root=UUID=5a7fa7e3-941d-4b88-a948-d736b5fdc93f ro single
nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc

... plus several false menuentry's added with the name set to the embedded-space option of the form:

menuentry 'acpi_osi=Windows 2006 (on /dev/sdb3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.13.0-19-lowlatency-root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc-5a7fa7e3-941d-4b88-a948-d736b5fdc93f' {

    linux /boot/vmlinuz-4.13.0-19-lowlatency root=UUID=e0d25d21-b586-4611-8acc-637b1dca7fa8 ro single nomodeset acpi_osi=! "acpi_osi=Windows 2006" pci=assign-busses,pcie_scan_all,realloc

$ grep "menuentry 'acpi_osi=" /boot/grub/grub.cfg | wc -l
9

Tags: patch
TJ (tj)
description: updated
description: updated
description: updated
TJ (tj)
description: updated
Revision history for this message
TJ (tj) wrote :

This proposed patch avoids the delimiter confusion and seems to address the other 'gotchyas' relating to multiple delimiters mentioned in the code comments.

Changed in os-prober (Ubuntu):
status: New → Confirmed
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "parse_grub_menu - avoid delimiter confusion" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
TJ (tj)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.