Bug#305383: grub: kopt arguments not properly parsed

Eric Sproul Eric Sproul <esproul@ntelos.net>, 305383@bugs.debian.org
Tue, 19 Apr 2005 15:21:10 -0400


Package: grub
Version: 0.95+cvs20040624-16
Severity: critical
Justification: breaks the whole system

After upgrading grub, update-grub generated an unusable menu.lst file.
My kopt= argument was not parsed, so the root parameter was not passed
to any of the automagic kernels.  My system boots off the MBR of an IDE
drive (hd0 to grub), but the root filesystem is on a SCSI drive (hd1).

My kopt lines were:
# kopt=root=/dev/sda1 ro
# kopt_2_4=hdc=ide-scsi

It seemed that update-grub was skipping the kopt= line and only applying
kopt_2_4 options.  Only after I copied the root parameter into the
kopt_2_4 line did the correct options get passed, e.g.

# kopt=root=/dev/sda1 ro
# kopt_2_4=root=/dev/sda1 ro hdc=ide-scsi

I set my options this way because I was going back and forth between 2.4
and 2.6 kernels.  I am currently only using a 2.4 kernel, but it was my
understanding that kopt= arguments were passed to all kernels, with
kopt_x_x= going only to kernels with matching major/minor versions.

Fortunately I had a separate (non-automagic) kernel stanza that still
had the proper root parameter, so I was able to fix the issue, but a
system with only automagic kernel stanzas would have been stuck.

-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.4.27-2-686-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages grub depends on:
ii  libc6                       2.3.2.ds1-21 GNU C Library: Shared libraries an
ii  libncurses5                 5.4-4        Shared libraries for terminal hand

-- no debconf information