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](https://help.corsair.com/hc/en-us/articles/14238510858637-RAM-How-to-Test-RAM-Modules-for-Memory-Issues))

1. With only the bootable stick installed, boot Ubuntu.

2. Check stick size and slot mapping:

  <code bash>
  sudo dmidecode --type memory
  </code>

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:

  <code bash>
  sudo nano /etc/default/grub
  </code>

3. In:

  <code bash>
  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  </code>
  append:
  <code bash>
  memmap=<SIZE>$<START>
  </code>
  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):
  <code bash>
  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memmap=24G$8G"
  </code>

4. Save, update GRUB, reboot:

  <code bash>
  sudo update-grub
  sudo reboot
  </code>

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:

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:

  <code bash>
  sudo update-grub
  sudo reboot
  </code>

3. Verify all RAM is detected:

  <code bash>
  free -h
  </code>
  • hardware/workflow/memtest.1754908076.txt.gz
  • Last modified: 2025/08/11 10:27
  • by fabricio