diff options
Diffstat (limited to '60_memtest86+')
-rw-r--r-- | 60_memtest86+ | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/60_memtest86+ b/60_memtest86+ new file mode 100644 index 000000000000..7f63e0e045c6 --- /dev/null +++ b/60_memtest86+ @@ -0,0 +1,42 @@ +#!/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}" +sysconfdir="/etc" + +. "${datadir}/grub/grub-mkconfig_lib" + +. "${sysconfdir}/default/grub" + +MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin" +CLASS="--class memtest86 --class gnu --class tool" + +[[ -z "${GRUB_PLATFORM}" ]] && GRUB_PLATFORM="x86" + +check="--is-${GRUB_PLATFORM}-linux" + +# MEMTEST86_IMAGE="$(if grub_file_is_not_garbage "${MEMTEST86_IMAGE}" && "${grub_file}" ${check} "${MEMTEST86_IMAGE}" ; then echo -n "${MEMTEST86_IMAGE} " ; fi)" + +if [[ "${GRUB_PLATFORM}" == "x86" ]]; then + 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 [ x\$grub_platform = xpc ]; 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 +fi |