Package: grub-pc Version: 1.98+20100804-14+squeeze1 Severity: wishlist Tags: upstream patch
When installing the memtest86+ package, four GRUB menu entries get added nowadays: memtest86+ memtest86+, serial console 115200 memtest86+, experimental multiboot memtest86+, serial console 115200, experimental multiboot In order to reduce that, I've added two variables and some if-statements to /etc/grub.d/20_memtest86+. In /etc/default/grub: GRUB_MEMTEST_ENABLE_SERIAL=[true|false] GRUB_MEMTEST_ENABLE_MULTIBOOT=[true|false] In addition, I've added a variable holding the memtest86+ serial params: GRUB_MEMTEST_SERIAL_PARAMS="ttyS0,115200n8" In /etc/grub.d/20_memtest86+: Have a look at the diff file. I think it would be nice if this would make it into upstream. -- Package-specific info: *********************** BEGIN /proc/mounts /dev/disk/by-uuid/0adcabcc-c32e-4760-9eac-12d8d7749208 / ext4 rw,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered 0 0 /dev/sda5 /tmp ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0 /dev/sda6 /home ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0 /dev/sda7 /data ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0 *********************** END /proc/mounts *********************** BEGIN /boot/grub/device.map (hd0) /dev/disk/by-id/ata-ST9160310AS_5SV1V363 *********************** END /boot/grub/device.map *********************** BEGIN /boot/grub/grub.cfg # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ -s $prefix/grubenv ]; then load_env fi set default="0" if [ "${prev_saved_entry}" ]; then set saved_entry="${prev_saved_entry}" save_env saved_entry set prev_saved_entry= save_env prev_saved_entry set boot_once=true fi function savedefault { if [ -z "${boot_once}" ]; then saved_entry="${chosen}" save_env saved_entry fi } function load_video { insmod vbe insmod vga insmod video_bochs insmod video_cirrus } insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=1024x600 load_video insmod gfxterm fi terminal_output gfxterm insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 set locale_dir=($root)/boot/grub/locale set lang=en insmod gettext set timeout=5 # set superusers to enable authentication support set superusers='martin' ### PASSWORD LINE REMOVED ### ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 insmod png if background_image /usr/share/images/desktop-base/spacefun-grub.png; then set color_normal=light-gray/black set color_highlight=white/black else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### menuentry 'Debian GNU/Linux, with Linux 3.2.0-0.bpo.4-686-pae' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 3.2.0-0.bpo.4-686-pae ...' linux /boot/vmlinuz-3.2.0-0.bpo.4-686-pae root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.2.0-0.bpo.4-686-pae } menuentry 'Debian GNU/Linux, with Linux 3.2.0-0.bpo.4-686-pae (recovery mode)' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 3.2.0-0.bpo.4-686-pae ...' linux /boot/vmlinuz-3.2.0-0.bpo.4-686-pae root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-3.2.0-0.bpo.4-686-pae } menuentry 'Debian GNU/Linux, with Linux 2.6.38-bpo.2-686' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.38-bpo.2-686 ...' linux /boot/vmlinuz-2.6.38-bpo.2-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.38-bpo.2-686 } menuentry 'Debian GNU/Linux, with Linux 2.6.38-bpo.2-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.38-bpo.2-686 ...' linux /boot/vmlinuz-2.6.38-bpo.2-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.38-bpo.2-686 } menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.32-5-686 ...' linux /boot/vmlinuz-2.6.32-5-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-5-686 } menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.32-5-686 ...' linux /boot/vmlinuz-2.6.32-5-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-5-686 } menuentry 'Debian GNU/Linux, with Linux 2.6.26-2-686' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.26-2-686 ...' linux /boot/vmlinuz-2.6.26-2-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.26-2-686 } menuentry 'Debian GNU/Linux, with Linux 2.6.26-2-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 echo 'Loading Linux 2.6.26-2-686 ...' linux /boot/vmlinuz-2.6.26-2-686 root=UUID=0adcabcc-c32e-4760-9eac-12d8d7749208 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.26-2-686 } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos2)' search --no-floppy --fs-uuid --set 0adcabcc-c32e-4760-9eac-12d8d7749208 linux16 /boot/memtest86+.bin } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_custom ### if [ -f $prefix/custom.cfg ]; then source $prefix/custom.cfg; fi ### END /etc/grub.d/41_custom ### *********************** END /boot/grub/grub.cfg -- System Information: Debian Release: 6.0.10 APT prefers oldoldstable-updates APT policy: (500, 'oldoldstable-updates'), (500, 'oldoldstable') Architecture: i386 (i686) Kernel: Linux 3.2.0-0.bpo.4-686-pae (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=de_DE (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash Versions of packages grub-pc depends on: ii debconf [debco 1.5.36.1 Debian configuration management sy ii grub-common 1.98+20100804-14+squeeze1 GRand Unified Bootloader, version ii libc6 2.11.3-4 Embedded GNU C Library: Shared lib ii libdevmapper1. 2:1.02.48-5 The Linux Kernel Device Mapper use ii ucf 3.0025+nmu1 Update Configuration File: preserv grub-pc recommends no packages. Versions of packages grub-pc suggests: ii desktop-base 6.0.5squeeze1 common files for the Debian Deskto -- debconf information excluded
#!/bin/sh set -e if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then . /usr/lib/grub/grub-mkconfig_lib LX=linux16 elif [ -f /usr/lib/grub/update-grub_lib ]; then . /usr/lib/grub/update-grub_lib LX=linux else # no grub file, so we notify and exit gracefully echo "Cannot find grub config file, exiting." >&2 exit 0 fi # We can't cope with loop-mounted devices here. case ${GRUB_DEVICE_BOOT} in /dev/loop/*|/dev/loop[0-9]) exit 0 ;; esac prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")" if test -e /boot/memtest86+.bin ; then MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+.bin" ) echo "Found memtest86+ image: $MEMTESTPATH" >&2 cat << EOF menuentry "Memory test (memtest86+)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF $LX $MEMTESTPATH } EOF if [ "${GRUB_MEMTEST_ENABLE_SERIAL}" = "true" ]; then cat << EOF menuentry "Memory test (memtest86+, serial console)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF $LX $MEMTESTPATH console=${GRUB_MEMTEST_SERIAL_PARAMS} } EOF fi fi if [ "${GRUB_MEMTEST_ENABLE_MULTIBOOT}" = "true" ]; then if test -e /boot/memtest86+_multiboot.bin ; then MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+_multiboot.bin" ) echo "Found memtest86+ multiboot image: $MEMTESTPATH" >&2 cat << EOF menuentry "Memory test (memtest86+, experimental multiboot)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF multiboot $MEMTESTPATH } EOF if [ "${GRUB_MEMTEST_ENABLE_SERIAL}" = "true" ]; then cat << EOF menuentry "Memory test (memtest86+, experimental multiboot, serial console)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF multiboot $MEMTESTPATH console=${GRUB_MEMTEST_SERIAL_PARAMS} } EOF fi fi fi
--- 20_memtest86+.orig 2018-05-14 00:52:58.719587898 +0200 +++ 20_memtest86+ 2015-02-18 17:47:52.000000000 +0100 @@ -30,16 +30,21 @@ cat << EOF $LX $MEMTESTPATH } -menuentry "Memory test (memtest86+, serial console 115200)" { +EOF + if [ "${GRUB_MEMTEST_ENABLE_SERIAL}" = "true" ]; then + cat << EOF +menuentry "Memory test (memtest86+, serial console)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF - $LX $MEMTESTPATH console=ttyS0,115200n8 + $LX $MEMTESTPATH console=${GRUB_MEMTEST_SERIAL_PARAMS} } EOF + fi fi -if test -e /boot/memtest86+_multiboot.bin ; then +if [ "${GRUB_MEMTEST_ENABLE_MULTIBOOT}" = "true" ]; then + if test -e /boot/memtest86+_multiboot.bin ; then MEMTESTPATH=$( make_system_path_relative_to_its_root "/boot/memtest86+_multiboot.bin" ) echo "Found memtest86+ multiboot image: $MEMTESTPATH" >&2 cat << EOF @@ -49,11 +54,16 @@ cat << EOF multiboot $MEMTESTPATH } -menuentry "Memory test (memtest86+, serial console 115200, experimental multiboot)" { +EOF + if [ "${GRUB_MEMTEST_ENABLE_SERIAL}" = "true" ]; then + cat << EOF +menuentry "Memory test (memtest86+, experimental multiboot, serial console)" { EOF printf '%s\n' "${prepare_boot_cache}" cat << EOF -multiboot $MEMTESTPATH console=ttyS0,115200n8 + multiboot $MEMTESTPATH console=${GRUB_MEMTEST_SERIAL_PARAMS} } EOF + fi + fi fi