Memtest86+ options are missing in Grub menu

I had the same problem as @coversnail here: How can I add the Memtest86+ options back to the Grub menu?

The problem is: I just can choose between older kernel versions and the actual Ubuntu version in GRUB. There are no other options.

I want to run memtest86+. It is installed and in /etc/grub.d/, but it is not in GRUB itself. I am kind of confused.


Solution 1:

Try Grub Customizer. Grub Customizer is a graphical settings manager for GRUB2.

To install, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command(s) below:

sudo add-apt-repository ppa:adabbas/1stppa
sudo apt-get update
sudo apt-get install grub-customizer

Or just check out their website.

To add the memtest entries see images below, and the text.

enter image description hereenter image description hereenter image description here

First Entry

insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  b4d22d74-d1db-44c3-a834-e879263662f5
else
  search --no-floppy --fs-uuid --set=root b4d22d74-d1db-44c3-a834-e879263662f5
fi
linux16 /boot/memtest86+.bin

Second Entry

insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  b4d22d74-d1db-44c3-a834-e879263662f5
else
  search --no-floppy --fs-uuid --set=root b4d22d74-d1db-44c3-a834-e879263662f5
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8

Note: Now the above information is correct, but keep in mind that memtest will not work in grub2-uefi . This is because UEFI does not support launching 16-bit binaries and memtest is a 16-bit binary. Thats also the reason why there is no linux16 command/module in grub2 uefi.

Also you may want to look at memtest86+ fails on efi systems.

Solution 2:

I know this is an old post, but it still comes up in searches, so I'm going to give a solution.

Most distros supply memtest86+. It is not compatible with UEFI, because UEFI does not support 16 bit . However, PassMark Memtest86 (ver. 5 or later) supports UEFI.

First, obtain the memtest files. Download the USB boot image. http://memtest86.com/download.htm Next, extract the files from the image. I burned the image to a flash drive to facilitate installing on multiple computers.

Second, install memtest86. I made a 500MB partition at the end of my HDD, and formatted to FAT32. Then copied all files from flash drive to this partition. Note: it is possible to install to your EFI directory, but files need to be renamed to avoid overwriting existing boot files.

Third, configure grub2-efi menu entry. There are many ways to add an entry, but the safest way that survives update-grub follows. Using root privileges create file /etc/grub.d/39_memtest, and set it executable. (Note: changing the number in the file name changes the position it appears in the grub menu. DO NOT make it lower than 6 to insure that header and theme run first)

Next make the contents of the file:

#!/bin/sh

echo "Adding Memtest86" >&2

exec tail -n +3 $0

menuentry "Memtest86" {

chainloader (hdx,y)/efi/boot/bootx64.efi

}

EOF

*Replace (hdx,y) with your appropriate HDD and partition information.

Then run update-grub You should now have a menu entry that boots into Memtest86