Package: kexec-tools Version: 1:2.0.7-3 Severity: important Dear Maintainer,
When USE_GRUB_CONFIG is true, and GRUB is set as GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true the init script kexec-load tries to parse the selected kernel in GRUB menu and calculate the address from it. But the code doesn't seem to handle the case when the saved kernel is something like: $ cat /boot/grub/grubenv # GRUB Environment Block saved_entry=gnulinux-simple-aecbc534-4764-4560-90c1-b02edc56ea23 ################################################################ which is the case for stock Debian kernel. in get_grub_kernel() function, [ "$default" = '${saved_entry}' ] evaluates to true, so default=$(sed -ne 's/^saved_entry=//p' /boot/grub/grubenv) is run, and default is set to "gnulinux-simple- aecbc534-4764-4560-90c1-b02edc56ea23" when fed to "start_offset=$((default + 1))", it fails as: /etc/init.d/kexec-load: 48: /etc/init.d/kexec-load: Illegal number: gnulinux- simple-aecbc534-4764-4560-90c1-b02edc56ea23 I'm not sure if it's the right string but the parsing code is wrong, or the string is totaly wrong. I'm attaching the grub.cfg. -- System Information: Debian Release: jessie/sid APT prefers testing APT policy: (500, 'testing'), (2, 'unstable') Architecture: i386 (x86_64) Foreign Architectures: amd64 Kernel: Linux 3.14.19-lts (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages kexec-tools depends on: ii debconf [debconf-2.0] 1.5.53 ii libc6 2.19-11 kexec-tools recommends no packages. kexec-tools suggests no packages. -- Configuration Files: /etc/init.d/kexec-load changed [not included] -- debconf-show failed
# # 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 set have_grubenv=true load_env fi if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi if [ x"${feature_menuentry_id}" = xy ]; then menuentry_id_option="--id" else menuentry_id_option="" fi export menuentry_id_option 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 } function load_video { if [ x$feature_all_video_module = xy ]; then insmod all_video else insmod efi_gop insmod efi_uga insmod ieee1275_fb insmod vbe insmod vga insmod video_bochs insmod video_cirrus fi } if [ x$feature_default_font_path = xy ] ; then font=unicode else insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi font="/usr/share/grub/unicode.pf2" fi if loadfont $font ; then set gfxmode=auto load_video insmod gfxterm fi terminal_output gfxterm if [ "${recordfail}" = 1 ] ; then set timeout=-1 else if [ x$feature_timeout_style = xy ] ; then set timeout_style=menu set timeout=5 # Fallback normal timeout code in case the timeout_style feature is # unavailable. else set timeout=5 fi fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=cyan/blue set menu_color_highlight=white/blue ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### function gfxmode { set gfxpayload="${1}" } set linux_gfx_mode= export linux_gfx_mode menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-aecbc534-4764-4560-90c1-b02edc56ea23' { savedefault load_video insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi echo 'Loading Linux 3.16-2-486 ...' linux /boot/vmlinuz-3.16-2-486 root=UUID=aecbc534-4764-4560-90c1-b02edc56ea23 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.16-2-486 } submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-aecbc534-4764-4560-90c1-b02edc56ea23' { menuentry 'Debian GNU/Linux, with Linux 3.16-2-486' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16-2-486-advanced-aecbc534-4764-4560-90c1-b02edc56ea23' { savedefault load_video insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi echo 'Loading Linux 3.16-2-486 ...' linux /boot/vmlinuz-3.16-2-486 root=UUID=aecbc534-4764-4560-90c1-b02edc56ea23 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.16-2-486 } menuentry 'Debian GNU/Linux, with Linux 3.16-2-486 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16-2-486-recovery-aecbc534-4764-4560-90c1-b02edc56ea23' { load_video insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi echo 'Loading Linux 3.16-2-486 ...' linux /boot/vmlinuz-3.16-2-486 root=UUID=aecbc534-4764-4560-90c1-b02edc56ea23 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.16-2-486 } menuentry 'Debian GNU/Linux, with Linux 3.14-2-486' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.14-2-486-advanced-aecbc534-4764-4560-90c1-b02edc56ea23' { savedefault load_video insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi echo 'Loading Linux 3.14-2-486 ...' linux /boot/vmlinuz-3.14-2-486 root=UUID=aecbc534-4764-4560-90c1-b02edc56ea23 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.14-2-486 } menuentry 'Debian GNU/Linux, with Linux 3.14-2-486 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.14-2-486-recovery-aecbc534-4764-4560-90c1-b02edc56ea23' { load_video insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 aecbc534-4764-4560-90c1-b02edc56ea23 else search --no-floppy --fs-uuid --set=root aecbc534-4764-4560-90c1-b02edc56ea23 fi echo 'Loading Linux 3.14-2-486 ...' linux /boot/vmlinuz-3.14-2-486 root=UUID=aecbc534-4764-4560-90c1-b02edc56ea23 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.14-2-486 } } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### ### END /etc/grub.d/30_uefi-firmware ### ### 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 ${config_directory}/custom.cfg ]; then source ${config_directory}/custom.cfg elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END /etc/grub.d/41_custom ###
# GRUB Environment Block saved_entry=gnulinux-simple-aecbc534-4764-4560-90c1-b02edc56ea23 ######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################