On Sat, 2014-07-19 at 10:31 +0100, Ian Campbell wrote: > Package: grub-xen > Version: 2.02~beta2-10 > Severity: important > > Dear Maintainer, > > Currently grub-xen cannot boot kernels which are configured with > CONFIG_KERNEL_XZ=y and reports "error: not xen image.". The Debian > kernels have been compiled with this option since > 3.6.8-1~experimental.1. > > Fixing this is as simple as adding an "insmod xzio" after the existing > "insmod gzio" in /etc/grub.d/10_linux. ("insmod gzio" needs to stay for > compat with Wheezy kernels)
I just tripped over this again (I'd fixed 10_linux in my test VM and forgot all about it, but I just created another VM). For the grub-xen-host to really be useful this ought to be fixed as well. I think the choices are either to add the insmod to 10_linux as suggested above or to grub_install_push_module("xzio") (and probably other *io) in grub-install.c when building for one of the Xen targets. The former has the disadvantage of needlessly loading a module for native boots (since the kernel decompresses itself) while the latter appears to be a little unconventional. Despite that I'm leaning towards the latter myself and loading the set of modules listed in grub-install-common.c:decompressor() to cover all bases. I can spin up a patch for upstream and integrate with the package for either solution, any preference? Ian. > > It is possible to extract the compressed payload from an x86 bzImage and > inspect the magic numbers to determine the required decompression > algorithm, but that seems like a lot more work for a pretty small gain. > > Cheers, > Ian. > > -- Package-specific info: > > *********************** BEGIN /proc/mounts > /dev/disk/by-uuid/c1edab93-0151-44a9-b727-6db233208284 / ext3 > rw,relatime,errors=remount-ro,data=ordered 0 0 > *********************** END /proc/mounts > > *********************** BEGIN /boot/grub/device.map > (hd0) /dev/xvda > *********************** 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 > 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="0" > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root c1edab93-0151-44a9-b727-6db233208284 > fi > font="/usr/share/grub/unicode.pf2" > fi > > if loadfont $font ; then > set gfxmode=auto > load_video > insmod gfxterm > set locale_dir=$prefix/locale > set lang=en_GB > insmod gettext > 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-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 3.14-1-amd64 ...' > linux /boot/vmlinuz-3.14-1-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro quiet > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-3.14-1-amd64 > } > submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option > 'gnulinux-advanced-c1edab93-0151-44a9-b727-6db233208284' { > menuentry 'Debian GNU/Linux, with Linux 3.14-1-amd64' --class debian > --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-3.14-1-amd64-advanced-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 3.14-1-amd64 ...' > linux /boot/vmlinuz-3.14-1-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro quiet > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-3.14-1-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 3.14-1-amd64 (recovery mode)' > --class debian --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-3.14-1-amd64-recovery-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 3.14-1-amd64 ...' > linux /boot/vmlinuz-3.14-1-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro single > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-3.14-1-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian > --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-3.2.0-4-amd64-advanced-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 3.2.0-4-amd64 ...' > linux /boot/vmlinuz-3.2.0-4-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro quiet > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-3.2.0-4-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64 (recovery mode)' > --class debian --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-3.2.0-4-amd64-recovery-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 3.2.0-4-amd64 ...' > linux /boot/vmlinuz-3.2.0-4-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro single > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-3.2.0-4-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64' --class > debian --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-2.6.32-5-xen-amd64-advanced-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 2.6.32-5-xen-amd64 ...' > linux /boot/vmlinuz-2.6.32-5-xen-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro quiet > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-2.6.32-5-xen-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 (recovery > mode)' --class debian --class gnu-linux --class gnu --class os > $menuentry_id_option > 'gnulinux-2.6.32-5-xen-amd64-recovery-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 2.6.32-5-xen-amd64 ...' > linux /boot/vmlinuz-2.6.32-5-xen-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro single > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-2.6.32-5-xen-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian > --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-2.6.32-5-amd64-advanced-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 2.6.32-5-amd64 ...' > linux /boot/vmlinuz-2.6.32-5-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro quiet > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-2.6.32-5-amd64 > } > menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' > --class debian --class gnu-linux --class gnu --class os $menuentry_id_option > 'gnulinux-2.6.32-5-amd64-recovery-c1edab93-0151-44a9-b727-6db233208284' { > load_video > insmod gzio > insmod xzio > 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='hd0,msdos1' > c1edab93-0151-44a9-b727-6db233208284 > else > search --no-floppy --fs-uuid --set=root > c1edab93-0151-44a9-b727-6db233208284 > fi > echo 'Loading Linux 2.6.32-5-amd64 ...' > linux /boot/vmlinuz-2.6.32-5-amd64 > root=UUID=c1edab93-0151-44a9-b727-6db233208284 ro single > echo 'Loading initial ramdisk ...' > initrd /boot/initrd.img-2.6.32-5-amd64 > } > } > > ### 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 ### > *********************** END /boot/grub/grub.cfg > > *********************** BEGIN /proc/mdstat > cat: /proc/mdstat: No such file or directory > *********************** END /proc/mdstat > > *********************** BEGIN LVM > *********************** END LVM > > *********************** BEGIN /dev/disk/by-id > ls: cannot access /dev/disk/by-id: No such file or directory > *********************** END /dev/disk/by-id > > *********************** BEGIN /dev/disk/by-uuid > total 0 > lrwxrwxrwx 1 root root 11 Jul 19 09:16 c1edab93-0151-44a9-b727-6db233208284 > -> ../../xvda1 > lrwxrwxrwx 1 root root 11 Jul 19 09:16 e311cf84-7804-4c61-a056-7f7f9fcbd29e > -> ../../xvda5 > *********************** END /dev/disk/by-uuid > > -- System Information: > Debian Release: 7.6 > APT prefers stable > APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'unstable'), > (500, 'testing') > Architecture: amd64 (x86_64) > > Kernel: Linux 3.14-1-amd64 (SMP w/2 CPU cores) > Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > > Versions of packages grub-xen depends on: > ii debconf [debconf-2.0] 1.5.49 > ii grub-common 2.02~beta2-10 > ii grub-xen-bin 2.02~beta2-10 > ii grub2-common 2.02~beta2-10 > ii ucf 3.0025+nmu3 > > grub-xen recommends no packages. > > grub-xen suggests no packages. > > -- debconf information: > grub2/kfreebsd_cmdline: > grub2/device_map_regenerated: > * grub2/linux_cmdline: > grub2/kfreebsd_cmdline_default: quiet > * grub2/linux_cmdline_default: quiet > > > > > -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org