[Bug 1199731] [NEW] config script thinks grub.d contains all variables

Harald Sitter sitter.harald at gmail.com
Wed Jul 10 10:52:55 UTC 2013


Public bug reported:

TL;DR: grub maintainer scripts endup writing an empty linux_cmdline if
/etc/default/grub.d/* is present from another package.

At least grub-pc's config script thinks that the presence of /etc/default/grub.d/* means that GRUB_CMDLINE_* is defined in there and tries to read it from grub.d/ for usage in a *newly* created config. However in Kubuntu we have one file in grub.d/ and that file only sets GRUB_DISTRIBUTOR.
The config script will - when present - try to read deafult/grub and grub.d/* and then carry the read values into the new deafult/grub. It does however not check whether the read values are null/nil/undefined such that it ends up writing an empty cmdline into default/grub by default.

--- code ----

for x in /etc/default/grub /etc/default/grub.d/*.cfg ; do
  if [ -e "$x" ]; then
    DEFAULT_FOUND="yes"
    . "$x"
  fi
done

if [ "$DEFAULT_FOUND" = "yes" ]; then
  db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX"
  db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT"

--- code ----

In combination with an issue in ubiquity/d-i which also prevents a
default cmdline by default. Put together these issues cause bug 1171099
(no plymouth after installation in kubuntu).

** Affects: grub2 (Ubuntu)
     Importance: Low
         Status: Triaged


** Tags: kubuntu

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1199731

Title:
  config script thinks grub.d contains all variables

Status in “grub2” package in Ubuntu:
  Triaged

Bug description:
  TL;DR: grub maintainer scripts endup writing an empty linux_cmdline if
  /etc/default/grub.d/* is present from another package.

  At least grub-pc's config script thinks that the presence of /etc/default/grub.d/* means that GRUB_CMDLINE_* is defined in there and tries to read it from grub.d/ for usage in a *newly* created config. However in Kubuntu we have one file in grub.d/ and that file only sets GRUB_DISTRIBUTOR.
  The config script will - when present - try to read deafult/grub and grub.d/* and then carry the read values into the new deafult/grub. It does however not check whether the read values are null/nil/undefined such that it ends up writing an empty cmdline into default/grub by default.

  --- code ----

  for x in /etc/default/grub /etc/default/grub.d/*.cfg ; do
    if [ -e "$x" ]; then
      DEFAULT_FOUND="yes"
      . "$x"
    fi
  done

  if [ "$DEFAULT_FOUND" = "yes" ]; then
    db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX"
    db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT"

  --- code ----

  In combination with an issue in ubiquity/d-i which also prevents a
  default cmdline by default. Put together these issues cause bug
  1171099 (no plymouth after installation in kubuntu).

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1199731/+subscriptions




More information about the foundations-bugs mailing list