diff -x ChangeLog -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../tmp.old/include/grub/i386/pc/kernel.h ./include/grub/i386/pc/kernel.h --- ../tmp.old/include/grub/i386/pc/kernel.h 2008-06-06 18:29:28.000000000 +0200 +++ ./include/grub/i386/pc/kernel.h 2008-06-06 18:32:27.000000000 +0200 @@ -41,7 +41,7 @@ #define GRUB_KERNEL_MACHINE_PREFIX 0x20 /* End of the data section. */ -#define GRUB_KERNEL_MACHINE_DATA_END 0x50 +#define GRUB_KERNEL_MACHINE_DATA_END 0x60 /* The size of the first region which won't be compressed. */ #define GRUB_KERNEL_MACHINE_RAW_SIZE (GRUB_KERNEL_MACHINE_DATA_END + 0x450) diff -x ChangeLog -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../tmp.old/util/i386/pc/grub-install.in ./util/i386/pc/grub-install.in --- ../tmp.old/util/i386/pc/grub-install.in 2008-06-06 18:30:02.000000000 +0200 +++ ./util/i386/pc/grub-install.in 2008-06-06 18:33:26.000000000 +0200 @@ -232,13 +232,13 @@ partmap_module=`$grub_probe --target=par devabstraction_module=`$grub_probe --target=abstraction --device ${grub_device}` if [ "x${devabstraction_module}" = "x" ] ; then - prefix_drive= + prefix_drive=\(UUID=`$grub_probe --target=fs_uuid --device ${grub_device}`\) else prefix_drive=`$grub_probe --target=drive --device ${grub_device}` fi # _chain is often useful -modules="$modules $fs_module $partmap_module biosdisk $devabstraction_module _chain" +modules="$modules $fs_module $partmap_module biosdisk $devabstraction_module _chain fs_uuid" $grub_mkimage --output=${grubdir}/core.img \ --prefix=${prefix_drive}`make_system_path_relative_to_its_root ${grubdir}`/ \ diff -x ChangeLog -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../tmp.old/util/i386/pc/grub-setup.c ./util/i386/pc/grub-setup.c --- ../tmp.old/util/i386/pc/grub-setup.c 2008-06-06 18:30:02.000000000 +0200 +++ ./util/i386/pc/grub-setup.c 2008-06-06 18:32:27.000000000 +0200 @@ -300,7 +300,9 @@ setup (const char *prefix, const char *d block->segment = 0; /* Embed information about the installed location. */ - if (must_embed) + if (install_prefix[0] == '(') + /* If we included a drive explicitly in prefix, force GRUB to use that instead + of root_drive. */ *install_dos_part = *install_bsd_part = grub_cpu_to_le32 (-2); else if (root_dev->disk->partition) {