2009-10-26 Colin Watson <cjwatson@ubuntu.com>

Improve grub-mkconfig performance when there are several menu
	entries on a single filesystem.

	* util/grub.d/10_linux.in (linux_entry): Cache the output of
	prepare_grub_to_access_device.
	* util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
This commit is contained in:
cjwatson 2009-10-26 16:28:04 +00:00
parent ba36be4119
commit e4f6809bbc
4 changed files with 25 additions and 3 deletions

View file

@ -74,6 +74,7 @@ EOF
;;
linux)
LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
prepare_boot_cache=
for LINUX in ${LINUXPROBED} ; do
LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
@ -90,7 +91,10 @@ EOF
cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" {
EOF
prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
if [ -z "${prepare_boot_cache}" ]; then
prepare_boot_cache="$(prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/")"
fi
printf '%s\n' "${prepare_boot_cache}"
cat << EOF
linux ${LKERNEL} ${LPARAMS}
EOF