Ubuntu – How to run Memtest under 14.04 with UEFI

14.04memtestuefi

I'm experiencing frequent "graying out" of my screen in memory-intensive programs like darktable so I'd like to test my RAM (installed 8GB). My Grub menu does not list Memtest as an option however the Ubuntu Software Center reports that Memtest is Installed. How do I run Memtest in this case?

Thanks.

output of grub directory:

-rwxr-xr-x 1 root root  9424 Jun 26 04:16 00_header
-rwxr-xr-x 1 root root  6058 May  8  2014 05_debian_theme
-rwxr-xr-x 1 root root 11608 May 15  2014 10_linux
-rwxr-xr-x 1 root root 10412 May 15  2014 20_linux_xen
-rwxr-xr-x 1 root root  1992 Mar 12  2014 20_memtest86+
-rwxr-xr-x 1 root root 11692 May 15  2014 30_os-prober
-rwxr-xr-x 1 root root  1416 May 15  2014 30_uefi-firmware
-rwxr-xr-x 1 root root   214 May 15  2014 40_custom
-rwxr-xr-x 1 root root   216 May 15  2014 41_custom
-rw-r--r-- 1 root root   483 May 15  2014 README

Best Answer

  • I also noticed that this option is missing, but never looked into it. Apparently the Memtest86+ image isn't compatible with UEFI and 20_memtest86+ exits very early when it's called on a UEFI machine:

    # We need 16-bit boot, which isn't available on EFI.
    if [ -d /sys/firmware/efi ]; then
      exit 0
    fi
    

    Options:

    • A: Windows

      An alternative suggestion I found was to use Windows' tool for memory testing instead.

    • B: PassMark MemTest86

      There seems to be some confusion about Memtest86+ and the non-open source PassMark MemTest86, which supports UEFI since version 5.

      Arch have a script in their AUR to install PassMarks MemTest86. As an alternative to putting the files on a USB FAT partition you could do something similar by downloading the ISO for Linux/Mac then extract and rename the contents of EFI\BOOT on the ISO to EFI\MEMTEST86 on your ESP and add the following to your /etc/grub.d/40_custom:

      menuentry 'PassMark MemTest86 (x64)' {
          chainloader /efi/memtest86/bootx64.efi
      }
      menuentry 'PassMark MemTest86 (ia32)' {
          chainloader /efi/memtest86/bootia32.efi
      }
      

      Finally run sudo update-grub to update your GRUB configuration. (I included entries for both binaries, the old ia32 may not be supported with UEFI in Ubuntu, simply remove what you don't need.)

  • Related Question