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