Linuxové noviny | 05-06/2001 | ||||
| |||||
Jak memtest pracujeMemtest nelze spouštět z běžícího operačního systému - buď se zavádí přímo z diskety anebo z disku pomocí nějakého zavaděče (třeba LILO, v některých distribucích je memtest součástí LILa). Po zavedení se memtest spustí a v menu zvolíme typy testů, které chceme provést. Zvolené testy pak memtest provádí ve smyčce, dokud jej neukončíme.Testování paměti probíhá tak, že se celá paměť zaplní určitým vzorem. Následně se od nejnižší adresy k nejvyšší postupně čte (kontroluje se, zda je tam skutečně to, co bylo zapsáno) a přepisuje jiným vzorem (binárním doplňkem původního vzoru). Totéž se opakuje od nejvyšší adresy k nejnižší. Tento algoritmus se nazývá "moving inversion". Druhý algoritmus, který memtest používá, funguje následovně: Počínaje výchozí pozicí (offsetem) 0 se na každou dvacátou pozici v celém rozsahu paměti zapíše určitý vzor. Následně na všechny ostatní pozice zapíše jiný vzor (opět binární doplněk původního vzoru) a tento krok několikrát opakuje. Poté znovu přečte a zkontroluje obsah každé dvacáté pozice. Celý algoritmus je pak opakován z výchozí pozice zvýšené o 1 (protože testujeme každou dvacátou pozici, je tedy potřeba ke kompletnímu otestování paměti algoritmus dvacekrát opakovat, pokaždé z výchozí pozice o 1 vyšší). Konkrétně pak memtest nabízí výběr z 10 testů vycházejících z výše popsaných algoritmů. Liší se vzory, které zapisují, některé pracují se zapnutou nebo vypnutou cache procesoru apod. a také se liší dobou vykonávání.
InstalaceSestává pouze z vytvoření bootovací diskety s memtestem a to buď s použitím již připraveného obrazu, který je součástí distribuce (soubor precomp.bin), anebo s použitím zdrojového kódu. V prvním případě postačí vložit prázdnou disketu do počítače a spustit make install-bin. Pokud chceme memtest používat pro kontrolu paměti častěji, můžeme soubor memtest.bin zkopírovat třeba do adresáře /boot, upravit konfiguraci zavaděče OS a můžeme memtest zavádět z disku. Pokud používáme LILO, do souboru /etc/lilo.conf vložíme na konec např. následující dva řádky:
image = /boot/memtest.bin label = memtest Na výzvu LILO: při startu počítače pak zadáme "memtest" a memtest se spustí z pevného disku.
Diagnostika vadných modulůProtože memtest nezná skutečné rozmístění SIMM/DIMM modulů na desce, nemůže přímo identifikovat, který z modulů je vadný. Pokud tedy memtest nalezne chybu, je potřeba test opakovat a postupně ubírat jednotlivé moduly nebo je postupně vyměňovat za jiné. Ne vždy ovšem můžeme libovolně ubírat či kombinovat paměťové moduly, např. proto, že u některých systémových desek se musí sloty obsazovat po dvojicích apod. V tomto případě si pomůžeme výměnou pořadí modulů - pokud se změní vadná adresa, pak je jeden z modulů, jejichž pořadí jsme zaměnili, vadný.V této souvislosti se zmíníme i o záplatě linuxového jádra BadRAM, která umožňuje Linuxu pracovat i s částečně poškozenými paměťovými moduly. Tato záplata funguje tak, že vadná paměť je při bootu alokována jádrem a zůstává nepoužita.
Možné problémy
ZávěremMemtest86 je velice šikovná utilita pro důkladné otestování paměti a rozhodně se vyplatí mít ji po ruce. S pomocí jaderné záplaty BadRAM pak můžeme i částečně poškozené paměťové moduly jako náhradní řešení používat.![]() |