A MemTest86 + (az Ubuntu 13.04 verziója) mondja
Failing address: 002f796c48 - 759.5 MB
Mit tegyek adja meg a memmap
kernel paraméterben, hogy megkerülje ezt a területet?
Megpróbáltam futtatni a memtester 770MB
fájlt, és mindent elmond rendben van, így nem úgy néz ki, hogy a MemTest jelzései a kezdetektől fogva hibát jelentenek a 759.5. MB-ban.
Hogyan értelmezzük ezt a MemTest jelzést a memmap
?
Nincs pénzem új RAM-ot vásárolni, és a hiba egyetlennek tűnik, ezért remélem, hogy csak felül tudom írni.
Megjegyzések
- FWIW, a kern bizonyos oldalakat ” fenntartottként jelöli meg “, ha rossz szegmenst észlel de képes helyreállni. A ” free -m ” kimenete kettő hatványát mutatja az összesítéshez? annak magyarázata, hogy a memtester miért tud nem látja a rossz RAM-ot, de a memtest86 + képes.
- Nem úgy néz ki, mint két tényleges tényező: i.stack.imgur.com/l86L1.png
- Mire hiba észlelhető (ha még van ecc ram is), általában már késő. Szintén a free -m soha nem jelent kettő egyenletes erejét, mivel a bios és a kern is fenntart egy kis ramot.
- Álmodom arról, hogy vásárolok egy ECC laptopot, de soha nem találtam elérhető ajánlatot, úgy tűnik, hogy nem ‘ nem létezik.
- Úgy tűnik, hogy a kern is printk ‘ s amikor rossz oldalt talál (264–265. sor).
Válasz
memmap
Van egy ilyen útmutató: Bad Memory HowTo , amely a memória letiltását tárgyalja a kernelen a memmap
argumentum a kernelhez. A hogyan szerint 2 lehetősége van, amikor memmap
:
- A rossz memória után kapcsoljon ki mindent –
(mem=###M option)
- Kapcsolja ki csak a memóriát a rossz memória körül –
(memmap=#M$###M option)
Az első opcióval ha a memtest jelentése szerint 600M-nél rossz memória van, akkor ezzel a ponttól a RAM végéig letilthatja a RAM-ot:
mem=595M
Ha van ” s rossz RAM 802M és 807M mellett, letilthatja a 10M RAM szakaszot 800M kezdettel, így:
memmap=10M$800M
MEGJEGYZÉS: Ez feketelistára teszi a 10M-et a 800M-es alapcím után. Utána futtatnia kell a memtest86+
-t, hogy megerősítse, hogy ez az argumentum helyes.
BadRAM
Van egy javítás az Ubuntu számára, BadRam néven. Nagyon jól lefedi itt, ebben a bejegyzésben: BadRAM az Ubuntu közösségben webhely.
Miután kijavította a javítást a kernelre az adott oldal adatainak felhasználásával, módosítja a Grub2 beállításait:
részlet a Grub2 webhelyéről
A Natty-ban található GRUB2 konfigurációs fájl egy sort tartalmaz a kernel bad ram kizárásainak konfigurálására. Tehát feltételezem, hogy ez a memóriarész hibaképes feltérképezésének előnyös módja. Az általam beállított sor a következő volt:
GRUB_BADRAM = “0x7DDF0000,0xffffc000”
Minden általam megtalált webhelyen javasolt módszer az volt, hogy beállítottam ezt: a memtest86 futtatását, és azt, hogy megmutassa a BadRAM beállítások. A memtest86 adott nekem egy oldalnyi cuccot, amelyeket be kellett volna adnom. Láttam, hogy az összes cím egy 16K-os blokkban található, ezért csak azt a 16K-os blokkot akartam működésképtelenül feltérképezni. Így állítottam elő a helyes bejegyzést.
Az első paraméter egyszerű. Ez a rossz memória alapcíme. Az én esetemben láttam, hogy az összes rossz cím nagyobb volt, mint 0x7DDF0000, és kevesebb, mint 0x7DDF4000. Tehát a 16K blokk elejét vettem kezdő címnek.
A második paraméter egy maszk. Azokat az 1-eket írja be, ahol a kívánt címtartomány ugyanazokat az értékeket osztja meg, a 0-kat pedig ott, ahol változni fog. Ez azt jelenti, hogy úgy kell megválasztania a címtartományt, hogy csak az alacsony sorrendű bitek változhassanak. A címemet nézve a maszk első része könnyű. A 0xffff-vel akarsz kezdeni. A következő rágcsálásra bit térképekkel magyarázom. 0000 és 0011 között szeretnék lenni. Tehát a badram maszkja 1100 vagy hex c lenne. Az utolsó 3 rágásnak mind a 0-nak kell lennie a maszkban, mivel azt akarjuk, hogy a teljes tartomány feltérképezve legyen. Tehát a 0xffffc000 összesített eredményt kapjuk.
Miután beállítottam ezt a sort az / etc / default / grub fájlba, lefuttattam a sudo update-grub fájlt, és újraindítottam, és a rossz memóriámat már nem használtam. A rossz memória feltérképezéséhez ezzel a módszerrel nincs szükség kernelparancsokra.
1. számú követés
A wikipédia oldalán a memtest86 + keresése után a következőket állítja:
kivonat a Memtest86 wikipédia oldalról
A Memtest86 2.3-tól kezdődően és a Memtest86 + 1.60, a program kiadhatja a rossz RAM régiók listáját a BadRAM javítás által a Linux kernel számára elvárt formátumban; Ezen információk felhasználásával a Linux rendszer megbízhatóan használhat RAM modult, még akkor is, ha van néhány rossz bitje. A Grub2 ugyanazt az információt képes eljuttatni egy ki nem javított kernelhez, elutasítva a BadRAM javítás szükségességét.
Szintén találkoztam ezzel a Gentoo oldal , amely megadta a memmap=...
-et hexadecimális címmel, így a következőképpen adhatta meg:
memmap=5M$0x2f796c48
Az 5M csak találgatás, nyilvánvalóan alacsonyabbra vagy magasabbra állíthatná, attól függően, hogy az adott régió környékén mennyi RAM-ot szeretne kihagyni.
Végül megadhatja a méretet hexán is:
memmap=0x10000$0x2f796c48
Figyelmen kívül hagyja a 64KB-osokat a 0x2f796c48 címmel kezdődően.
Hivatkozások
Megjegyzések
- ” 800M – 804M ” állítólag ” 800M – 810M ” I feltételezem …
- Lehet, de amit írtam, az is rendben van, annak ellenére, hogy ‘ több memóriát dob el, mint a 4M-es 800M és 810M között.
- 1. Tudok a
memmap
opcióról, de a kérdés inkább a memtest86 + kimenet értelmezésére vonatkozik. Hoztam egy konkrét példát a memtest86 + kimenetre és a segítség amemmap
ennek megfelelő konfigurálásához ebben az esetben. 2. Utána futtatnia kell a memtest86 + fájlt, hogy megbizonyosodhassunk arról, hogy ez az érv helytálló. amemmap
Linux kern opció hatással lehet rá. - @Ivan, 1. Úgy gondoltam, hogy az általam felvett példák alapján nyilvánvaló, de te ‘ d valami olyasmit kell mondani, hogy:
memmap=5M$759M
az Ön esetére, mivel az adott memtest86 + 759,5 MB-nál meghibásodik. 2. Arra gondoltam, hogy amemmap=...
opciót át kell adnia a memtest86 + -nak is. Ezt nem teszteltem / nem erősítettem meg, de valami olyat tehet, amit megtehet a memtest86 + alkalmazással. - Ok, köszönöm. Nem voltam biztos benne, hogy mit jelent a ” 002f796c48 – 759,5 MB ” (lehet, hogy 759,5 mega lehet a 002f796c48 cím vagy valami hasonló ), és még soha nem sejtettem, hogy átadhatom a Linux kernelparamétereit a MemTest86 + -nak (azt gondoltam, hogy ez semmi köze a Linuxhoz).
Válasz
A Memtest86 + (a 4.20-at használtam) közvetlenül képes kiadni egy badram formátumot.
-
Nyomja meg a “c” gombot a konfigurációs párbeszédablak eléréséhez
-
Ezután “4” a “Hibajelentési mód”
-
Ezután “3” a “BadRAM mintákhoz”
A kimenet az egyes teszthibák listájáról badram = sorok sorozatára változik, amelyek mindegyike tartalmaz még egy új rossz szektort. Mivel a vonalak a szomszédos szegmensekhez fűződnek és egyesülnek, egyszerűen csak egy éjszakán át futtathatja a tesztet, és használhatja az utolsó nyomtatott sort (bár ha nagyon rossz a dimm, akkor a kevésbé pontos “5 mega ezen a ponton” formátum valószínűleg kissé rövidebb ).
Végeredmény:
Megjegyzések
- Most, hogyha nem lett volna ‘, akkor ezt nem kellett kézzel átmásolnom, hanem átírási hibák nélkül átadni a GRUB-nak, ez fantasztikus lenne.
- Amit csináltam, lefényképeztem róla (kamerás telefon), betöltöttem a GIMP-be, = > szürkeárnyalatos = > invert = > kontraszt / gamma, majd átadja a következőnek:
tesseract ${IMG} stdout
.. majd ellenőrizte és javította a sort, mielőtt beszúrta az / etc / default könyvtárba / grub … Valószínűleg ugyanannyi időbe telt, mint azonnali manuális beírása ^^ - Határozottan szórakoztatóbb, mint manuálisan megtenni ugh
Válasz
Nagyon piszkos és nagyon jó megoldás: futtasson egy felhasználói memória tesztelőt, várjon, amíg meg nem jelenik hibát talál. Engedje meg például a 0xfce2ea31 címen.
Ezután futtassa újra a memtester-t, de azon a fizikai címen, így:
memtester -p 0xfce20000 64k 128
jobb, ha többet áldozol, mint a problémás cím oldalát.Itt 64 kByte-ot áldoztunk a hibás cím körül.
Ha minden rendben van, akkor sokkal gyorsabban megint megtalálja a hibás memóriahelyet.
Ezután függessze fel a memtester folyamatot egy ctrl / z használatával.
Következmény: amíg a memtester folyamatát nem függesztik fel, addig nem vesz el többet erőforrás, de egyetlen más folyamat sem fogja elérni a hibás memóriát . Mivel a memtester kiosztja.
Különösen hasznos nagy, távoli szervereken. A felfüggesztett folyamat maradjon, amíg az új RAM-ot nem szállítják le. Vagy talán a következő karácsonyig, amikor a leállás nem lesz akkora probléma.
Hozzászólások
- E trükk helyett a util-linux
chmem
eszközével is megadhatja a kernelnek, hogy egy adott memóriatartományt offline állapotba helyezzen (az adatokat máshová helyezi, majd soha nem használja újra az oldalakat) . - @TooTea Ezt az eszközt több gépen is kipróbáltam, és nem tudott d egyetlen memóriablokk aktiválása.