Hello, I am using Debian GNU/Linux as my primary system. As a loader I am using GRUB. Actually I have upgraded to GRUB2. I don't know, if it was feature of original (legacy) GRUB or it was functionality provided by debian scripts (update-grub), for generating menu.lst. There was feature - howmany. This option specifies number of kernels, that user wants to have in boot menu. Script, that modifies menu.lst, use this variable. I like this feature, because I have usually more kernels, but I want to see only last two versions in GRUB menu. I have created patch, that add support for this to /etc/grub.d/10_linux. I have created this patch against version shipped with Debian (1.97~beta3-1) - I don't know if there are some Debian specific modifications. Also there should be variable GRUB_HOW_MANY propagated from /etc/default/grub (my patch don't do this). Kernel and it's rescue variant is counted as one kernel.
I have already reported this bug to Debian BTS: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548600 Regards -- Jezz mail: [email protected] jabber: [email protected]
--- 10_linux 2009-08-10 19:49:44.000000000 +0200
+++ 10_linux.new 2009-09-27 16:09:49.490014838 +0200
@@ -66,7 +66,17 @@
if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
done`
-while [ "x$list" != "x" ] ; do
+# Validate GRUB_HOW_MANY variable
+case "$GRUB_HOW_MANY" in
+ [0-9]|[0-9][0-9])
+ howmany=$GRUB_HOW_MANY
+ ;;
+ *)
+ howmany=99
+ ;;
+esac
+
+while [ "x$list" != "x" -a $howmany -gt 0 ] ; do
linux=`version_find_latest $list`
echo "Found linux image: $linux" >&2
basename=`basename $linux`
@@ -75,6 +85,7 @@
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}"
+ howmany=$((howmany-1))
initrd=
for i in "initrd.img-${version}" "initrd-${version}.img" \
signature.asc
Description: Digital signature
_______________________________________________ Grub-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/grub-devel
