Jump to content

Testing for RAM Errors w/ MemTest86

What is MemTest86 and how does it work?

MemTest86 is an x86 based system memory (RAM) testing tool. Despite it's name and origin the latest free versions have compatibility with modern UEFI x64 based systems. What MemTest86 does is it uses a series of algorithms to write blocks of data to system memory then it reads those blocks back. If the data read matches what was written then the blocks pass. If the data read doesn't match what was written then an error was encountered. Under normal circumstances on a stable system no errors should be found but in the event of overclocking, hardware degradation, or DOA memory anywhere from a few to many errors can be encountered. How many errors are too many would have to be defined by how stable your computer is. If you're following this tutorial and fixing any errors you have makes your system stable again then you had too many.

 

How do I use it?

MemTest86 boots into it's own environment independent of your Operating System so you're going to need three tools:

  1. A sacrificial thumb/flash/pen drive. NOTE: All pre-existing data on this drive will be erased!
  2. MemTest86, the .ZIP of which can be downloaded from the official website: https://www.memtest86.com/
  3. A means of writing the image file to your sacrificial drive the steps of which vary depending on your Operating System.

 

Installing the Image File to Your Drive

Spoiler

Setup on Windows

Spoiler

Start by extracting the contents of the .ZIP file to a folder on your desktop. Now connect your thumb drive and run the imageUSB.exe executable from the extracted folder. You'll be greeted by the following menu:

 

Screenshot_1.png.e8ffe5ba17badb153065951f5cbe1fc1.png

 

From here the steps are fairly self-explanatory:

  1. Tick the box next to the drive you want to install MemTest86 to.
  2. Choose the operation you wish to perform (default option is what we want)
  3. Choose the image you want to write to the drive (default option should be memtest86-usb.img)
  4. Click Write.

This will trigger a series of dialog boxes:

 

Screenshot_2.png.9e4372b12f873ceb484cc38a94511726.png

 

Screenshot_3.png.fcff2c9a843a65a2a10b3b8ff6cb5aa7.png

 

Verify that you've selected the correct drive (or just have your sacrificial drive be the only one connected - personal recommendation) and click Yes on both prompts.

 

From here wait patiently while the image is written to the drive.

 

Screenshot_5.png.eaa059fb302aa6ed6f5fc27e131d1e5d.png

 

After this a verification pass is done to ensure what was written is correct.

 

Screenshot_6.png.e907cb1bb3ea6872c89036ad62ab2a36.png

 

When you receive the following prompt MemTest86 was successfully installed and your bootable USB drive is ready for use:

 

Screenshot_8.gif.f4308fceb31b41c9c2b2dc4f9c6c9f5b.gif

 

 

Setup on GNU/Linux

Spoiler

Start by extracting the contents of the .ZIP file to a folder in your home directory. Now connect your thumb drive. First thing we need to do is identify what letter the drive was assigned by issuing the command:





lsblk

 

This will provide an output similar to the following:





NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
. . .
sdb           8:0    1  14.9G  0 disk 
└─sdb1        8:1    1  14.9G  0 part /media/username/1CCB-9A4A
nvme0n1     259:0    0   477G  0 disk 
├─nvme0n1p1 259:1    0   100M  0 part /boot/efi
├─nvme0n1p2 259:2    0    16M  0 part 
├─nvme0n1p3 259:3    0 237.9G  0 part 
├─nvme0n1p4 259:4    0   505M  0 part 
└─nvme0n1p5 259:5    0 238.5G  0 part /

Pay close attention to the SIZE column. Assuming your sacrificial drive is the only small USB storage device connected you'll find it easily here. In this instance our drive letter is sdb.

 

After you identify your drive you want to make sure it's not currently mounted. You can unmount any currently mounted partitions on the drive by issuing the command:





umount /dev/sdb*

Where "b" is the letter associated with your drive.

 

NOTE: This may give an error about certain secondary partitions not being mounted. This is fine.

 

From here format the drive into an appropriate File System. Typically EXT4:





sudo mkfs.ext4 /dev/sdb

Where "b" is the letter associated with your drive.

 

Now to write MemTest86 to our USB drive enter the folder containing our extracted files and issue the command:





sudo dd if=memtest86-usb.img of=/dev/sdb status=progress

Where "b" is the letter associated with your drive.

 

When the write operation completes your bootable USB is ready to go.

 

Setup on MacOS

Spoiler

Start by extracting the contents of the .ZIP file to a folder in your users directory. Now connect your thumb drive. First thing we need to do is identify what letter the drive was assigned by issuing the command:





diskutil list

Pay close attention to the SIZE column. Assuming your sacrificial drive is the only small USB storage device connected you'll find it easily here.

 

After you identify your drive you want to make sure it's not currently mounted. You can unmount the drive by issuing the command:





diskutil unmountDisk /dev/disk#

Where # is the number associated with your drive.

 

Now to write MemTest86 to our USB drive enter the folder containing our extracted files and issue the command:





sudo dd if=memtest86-usb.img of=/dev/disk# status=progress

Where # is the number associated with your drive.

 

When the write operation completes your bootable USB is ready to go.

 

 

Running MemTest86

Connect your MemTest86 drive to the suspect computer and turn it on. Now booting to a USB drive may not be set as a higher priority than your default boot drive or be set at all. In either case you may have to enter your BIOS and manually select the USB drive to be booted first in the Boot Priority menu. Alternatively many BIOS's support a Boot Override menu via F10 or F11 at startup. Some even support boot override from within the BIOS menu itself.

 

Once you successfully boot to the USB drive the first thing MemTest86 will do is start querying the system for information:

Retrieving hardware info. Please wait...
Getting CPUID info...
Getting cache size...
Measuring CPU/cache/mem speeds...
Retrieving CPU MSR data...
Getting SPD details...
Getting memory controller details...
Testing multiprocessor support...

 

After this you'll be shown a splash-screen:

 

2056026882_Screenshotfrom2021-01-2020-24-05.thumb.png.f130ec45e3a5082f83e3be56989b1d88.png

 

From here to run a simple memory test wait for the timer denoted above to expire and a test will begin automatically:

 

2041712986_Screenshotfrom2021-01-2020-26-06.png.a21261e0fb01d916d832289872b65e7a.png

 

At this stage allow the test to run to completion. How long the test will take is proportional to how much RAM you have. The more RAM the longer you will have to wait.

 

When the test finishes MemTest86 will bring you to a results page to show you what errors it found if any. If you do have errors there are multiple approaches to troubleshooting them. Most methods are easy but there are progressively more difficult steps if initial troubleshooting doesn't yield results.

 

Easy Troubleshooting Steps

  • Disable X.M.P./D.O.C.P.
  • Re-seat the memory.
  • Swap the memory around in their slots.
  • Remove a stick entirely and re-test.

Intermediate Troubleshooting Steps

  • Loosening RAM timing/frequency manually.
  • Replacing RAM entirely.

Difficult Troubleshooting Steps

  • Testing a different motherboard
  • Testing a different PSU
  • Testing a different CPU

 

Closing Thoughts

MemTest86 is a very powerful tool for recognizing memory errors when troubleshooting an unstable computer. It's worth keeping in your pocket if you work on systems regularly. It's also worth noting that MemTest86 and it's fork MemTest86+ may not find errors on the first pass. You may need to run it more than once before it picks something up.

Link to comment
Share on other sites

Link to post
Share on other sites

+ upvote to sticky this please!

Community Standards | Fan Control Software

Please make sure to Quote me or @ me to see your reply!

Just because I am a Moderator does not mean I am always right. Please fact check me and verify my answer. 

 

"Black Out"

Ryzen 9 5900x | Full Custom Water Loop | Asus Crosshair VIII Hero (Wi-Fi) | RTX 3090 Founders | Ballistix 32gb 16-18-18-36 3600mhz 

1tb Samsung 970 Evo | 2x 2tb Crucial MX500 SSD | Fractal Design Meshify S2 | Corsair HX1200 PSU

 

Dedicated Streaming Rig

 Ryzen 7 3700x | Asus B450-F Strix | 16gb Gskill Flare X 3200mhz | Corsair RM550x PSU | Asus Strix GTX1070 | 250gb 860 Evo m.2

Phanteks P300A |  Elgato HD60 Pro | Avermedia Live Gamer Duo | Avermedia 4k GC573 Capture Card

 

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 weeks later...

For those wondering how long it takes - here's my result:

24 GB (3 sticks of 8GB each) 2933Mhz = 4 passes = 10h 46m

CPU R7 1700    Motherboard Asus Prime X370 Pro  RAM  24GB Corsair LPX 3000 (at 2933Mhz)    GPU EVGA GTX1070 SC  Case Phanteks Enthoo Pro M    

Storage 1 x 1TB m.2, 1x 500GB SSD, 1x 1TB HDD, 1x 8TB HDD  PSU Corsair RM1000  Cooling Thermalright Macho Rev B (tower)

Synology NAS 1 x 4TB 1 x 8TB

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×