Bug#558042: Fixed /etc/grub.d/10_linux script

Ben Stewart debbugs at tucuxi.org
Fri Nov 27 09:12:47 UTC 2009


Hi all,

I came across this bug on my sid system, and have updated the script
/etc/grub.d/10_linux to resolve this bug in a somewhat hackish way.

The attached code is a diff against the version as shipped with
1.97+20091125-1.

----- /etc/grub.d/10_linux.patch -----
--- 10_linux.dpkg-new	2009-11-26 05:41:40.000000000 +1100
+++ 10_linux	2009-11-27 20:05:29.000000000 +1100
@@ -65,11 +65,11 @@
   fi
   printf '%s\n' "${prepare_boot_cache}"
   cat << EOF
-	linux	${rel_dirname}/${basename} root=${linux_root_device_thisversion}
ro ${args}
+	linux	${fixed_imagename}/${basename}
root=${linux_root_device_thisversion} ro ${args}
 EOF
   if test -n "${initrd}" ; then
     cat << EOF
-	initrd	${rel_dirname}/${initrd}
+	initrd	${fixed_initrd}
 EOF
   fi
   cat << EOF
@@ -88,6 +88,7 @@
   basename=`basename $linux`
   dirname=`dirname $linux`
   rel_dirname=`make_system_path_relative_to_its_root $dirname`
+  fixed_imagename=$(grub-mkrelpath "$linux")
   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}"
@@ -108,6 +109,8 @@
     linux_root_device_thisversion=${GRUB_DEVICE}
   fi

+  fixed_initrd=$(grub-mkrelpath "${dirname}/${initrd}")
+
   linux_entry "${OS}" "${version}" false \
       "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
   if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then

--------------------------------------

I have not tested this against a system with /boot on the same partition
as the root, but it does work for the aforementioned system with /boot
on a separate partition.






More information about the Pkg-grub-devel mailing list