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: j...@hkfree.org jabber: j...@njs.netlab.cz
--- 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 Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel