Bug#318706: Grub breaks at auto-kernel update with splashscreen

Uwe Dippel udippel at gmail.com
Sun Jul 17 07:19:30 UTC 2005


Package: grub
$ uname -a
Linux mylinux 2.6.8-2-686 #1 Thu May 19 17:53:30 JST 2005 i686 GNU/Linux
version: grub-0.95+cvs20040624-17


I had reported about a messed up display; no grub menu showing; etc
about a year ago to the debian-list
http://lists.debian.org/debian-user/2004/11/msg02892.html

Now I have the culprit: It is the kernel updater of grub.
Here is the proof:

This is menu.lst after fresh install of Sarge31r0; with some changes:
add Debian splash screen; add OpenBSD.
I have *not* touched the 'inner part' for autoupdates !


# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from
0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default
entry
# is the entry saved with the command 'savedefault'.
default         0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the
default entry
# (normally the first entry defined).
timeout         5

# Pretty colours
#color cyan/blue white/blue
# commented, because we have a SPLASH screen:
splashimage=(hd0,5)/grub/splash.xpm.gz

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive
editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title         Windows 95/98/NT/2000
# root          (hd0,0)
# makeactive
# chainloader   +1
#
# title         Linux
# root          (hd0,1)
# kernel        /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specifiv kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
# kopt=root=/dev/hda7 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,5)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery mode) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## ## End Default Options ##

title           Debian GNU/Linux, kernel 2.6.8-2-386
root            (hd0,5)
kernel          /vmlinuz-2.6.8-2-386 root=/dev/hda7 ro
initrd          /initrd.img-2.6.8-2-386
savedefault
boot

title           Debian GNU/Linux, kernel 2.6.8-2-386 (recovery mode)
root            (hd0,5)
kernel          /vmlinuz-2.6.8-2-386 root=/dev/hda7 ro single
initrd          /initrd.img-2.6.8-2-386
savedefault
boot

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.

title
root

title           Other Operating Systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda2
title           Windozeexpee
root            (hd0,1)
savedefault
makeactive
chainloader     +1

# This entry added by Uwe for a manual install of OpenBSD

title           OpenBSD 3.7
root            (hd0,2)
makeactive
chainloader     +1

#
# done - UD



When I added the 686-kernel, the menu.lst looked identical, except the
auto-updater had added the following:

@@ -93,6 +93,22 @@

 ## ## End Default Options ##

+splashimage=(hd0,5)/boot/grub/splash.xpm.gz
+
+title          Debian GNU/Linux, kernel 2.6.8-2-686
+root           (hd0,5)
+kernel         /vmlinuz-2.6.8-2-686 root=/dev/hda7 ro
+initrd         /initrd.img-2.6.8-2-686
+savedefault
+boot
+
+title          Debian GNU/Linux, kernel 2.6.8-2-686 (recovery mode)
+root           (hd0,5)
+kernel         /vmlinuz-2.6.8-2-686 root=/dev/hda7 ro single
+initrd         /initrd.img-2.6.8-2-686
+savedefault
+boot
+
 title          Debian GNU/Linux, kernel 2.6.8-2-386
 root           (hd0,5)
 kernel         /vmlinuz-2.6.8-2-386 root=/dev/hda7 ro


 From high up, it had taken the splashimage and added it here once again!

It only required me using vi and remove that second splashimage and
everything was fine.
It seems any splashimage in between here will mess up the boot display 
completely.

Let me refer to bugs on the splashimage, which might be related:

280086
261936
272979
283308

The autoupdater of the splash into grub is broken and messes up the boot screen.
Here, as soon as the splash gets directly atop the kernel images it messes up the screen and - worst of all - supresses the menu.
Maybe one of those 'patches' to auto-include the splash screen are at fault ?

Uwe






More information about the Pkg-grub-devel mailing list