Read this:
- What is memtest86+, what do I use it for?
Memtest86+ is a utility designed to test whether your memory is in working
order. It repeatedly writes an enormous amount of different patterns to all
memory locations and reads them back again and verifies whether the result
of the read is the same as what was written to memory.
There can be a multitude of reasons for running memtest, but foremost of all
is of course to test whether your memory modules might be bad. Whenever you
suspect your modules to be bad because of system crashes, lockups or reboots
it would be nice to know whether the modules are in working order.
Memtest86+ is a utility which tries to answer that question for you.
Another common use exists in the overclocking scene. When overclocking a
system you are essentially pushing your system to the limits and at some
point it will simply give way and break. Unfortunately there isn't a clear
cut way of deciding whether a system is still working correctly. Because of
the complexity of a computer a system which is pushed to the limits doesn't
just break completely when it starts to fail, instead little errors start
showing up in many different places in the system growing more frequent and
widespread the more the system is pushed. Each one of these little errors
can lead to a crash of your system but can also go unnoticed for days or
weeks in a running system. The art so to speak of overclocking is thus to
push the system as far as it can go without introducing any such errors. As
memory is usually one of the first places these such errors start coming up
a memory test is very useful.
- How do I get it to run?
There are several ways to use memtest, which are described below:
+ Run from floppydisk
Memtest86+ is directly executable by any modern x86 compatible machine, by
writing the bootable binary to a floppy disk one can boot from the disk to
run memtest.
Simply download the appropriate package, the Pre-Compiled Bootable Binary
(.gz) package for Linux users and the Pre-Compiled package for Floppy (DOS
- Win) for Windows users.
For Windows, unzip the package into a directory like C:\memtest, insert a
blank floppy into your a: disk drive and run the install.bat file. As the
install prompts you, to use memtest directly, leave the disk in the drive
and reboot your machine.
For Linux, unpack the package into your home directory, insert a blank
floppy into your floppy drive and execute 'dd if=~/memtest+-1.xx.bin.gz
of=/dev/fd0 conv=osync' replacing 1.xx with the correct version number of
the memtest86+ you downloaded. To run memtest immediately reboot your
machine.
Your machine should now boot from the disk, display the word Loading
folowed by a series of periods and then show a screen much like the
screenshots on the memtest86+ web page. The test is automatically started.
If your machine simply boots back into Windows/Linux you will most likely
have to configure your BIOS to attempt to boot from floppy disk on
startup, refer to your computer's/mainboard's manual how to do this.
When you are done testing simply remove the floppy and reset your
computer, if ever you want to execure the test again simply reinsert the
disk and reboot/start your computer.
+ Run from CD
Memtest86+ is directly executable by any modern x86 compatible machine, by
writing the iso to a CD one can boot from the CD to run memtest.
Simply download the appropriate package, the Download - Pre-Compiled
Bootable ISO (.gz) for Linux users and the Pre-Compiled Bootable ISO
(.zip) for Windows users.
For Windows, unzip the package into a directory like C:\memtest. You will
now see a file called memtest86+-1.xx.iso in this directory. You will need
to burn this file to a CD with a CD recording program. Do note however
that you should not make a regular data CD on which you for instance write
your text documents and holiday photographs. Instead the iso file is a so
called image of a CD, it is a direct copy of a CD. Your CD recording
program will most likely have a feature called burn image or something to
that effect which you should use to burn the CD.
For linux, unzip the package into your home directory. and execute
'cdrecord dev=<your burner> ~/memtest86+-1.xx.iso' where you replace <your
burner> with the scsi address of your CD burner and replace 1.xx with the
correct version number of the memtest86+ your downloaded.
When the burning completed your drive will most likely have ejected the CD
and you should have a bootable memtest86+ CD. To run the test directly
reinsert the CD and reboot your machine.
Your machine should now boot from the CD, display the word Loading folowed
by a series of periods and then show a screen much like the screenshots on
the memtest86+ web page. The test is automatically started.
If your machine simply boots back into Windows/Linux you will most likely
have to configure your BIOS to attempt to boot from CD-ROM drive on
startup, refer to your computer's/mainboard's manual how to do this.
When you are done testing simply remove the CD and reset your computer, if
ever you want to execure the test again simply reinsert the CD and
reboot/start your computer.
+ Run from USB Flash drive
FIXME
+ Run from boot manager
FIXME
that your memory is ok, only in rare cases will there be errors showing
after the first pass. To be sure though simply have the test run overnight
or even for a couple of days depending on the level of importance of the
system.
- How many errors are acceptable?
No errors are acceptable. Even if there is just one error, something is
amiss which can cause your system to crash. Of course what the cause of the
errors is you will still have to determine.
- What do I do when I get errors?
Firstly, don't start drawing any conclusions. You only know that memtest86+
is giving your errors, not what the cause is. Unfortunately it is not a
straightforward exercise to decisively test the memory in an actual system.
This is because a computer is not just built up of some memory, but also
includes many other elements such as a memory controller, cache, a cache
controller, algorithmic and logic units, etc, all of which contribute to the
machine. If there are faults in any of these other parts of the computer you
will likely also see errors showing up in memtest.
So what to do? First verify that the BIOS settings of your machine are
correctly configured. Look up the memory timing settings applicable to the
brand and type of memory modules you have and check they match your BIOS
settings, correct them if they don't and run memtest again
Ok, you have all the settings correctly set and you're still getting errors.
Well of course a very likely cause are the memory modules and the logical
course of action is to look into them further.
If you are well stocked, have a few other machines at your disposal, or just
want to spend the cash for some new modules the best way to test if the
cause are your memory modules is just to replace them and test again. If you
are less fortunate though there is still something you can do.
If you have more then one module in your system, test them one by one, if
one is consistently giving errors and another is consistently showing no
errors it's a pretty good bet that the module giving the errors is simply
defective. To exclude the possibility that a defective slot is throwing your
results, use the same slot to test each different module.
If each module by itself shows no errors, but when you place two or more
modules into the machine at the same time you do get errors, you are most
likely stuck with a compatibility issue and unfortunately there isn't a
whole lot you can do about it. Be sure to check your computer/motherboard
manual to see if the setup you are trying is allowed, some boards require
special restrictions in the sizes of modules, the order of modules, the
placement of double sided and single sides modules and more of such things.
If you have only one module in your system, or all modules are giving
errors, there are only very few options left. The only thing you can do
really is to try the module(s) in another slot. Finally simply try out
different orders of the memory modules, although your manual might not
mention anything on the matter sometimes there simply exist timing or other
issues which can be resolved by changing the order of your modules. And of
course test each slot by putting a single module into that slot and running
memtest on it.