I jumped the gun on the previous patch, more careful examination demonstrated that it has to be a little bit more complicated than that. Another patch attached.
-- Dmitry Borodaenko
--- 10_linux.bak 2010-10-25 13:30:54.792624060 +0300 +++ 10_linux 2010-10-25 13:57:14.151034678 +0300 @@ -79,12 +79,12 @@ printf '%s\n' "${prepare_boot_cache}" cat << EOF echo '$(printf "$(gettext_quoted "Loading Linux %s ...")" ${version})' - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} + linux `make_system_path_relative_to_its_root $linux` root=${linux_root_device_thisversion} ro ${args} EOF if test -n "${initrd}" ; then cat << EOF echo '$(gettext_quoted "Loading initial ramdisk ...")' - initrd ${rel_dirname}/${initrd} + initrd `make_system_path_relative_to_its_root ${dirname}/${initrd}` EOF fi cat << EOF @@ -102,7 +102,6 @@ echo "Found linux image: $linux" >&2 basename=`basename $linux` 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"` linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"