Bug#586056: grub-pc: update-grub fails with "Invalid parameter"

root kevin-dated-1281836122.4ac090 at omegacrash.net
Wed Jun 16 02:01:58 UTC 2010


Package: grub-pc
Version: 1.98+20100614-1
Severity: grave
Justification: renders package unusable

The latest grub introduces a change to the argument processing for
grub-mkconfig. Now, rather than ignoring unknown arguments, it produces
an error.

This is a problem because the kernel image postinst script invokes the
postinst_hook (defined in /etc/kernel-img.conf to be update-grub, a
wrapper for grub-mkconfig) with arguments that appear to be the kernel
version and path. These arguments were previously ignored, but now
produce an error.

Because of this, kernel image configuration will always fail. Here's an
example (yes this is a sidux kernel, but I don't think the postinst is
significantly different in this regard):

$ sudo dpkg --configure -a -D3
Setting up linux-image-2.6.34-0.slh.9-sidux-686 (2.6.34-10) ...
D000002: fork/exec /var/lib/dpkg/info/linux-image-2.6.34-0.slh.9-sidux-686.postinst ( configure  )
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.34-0.slh.9-sidux-686
initrd.img(/boot/initrd.img-2.6.34-0.slh.9-sidux-686
) points to /boot/initrd.img-2.6.34-0.slh.9-sidux-686
 (/boot/initrd.img-2.6.34-0.slh.9-sidux-686) -- doing nothing at /var/lib/dpkg/info/linux-image-2.6.34-0.slh.9-sidux-686.postinst line 400.
vmlinuz(/boot/vmlinuz-2.6.34-0.slh.9-sidux-686
) points to /boot/vmlinuz-2.6.34-0.slh.9-sidux-686
 (/boot/vmlinuz-2.6.34-0.slh.9-sidux-686) -- doing nothing at /var/lib/dpkg/info/linux-image-2.6.34-0.slh.9-sidux-686.postinst line 400.
Running /usr/sbin/update-grub.
Invalid parameter, 2.6.34-0.slh.9-sidux-686
User postinst hook script [/usr/sbin/update-grub] exited with value 1
dpkg: error processing linux-image-2.6.34-0.slh.9-sidux-686 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of linux-image-2.6-sidux-686:
 linux-image-2.6-sidux-686 depends on linux-image-2.6.34-0.slh.9-sidux-686 (= 2.6.34-10); however:
  Package linux-image-2.6.34-0.slh.9-sidux-686 is not configured yet.
dpkg: error processing linux-image-2.6-sidux-686 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-2.6.34-0.slh.9-sidux-686
 linux-image-2.6-sidux-686

A simple way to fix this is to remove the "$@" in
/usr/sbin/update-grub. Making this change allowed me to configure the
kernel packages.

-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/disk/by-uuid/20dc7d4f-4200-40bc-9518-fdcc28953091 / ext3 rw,noatime,errors=remount-ro,data=writeback 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0) /dev/sda
*********************** END /boot/grub/device.map

*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
fi
if terminal_output gfxterm ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_output
  terminal gfxterm
fi
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
insmod png
if background_image /boot/grub/moreblue-orbit-grub.png ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.9-sidux-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.9-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.9-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro vga=791 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.9-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.9-sidux-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.9-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.9-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro single vga=791
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.9-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.8-sidux-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.8-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.8-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro vga=791 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.8-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.8-sidux-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.8-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.8-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro single vga=791
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.8-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.7-sidux-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.7-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.7-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro vga=791 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.7-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.7-sidux-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.7-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.7-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro single vga=791
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.7-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.5-sidux-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.5-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.5-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro vga=791 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.5-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.34-0.slh.5-sidux-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.34-0.slh.5-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.34-0.slh.5-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro single vga=791
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.34-0.slh.5-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-2.slh.4-sidux-686' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.32-2.slh.4-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.32-2.slh.4-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro vga=791 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-2.slh.4-sidux-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-2.slh.4-sidux-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	echo	'Loading Linux 2.6.32-2.slh.4-sidux-686 ...'
	linux	/boot/vmlinuz-2.6.32-2.slh.4-sidux-686 root=UUID=20dc7d4f-4200-40bc-9518-fdcc28953091 ro single vga=791
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-2.slh.4-sidux-686
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	multiboot	/boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set 20dc7d4f-4200-40bc-9518-fdcc28953091
	multiboot	/boot/memtest86+_multiboot.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
*********************** END /boot/grub/grub.cfg

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.34-0.slh.5-sidux-686 (SMP w/1 CPU core; PREEMPT)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages grub-pc depends on:
ii  debconf [debconf-2.0]    1.5.32          Debian configuration management sy
ii  grub-common              1.98+20100614-1 GRand Unified Bootloader, version 
ii  libc6                    2.11.2-1        Embedded GNU C Library: Shared lib
ii  libdevmapper1.02.1       2:1.02.48-1     The Linux Kernel Device Mapper use
ii  ucf                      3.0025          Update Configuration File: preserv

grub-pc recommends no packages.

Versions of packages grub-pc suggests:
ii  desktop-base                  5.0.5      common files for the Debian Deskto

-- debconf information:
  grub2/kfreebsd_cmdline:
* grub2/linux_cmdline: vga=791
  grub-pc/chainload_from_menu.lst: true
  grub-pc/kopt_extracted: false
* grub-pc/install_devices: /dev/sda
  grub-pc/postrm_purge_boot_grub: false
  grub2/kfreebsd_cmdline_default: quiet
  grub2/linux_cmdline_default: quiet





More information about the Pkg-grub-devel mailing list