diff -Nur a/util/grub.d/00_header.in b/util/grub.d/00_header.in --- a/util/grub.d/00_header.in 2011-01-12 19:47:53.000000000 +0100 +++ b/util/grub.d/00_header.in 2011-03-18 12:50:29.441910034 +0100 @@ -100,6 +100,14 @@ EOF +if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then + cat << EOF +set menu_color_normal=$GRUB_COLOR_NORMAL +set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT + +EOF +fi + serial=0; gfxterm=0; for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do diff -Nur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in --- a/util/grub.d/10_linux.in 2010-12-25 13:57:11.000000000 +0100 +++ b/util/grub.d/10_linux.in 2011-03-18 12:55:27.125149874 +0100 @@ -31,8 +31,8 @@ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS=GNU/Linux else - OS="${GRUB_DISTRIBUTOR} GNU/Linux" - CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}" + OS="${GRUB_DISTRIBUTOR}" + CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | tr -d ' ') ${CLASS}" fi # loop-AES arranges things so that /dev/loop/X can be our root device, but @@ -48,7 +48,7 @@ || uses_abstraction "${GRUB_DEVICE}" lvm; then LINUX_ROOT_DEVICE=${GRUB_DEVICE} else - LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} + LINUX_ROOT_DEVICE="/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" fi linux_entry () @@ -111,7 +111,7 @@ EOF } -list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* ; do +list=`for i in /boot/vmlinuz* /boot/vmlinux* /vmlinuz* /vmlinux* ; do if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi done` prepare_boot_cache= @@ -123,19 +123,14 @@ dirname=`dirname $linux` rel_dirname=`make_system_path_relative_to_its_root $dirname` version=`echo $basename | sed -e "s,^[^0-9]*-,,g"` - alt_version=`echo $version | sed -e "s,\.old$,,g"` + base_init=`echo $basename | sed -e "s,vmlinuz,kernel,g"` + alt_version="${base_init}-fallback" linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" initrd= - for i in "initrd.img-${version}" "initrd-${version}.img" \ - "initrd-${version}" "initramfs-${version}.img" \ - "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ - "initrd-${alt_version}" "initramfs-${alt_version}.img"; do - if test -e "${dirname}/${i}" ; then - initrd="$i" - break - fi - done + if test -e "${dirname}/${base_init}.img" ; then + initrd="${base_init}.img" + fi initramfs= for i in "config-${version}" "config-${alt_version}"; do @@ -155,6 +150,11 @@ linux_entry "${OS}" "${version}" false \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + if test -e "${dirname}/${alt_version}.img" ; then + initrd="${alt_version}.img" + linux_entry "${OS}" "${version} Fallback" false \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + fi if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then linux_entry "${OS}" "${version}" true \ "single ${GRUB_CMDLINE_LINUX}" diff -Nur a/util/grub-mkconfig.in b/util/grub-mkconfig.in --- a/util/grub-mkconfig.in 2010-12-01 15:45:43.000000000 +0100 +++ b/util/grub-mkconfig.in 2011-03-18 12:50:29.441910034 +0100 @@ -252,6 +252,8 @@ GRUB_THEME \ GRUB_GFXPAYLOAD_LINUX \ GRUB_DISABLE_OS_PROBER \ + GRUB_COLOR_NORMAL \ + GRUB_COLOR_HIGHLIGHT \ GRUB_INIT_TUNE \ GRUB_SAVEDEFAULT \ GRUB_BADRAM