#!/usr/bin/env bash ######################################################## # This script generates a memtest86+ entry on grub.cfg # # if memtest is installed on the system. # ######################################################## prefix="/usr" exec_prefix="${prefix}" datarootdir="/usr/share" datadir="${datarootdir}" . "${datadir}/grub/grub-mkconfig_lib" MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin" CLASS="--class memtest86 --class gnu --class tool" if [ -e "${MEMTEST86_IMAGE}" ] && is_path_readable_by_grub "${MEMTEST86_IMAGE}" ; then ## image exists, create menu entry echo "Found memtest86+ image: ${MEMTEST86_IMAGE}" >&2 _GRUB_MEMTEST_HINTS_STRING="$(${grub_probe} --target=hints_string ${MEMTEST86_IMAGE})" _GRUB_MEMTEST_FS_UUID="$(${grub_probe} --target=fs_uuid ${MEMTEST86_IMAGE})" _GRUB_MEMTEST_REL_PATH="$(make_system_path_relative_to_its_root ${MEMTEST86_IMAGE})" cat << EOF if [ "\${grub_platform}" == "pc" ]; then menuentry "Memory Tester (memtest86+)" ${CLASS} { search --fs-uuid --no-floppy --set=root ${_GRUB_MEMTEST_HINTS_STRING} ${_GRUB_MEMTEST_FS_UUID} linux16 ${_GRUB_MEMTEST_REL_PATH} ${GRUB_CMDLINE_MEMTEST86} } fi EOF fi