Public bug reported: 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 passed through 'tr' which replaces all spaces with ^ to mark fields: LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`" 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 ** Affects: grub2 (Ubuntu) Importance: Undecided Status: New ** Description changed: 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 passed through 'tr' which replaces all spaces with ^ to mark fields: LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`" 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 + 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 + 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 /boot/grub/grub.cfg | grep 'acpi_osi' | wc -l + 12 ** Description changed: 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 passed through 'tr' which replaces all spaces with ^ to mark fields: LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`" 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 /boot/grub/grub.cfg | grep 'acpi_osi' | wc -l - 12 + $ grep "menuentry 'acpi_osi=" /boot/grub/grub.cfg | wc -l + 9 ** Description changed: 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 passed through 'tr' which replaces all spaces with ^ to mark fields: - LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol} 2> - /dev/null | tr ' ' '^' | paste -s -d ' '`" + LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | + paste -s -d ' '`" 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 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1737604 Title: 30_os_prober: LINUXPROBED embedded spaces in kernel parameters generates false menuentry's To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1737604/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs