Kuinka lisätä oikea huono RAM-sektori MemTest86 + -virheilmoituksen mukaan?

MemTest86 + (Ubuntu 13.04: n mukana toimitettu versio) sanoo

Failing address: 002f796c48 - 759.5 MB 

Mitä minun pitäisi tehdä määritetäänkö memmap -ydinparametrissa ohittamaan tämä alue?

Olen yrittänyt suorittaa memtester 770MB ja se sanoo kaiken on ok, joten se ei näytä siltä, että MemTestin indikaatiot tarkoittavat virhettä 759,5 MB: ssa alusta alkaen.

Kuinka tulkita tämä MemTest-indikaatio memmap?

Minulla ei ole rahaa ostaa uutta RAM-muistia nyt, ja virhe näyttää olevan yksi, joten toivon voivani vain ohittaa sen.

Kommentit

  • FWIW, ydin merkitsee tietyt sivut " varattuiksi ", jos se havaitsee huonon segmentin mutta pystyy toipumaan. Näyttääkö " free -m " -lähdössä kahden kokonaisvoimat? Mainitsen tämän tapa selittää miksi memtester voi ei näe huonoa RAM-muistia, mutta memtest86 + voi.
  • Ei näytä ' t näyttävän kahden voimaa tosiasiallisesti: i.stack.imgur.com/l86L1.png
  • Virheen havaitsemiseen mennessä (jos sinulla on jopa ecc-ram), se on yleensä liian myöhäistä. Myöskään free -m ei koskaan ilmoita kahden tasaisesta voimasta, koska BIOS ja ydin varaavat molemmat ram.
  • Haaveilen ostamaan ECC-kannettavan, mutta en koskaan löytänyt yhtään tarjousta. = ”3a2c73cbe2″>

