| - 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 |
| |
| - How long does memtest86+ run? How do I stop it? |
| |
| Memtest86+ runs indefinately unless you stop it. It does however repeat the |
| same tests over and over again. Memtest86+ contains a number of different |
| tests which each take different approaches in trying to expose any errors in |
| your memory. In the top right of your screen you can see the progress of |
| each test in the lower of the two progress bars. The topmost progress bar |
| shows the progress of a pass, each pass consists of all the tests in the |
| memtest suite. |
| |
| Thus all tests are executed in one pass, so does that mean that no errors |
| will show after the first pass if that pass didn't reveal any errors? Well |
| no, there are several reasons why errors might only show up after a number |
| of passes. Firstly as of this writing, the latest version of memtest also |
| includes a test which uses random test patterns, each pass these patterns |
| will of course be different. Secondly some types of errors simply don't show |
| up until the system has been running for a while or are very critical on a |
| certain timing condition, or other such conditions. |
| |
| To conclude, one successful pass of memtest will give you a pretty good idea |
| 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. |
| |
| In the end if you still have not been able to localize the problem you will |
| have to find a replacement module to establish whether the problem lies in |
| your modules. See if you can borrow a module from someone else. |
| |
| When you have replaced the memory by new memory and the errors still |
| persist, first check if you can rule out any compatibility issues or timing |
| issues. If you are sure the memory should work in the system the cause of |
| the errors must obviously lie someplace else in the system. |
| |
| The only way to find out where, is by trial and error really. Simply start |
| replacing and/or removing parts of your computer one by one, running memtest |
| each time you changed anything, until the errors are resolved. |
| |
| - I'm getting errors in test #x, what doest that mean? |
| |
| Interpreting memtest results is as scientific an endeavour as testing |
| whether a person is a witch by the methods used in Monty Python's Holy |
| Grail. In short, don't even start, it's not going to get you anywhere. Just |
| interpret any error as you should any other and use the methods descibed in |
| the previous question to determine the cause. |
| |
| - I'm getting errors in test #5 and/or #8 and have read a lot about it. |
| |
| Yes there are just about enough discussions on the topic to fill a book, but |
| it all boils down to the answer given above. The only thing that can be said |
| is that many a times, when memory latencies are incorrectly set in the BIOS |
| you will experience errors in test #5 and #8. (Though #8 does not exist |
| anymore as of version 1.40 and might be reinstated as a different test in a |
| later version.) This does however NOT mean that errors in these tests are |
| always the cause of incorrect settings, your memory might just as well be |
| defective. |
| |
| - I'm getting errors in memtest on one machine, but not when I put the same |
| memory in another, what does that mean? |
| |
| It can mean one of two things: |
| - The machine that is giving the errors is defective. Errors don't just |
| orginate from the memory module itself, but can also be caused by |
| defects in the cpu, chipset, motherboard, PSU and even by timing issues |
| introduced by any other component in the machine. |
| - The machine giving the errors is imposing stricter timing than the other |
| which the memory module simply can't cope with. If the module should |
| work with the machine according to its specifications then it most |
| likely is defective. |
| |
| - Which memory is tested? |
| |
| As much as possible of the system memory is tested. Unfortunately memtest86+ |
| can usually not test all of the memory. The reason for this is that todays |
| processors have become so complex that they require a small amount of memory |
| to keep accounting data of the processor state. If memtest were to write |
| over these areas the state of the processor becomes invalid and it's |
| behaviour unpredictable. Alas it is also impossible to relocate these areas |
| in the memory. |
| |
| This means that a small area of your memory can not be tested by memtest. If |
| this part of the memory is defective you will know soon enough though as the |
| processor, or parts of the processor simply won't work correctly if this |
| part of your memory is defective. Do realise though that in very rare cases |
| memtest will show no errors even though the module is defective, not because |
| memtest can't detect the error, but because memtest can't test the area the |
| error is located in. |
| |
| - When I select BIOS-ALL I get many errors / my machine crashes. |
| |
| This is normal. With todays computers this option should never be selected. |
| See the previous question about the reason for the errors. |
| |
| - I want to use memtest on a multiboot CD, how do I do this? |
| |
| This is of course very dependent on which boot loader you use for your CD. |
| Below is a description of how to set up a multiboot CD including memtest+ |
| with isolinux, if you have experience with any other bootloader(s) please |
| consider writing a small description of using memtest with that bootloader |
| for the FAQ. |
| |
| -isolinux |
| |
| For general instructions on how to make a bootable CD with isolinux see |
| the syslinux website and the manual. What you need to do to get memtest |
| working is as follows. |
| |
| Download the Pre-Compiled Bootable Binary, the .gz if you are working |
| under linux, the .zip if you are working under windows. Unpack the file |
| from the package and rename it to an 8.3 filename with an extension other |
| than .bin, renaming to memtest. (without an extension) is a good choice. |
| |
| Put the file somewhere in your CD directory structure, for example in |
| images/memtest and edit your config file to include the following: |
| |
| label memtest |
| kernel /images/memtest |
| |
| If you want to boot memtest automatically insert or change a line at the |
| top to: |
| |
| default memtest |
| |
| If you want to display a prompt from which you can start memtest add or |
| change the lines at the top to: (Change the timeout to suit your needs) |
| |
| prompt 1 |
| timeout 200 |
| |
| - If memtest86+ shows no errors does that mean my memory is not defective? |
| |
| Of course no answers are definitive, no matter how good memtest86+ will |
| eventually become there is always the possibility that a particular type of |
| error will go unnoticed. As long as you are having no problems with the |
| system it will be pretty safe to say that the modules are good. If you are |
| having problems with the system however you will just have to check by trial |
| and error, ie swapping the modules for new ones and/or testing with modules |
| of a different brand/type. |
| |
| - When I run install.bat it doesn't write anything to floppy. |
| |
| You most likely have unpacked the memtest+-2.xx.floppy.zip file into a |
| folder with a long pathname and/or containing + and - signs. It seems |
| rawrite doesn't like that. Just move the files you unpacked to a directory |
| like c:\memtest and execure it from there. |