How will single-bit memory error affect Linux?

  1. Memory access rate is lower with only 3 chips since dual channel memory should always be installed in pairs.

  2. Single bit errors can cause pretty much everything to happen. How likely it is depends on how bad your memory has gone, but it is not a good idea to take those chances. System instability is what you should hope for. You could also store a system critical file (or any other file that is important to you) in this part of the memory, modify it and overwrite the original file. So a single bit error can mess up your entire OS.

  3. Chances are that only one of the memory sticks is defective (probably new1). PYG's memory comes with a lifetime warranty, so you could try to get a working one. I have heard very bad things about PYG's memory and customer service, but I cannot know for sure.


As stated a single bit memory error can cause almost anything to go wrong, or you may never notice it at all.

I had a bad memory stick before and the bad point in RAM effectively meant that Windows would sometimes work, but it would corrupt itself pretty regularly. You can never predict what will be allocated into any given spot of RAM in a system (due to the way OS'es allocate memory) and while you may get lucky and only have it break some unimportant program or corrupt one graphic there is a good chance that it will do a lot worse and you are risking your data by using a bad stick of RAM.

Linux has support for BadMem which, if I remember correctly, can mean that you can "map out" the bad block of memory. I couldn't work out if it supports the latest kernel to see if it is of any use to you though.

My advice is as follows: in the short term be prepared for data loss and general system instability, in the long term you should figure out which stick is faulty and replace it.


To be able to run programs a computer fetches instructions about what to do from memory. (the programs are loaded in memory). Instructions are just number sequences and is the computers language.

Let's construct a simple language where 1 = copy, 3 = from, 4 = to

1(copy),50,3(from),100,4(to),200;

So the number sequence 1,50,3,100,4,200 may for the computer mean copy 50 bytes of data from memory locaton 100 to memory location 200. This is the same as you moving 50 socks from one drawer to another.

Now if the memory is malfunctioning and there is a single bit error a number may for example change from 1 to 129. So assuming that any number in the sequence above might be changed you could end up with a lot of interesting errors. If 50 gets changed to 35 or 188 or whatever it is quite easy to understand that the amount of data who is to be copied will be wrong and may possibly overwrite other data (who might be instructions) in memory. if 1 gets changed to 5 the computer might not even understand that it is supposed to copy anything at all. So as demonstrated a single bit error may lead to not only a single fault but possibly other errors caused by the first error as well.

Linux (or any other operatingsystem) is basically the same as the rest of the programs that run on your computer: a sequence of numbers that tells the computer what to do. If this sequence gets corrupted you programs will not make the computer do what it was intended to do and thus you may experience all kinds of problems.

Also remember that music, video or pictures is also just a sequence of numbers so the same principle applies there as well. It is worth adding that depending on your file a corruption may not be noticeable (for example a bad pixel in a picture) but that does not mean that the file is ok. There might even be a typo in the text you read on a webpage if that particular character is stored in a bad memory location.

There exists ram chips that are designed to recover single bit errors and that can detect two bit errors (ECC ram).

Hopefully this explains why any operating system will fail to work if the memory that contains it's data and/or instructions are corrupted. Your safest way of solving this is to replace the broken ram. Meanwhile you might want to map out the bad memory area using the memmap kernel parameter (the following is copied from a answer I got on another question).

 memmap=nn[KMG]$ss[KMG]
            [KNL,ACPI] Mark specific memory as reserved.
            Region of memory to be used, from ss to ss+nn.
            Example: Exclude memory from 0x18690000-0x1869ffff
                     memmap=64K$0x18690000
                     or
                     memmap=0x10000$0x18690000