ei ole olemassa.

  • Näyttää siltä, että ydin printk ' s kun se löytää huonon sivun (rivi 264-265).
  • Vastaa

    muistikirja

    On tämä opetusohjelma nimeltä Bad Memory HowTo , jossa käsitellään muistin poistamista käytöstä ytimen kautta käyttämällä memmap argumentti ytimelle. Kuinka sinulla on 2 vaihtoehtoa, kun on kyse memmap:

    • Sammuta kaikki virheellisen muistin jälkeen – (mem=###M option)
    • Sammuta vain muisti viallisen muistin ympärillä – (memmap=#M$###M option)

    Ensimmäisellä vaihtoehdolla Jos memtest ilmoittaa, että muistissa on vikaa 600 megatavulla, voit poistaa RAM-muistin siitä pisteestä RAM-muistin loppuun asti tällä tavalla:

     mem=595M 

    Jos on ” Huono RAM-muistitila 802M ja 807M, voit poistaa käytöstä 10M RAM-osan, joka alkaa 800M: stä näin:

    memmap=10M$800M 

    HUOMAUTUS: Tämä lisää mustan 10M: n 800M: n perusosoitteen jälkeen. Suorita memtest86+ jälkikäteen vahvistaaksesi, että tämä argumentti on oikea.

    BadRAM

    Ubuntulle on saatavana korjaustiedosto nimeltä BadRam. Se on hyvin kattava tässä viestissä, jonka otsikko on: BadRAM Ubuntu-yhteisössä -sivusto.

    Kun olet asentanut korjaustiedoston ytimeen käyttämällä sivun tietoja, teet muutoksia Grub2-määrityksiin:

    ote Grub2-sivustosta

    Natty: n GRUB2-määritystiedostossa on rivi ytimen bad ram -poissulkemisten määrittämiseksi. Joten oletan, että se on suositeltava tapa kartoittaa osa muistista, joka näyttää virheitä. Määrittämäni rivi oli

    GRUB_BADRAM = ”0x7DDF0000,0xffffc000”

    Ehdotettu tapa jokaisessa löytämässäni verkkosivustossa oli asettaa tämä ajamaan memtest86 ja antamaan sen näyttää sinulle BadRAM-asetukset. memtest86 antoi minulle sivun tavaraa, jonka minun olisi pitänyt syöttää. Huomasin, että kaikki osoitteet olivat yhdessä 16K-lohkossa, joten halusin vain kartoittaa kyseisen 16K-lohkon toimimattomaksi. Näin loin oikean merkinnän.

    Ensimmäinen parametri on helppo. Se on huonon muistin perusosoite. Minun tapauksessani huomasin, että kaikki huonot osoitteet olivat suurempia kuin 0x7DDF0000 ja alle 0x7DDF4000. Joten otin 16K-lohkon alun lähtöosoitteeni.

    Toinen parametri on maski. Laitat 1: n haluamaasi osoitealueeseen samat arvot ja 0: n, jos se vaihtelee. Tämä tarkoittaa, että sinun on valittava osoitealueesi siten, että vain matalamääräiset bitit vaihtelevat. Osoitettani tarkasteltaessa maskin ensimmäinen osa on helppoa. Haluat aloittaa 0xffff: llä. Seuraavaa napostelua varten selitän bittikartoilla. Haluan vaihdella välillä 0000 – 0011. Joten, badram-naamio olisi 1100 tai hex c. Viimeisten kolmen napautuksen on oltava maskin kaikki nollat, koska haluamme, että koko alue kartoitetaan. Joten saamme kokonaistuloksen 0xffffc000.

    Asetettuani tämän rivin tiedostoon / etc / default / grub, suoritin sudo update-grub ja käynnistyin uudelleen, eikä huono muistini ollut enää käytössä. Ytimen korjaustiedostoja ei tarvita viallisen muistin kartoittamiseen tällä menetelmällä.

    Seuranta # 1

    Katsoen wikipedia-sivulta memtest86 +: n sanotaan seuraavasti:

    ote Memtest86-wikipedia-sivulta

    Alkaen Memtest86 2.3: sta ja Memtest86 + 1.60, ohjelma voi antaa luettelon virheellisistä RAM-alueista siinä muodossa, jonka BadRAM-korjaus odottaa Linux-ytimelle; näiden tietojen avulla Linux-järjestelmä voi luotettavasti käyttää RAM-moduulia, vaikka sillä olisi muutama huono bitti. Grub2 pystyy toimittamaan nämä samat tiedot avaamattomalle ytimelle, joten BadRAM-korjaustiedoston tarvetta ei tarvita.

    Olen myös törmännyt tähän Gentoo -sivu , joka määritti memmap=... käyttämällä hex-osoitetta, joten voit määrittää sen näin:

    memmap=5M$0x2f796c48 

    5M on vain arvaus. Ilmeisesti voit säätää sitä pienemmäksi tai korkeammaksi sen mukaan, kuinka paljon RAM-muistia kyseisen alueen ympärillä haluat / haluat jättää pois.

    Lopuksi voit määrittää koon myös heksalla:

    memmap=0x10000$0x2f796c48 

    Ohittaa 64 kt: n osoitteet alkaen osoitteesta 0x2f796c48.

    Viitteet

    Kommentit

    • " 800M – 804M " oletetaan olevan " 800M – 810M " I oletetaan …
    • Se voi olla, mutta myös kirjoittamani on OK, vaikka se ' heittää enemmän muistia kuin 4M välillä 800–810 M.
    • 1. Tiedän vaihtoehdon memmap, mutta kysymys on enemmän siitä, miten tulkitaan memtest86 + -lähtö. Olen antanut erityisen esimerkin memtest86 + -ulostulosta ja kysy apua memmap vastaavassa määrittelyssä tässä tapauksessa. 2. Suorita memtest86 + jälkikäteen vahvistaaksesi, että tämä argumentti on oikea. " – memtest86 + ajaa ennen käyttöjärjestelmän ydintä, joten epäilen vakavasti memmap Linux-ytimen vaihtoehto voi vaikuttaa siihen.
    • @Ivan, 1. Luulin, että se oli ilmeistä antamieni esimerkkien perusteella, mutta sinä ' d on sanottava tapauskohtaisesti: memmap=5M$759M tapauksessasi, koska annettu memtest86 + epäonnistuu 759,5 Mt: lla. 2. Tarkoitin, että sinun tulisi välittää memmap=... -vaihtoehto myös memtest86 +: lle. Minua ei testattu / vahvistamaton, mutta jotain, mitä voit ehkä tehdä memtest86 +: lla.
    • Ok, kiitos. En ollut varma, mitä " 002f796c48 – 759,5 MB " tarkoittaa (ehkä se voi olla 759,5 mega 002f796c48-osoitteen tai vastaavan jälkeen) ), enkä ole koskaan epäillyt voivani välittää Linux-ytimen parametreja MemTest86 +: lle (ajattelin, että sillä ei ollut mitään tekemistä Linuxin kanssa).

    Vastaa

    Memtest86 + (käytin 4.20) voi lähettää badram-muodon suoraan.

    1. Paina ”c” päästäksesi määritysvalintaikkunaan memtest-määritysikkuna

    2. Sitten ”4” virheraporttitilaa varten

      muistitestivirheilmoitustilan valintaikkuna

    3. Sitten ”3” ”BadRAM-malleille”

    Tulos muuttuu yksittäisten testivirheiden luettelosta sarjaksi badram = -riviä, joista kukin sisältää yhden uuden huonon sektorin. Koska viivat liittyvät ja yhdistyvät vierekkäisiin segmentteihin, voit suorittaa testin ilman päätä yön yli ja käyttää lopullista painettua viivaa (vaikka jos sinulla on todella huono himmennys, epätarkka ”5 mega tämän pisteen ympärillä” -muoto on todennäköisesti melko lyhyt ).

    Lopputulos:

    Memtest86 + näytetään badram-lähtö

    kommentit

    • Jos en tarvinnut ' minun ei tarvitse kopioida sitä käsin ja sen sijaan luovuttaa se GRUB: lle ilman kirjoitusvirheitä, se olisi fantastista.
    • Otin valokuvan siitä (kamerapuhelin), ladoin sen GIMP: iin, = > harmaasävy = > invert = > kontrasti / gamma ja luovuta se sitten tesseract ${IMG} stdout .. vahvista ja korjasi sitten rivin ennen lisäämistä tiedostoon / etc / default / grub … Luultavasti kesti yhtä kauan kuin syötät sen manuaalisesti heti ^^
    • Ehdottomasti hauskempaa kuin manuaalinen tekeminen tho ugh

    Vastaa

    Erittäin likainen ja erittäin mukava kiertää: Suorita käyttäjätilan muistitesteri, odota, kunnes se löytää virheen. Anna sen esimerkiksi osoitteessa 0xfce2ea31.

    Suorita sitten uudelleen memtester, mutta tällä fyysisellä osoitteella, joten:

    memtester -p 0xfce20000 64k 128 

    Olla varmasti, on parempi, jos uhraat enemmän kuin ongelmallisen osoitteen sivu.Täällä me uhrasimme 64 kt: n viallisen osoitteen ympärille.

    Jos kaikki meni hyvin, se löytää viallisen muistipaikan jälleen paljon nopeammin.

    Keskeytä sitten memtester-prosessi painamalla ctrl / z.

    Seuraus: kunnes memtester-prosessi on keskeytetty, se ei vie lisää resurssi, mutta mikään muu prosessi ei voi käyttää viallista muistia . Koska muistitesti varaa sen.

    Erityisen hyödyllinen isoissa, etäpalvelimissa. Keskeytetty prosessi voi Pysy kunnes uutta RAM-muistia ei lähetetä. Tai ehkä seuraavaan jouluun asti, jolloin seisokkeista ei tule niin suurta ongelmaa.

    Kommentit

    • Tämän temppun sijaan voit myös käyttää util-linuxin chmem -työkalua kertomaan ytimelle tietyn muistialueen offline-tilaan (siirtämällä tiedot muualle eikä koskaan käyttämättä sitten sivuja uudelleen) .
    • @TooTea Yritin tätä työkalua useilla koneilla, eikä se voinut d aktivoi yksi muistilohko.

    Vastaa

    Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *