hardware:workflow:memtest

This is an old revision of the document!


Isolating and Testing RAM Sticks in Ubuntu

This guide explains how to:

  • Boot using only one RAM stick (by reserving other address ranges via memmap=)
  • Test the remaining sticks with memtester inside the OS
  • Cycle through all sticks, including the originally “known good”
  • Reset to the normal configuration afterwards

If you are unsure which RAM stick works:

  1. Power down and remove all but one stick
  2. Insert into the primary DIMM slot (usually nearest the CPU — see your motherboard manual)
  3. Attempt to boot
    • If the system posts and loads an OS, mark this stick bootable
    • If not, swap in another stick and repeat until one works

(For more on this isolation method, see corsair.com)

  1. With only the bootable stick installed, boot Ubuntu.
  2. Check stick size and slot mapping:
     dmidecode --type memory
  3. Record:
    1. Size of the good stick (e.g. 8 GiB)
    2. Number and sizes of all sticks when installed
  1. Install all sticks.
  2. Edit GRUB:
     sudo nano /etc/default/grub 

    In:

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

    append:

    memmap=<SIZE>$<START>

    Where:

    • SIZE = total capacity of sticks to test
    • START = address immediately after the main stick's range

Example (8 GiB good stick, 24 GiB to test):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memmap=24G$8G"

4. Save, update GRUB, reboot:

sudo update-grub
sudo reboot

Sidenote on update-grub: After editing /etc/default/grub, running update-grub ensures the new memmap parameter is written to /boot/grub/grub.cfg. Without this step, changes won't apply on reboot.

Verification: After rebooting, check reserved memory with:

dmesg | grep -i memmap  # Kernel log should show reserved regions
free -h                 # Available RAM should reflect the exclusion
free -h

Should show only the good stick's capacity as usable by the OS.

Install and run:

sudo apt install memtester
memtester <SIZE-TO-TEST>M 1

Where SIZE-TO-TEST ≈ reserved size.

Runtime note:

  • memtester inside Ubuntu can complete a pass over a portion of RAM in minutes to under an hour, depending on size tested — it only tests memory the OS can allocate at runtime (repair.wiki)
  • Memtest86+ at boot is much slower — several passes can take many hours or overnight (rtech.support), but it is far more thorough

Once a stick passes the in‑OS test:

  1. Shut down
  2. Move this passing stick into the main slot
  3. Move the previously main stick into the test slots
  4. Update the memmap parameters accordingly (good stick's size / address)
  5. Repeat testing

This way, you can eventually test every stick, including the one you started with.

1. Edit /etc/default/grub and remove memmap=… 2. Update GRUB and reboot:

sudo update-grub
sudo reboot

3. Verify all RAM is detected:

free -h
  • ECC RAM: Check journalctl -k | grep -i edac for logged correctable errors
  • Label defective sticks immediately
  • If several sticks fail in the same slot, suspect the slot or motherboard
  • See corsair.com for more on physically testing one stick at a time
  • hardware/workflow/memtest.1754910055.txt.gz
  • Last modified: 2025/08/11 11:00
  • by fabricio