memmap
Bu öğretici başlık: Bad Memory HowTo , çekirdeğin memmap
argümanını kullanarak çekirdeği kullanarak belleği devre dışı bırakmayı tartışıyor . Konuya göre nasıl 2 seçeneğiniz var memmap
:
- Kötü hafızadan sonra her şeyi kapat -
(mem=###M option)
- Yalnızca hatalı belleğin etrafındaki belleği kapat -
(memmap=#M$###M option)
İlk seçenekle, memtest 600M'de kötü bellek olduğunu bildirirse, RAM’i bu noktadan RAM’in sonuna kadar devre dışı bırakabilirsiniz:
mem=595M
802M ve 807M'de kötü RAM varsa, 800M'den başlayarak 10M'lik RAM bölümünü devre dışı bırakabilirsiniz:
memmap=10M$800M
NOT: Bu, 800M temel adresinden sonra 10M'yi kara listeye alacaktır. Kaçmalısın memtest86+
bu argüman doğru olduğunu teyit etmek için sonradan.
BadRAM
Ubuntu için BadRam adında bir yama var. Burada , Ubuntu Topluluğu sitesinde BadRAM başlıklı bu yazıda çok iyi ele alınmıştır .
Bu sayfadaki ayrıntıları kullanarak yamayı çekirdeğe uyguladıktan sonra Grub2 kurulumunuzda değişiklikler yapın:
Grub2 için bu siteden alıntı
Natty'deki GRUB2 config dosyasında çekirdek hatalı ram dışlamaları yapılandırmak için bir satır bulunur. Dolayısıyla, bunun hatayı gösteren bir hafıza bölümünü çıkarmanın tercih edilen bir yolu olduğunu varsayacağım. Ayarladığım satır
GRUB_BADRAM = "0x7DDF0000,0xffffc000"
Bulabildiğim her web sitesinde önerilen yol, bunu memtest86 çalıştırmak ve size BadRAM ayarlarını göstermesini sağlamaktı. memtest86 bana girmek zorunda kalacağım bir sayfa verdi. Tüm adreslerin bir 16K'lık bir blokta olduğunu görebiliyordum, o yüzden sadece bu 16K'lık bloğu etkisiz hale getirmek istedim. İşte doğru girişi nasıl oluşturduğum.
İlk parametre kolaydır. Kötü hafızanın temel adresi budur. Benim durumumda, tüm kötü adreslerin 0x7DDF0000'den büyük ve 0x7DDF4000'den küçük olduğunu görebiliyordum. Böylece 16K bloğunun başlangıcını başlangıç adresim olarak aldım.
İkinci parametre bir maskedir. İstediğiniz adres aralığının aynı değerleri paylaştığı 1s, değişkenlerin değişeceği yere 0s koyarsınız. Bu, adres aralığınızı yalnızca düşük sıra bitlerinin değişebileceği şekilde seçmeniz gerektiği anlamına gelir. Adresime bakarken, maskenin ilk kısmı kolaydır. 0xffff ile başlamak istiyorsunuz. Bir sonraki göz için bit haritalarla açıklayacağım. 0000 ile 0011 arasında değişmek istiyorum. Bu nedenle, badram için maske 1100 veya altıgen c olacaktır. Tüm aralığın eşlenmesini istediğimizden, son 3 nibet maskede 0 olmalı. Böylece toplam 0xffffc000 sonucunu elde ederiz.
Bu satırı / etc / default / grub içinde ayarladıktan sonra sudo güncelleme grubunu çalıştırdım ve yeniden başlattım ve artık kötü hafızam kullanılmıyordu. Bu yöntemi kullanarak hatalı belleği bulmak için çekirdek eklerine gerek yoktur.
Takip # 1
Memtest86 + için wikipedia sayfasını inceleyince şöyle belirtilir:
Memtest86 alıntıdan wikipedia sayfası
Memtest86 2.3 ve Memtest86 + 1.60'dan başlayarak, program, Linux çekirdeği için BadRAM yamasının beklediği biçimde kötü RAM bölgelerinin bir listesini çıkarabilir; Bu bilgiyi kullanarak, bir Linux sistemi bir kaç kötü bitli olsa bile güvenilir bir RAM modülünü kullanabilir. Grub2, aynı bilgiyi yamalı bir çekirdeğe sağlayabilir ve BadRAM yamasına ihtiyaç duymaz.
Ayrıca bu rastladım Gentoo sayfa belirtilen memmap=...
bunu böyle belirtmek böylece, bir onaltılık adresi kullanarak:
memmap=5M$0x2f796c48
5M sadece bir tahmindir, açıkçası kullanmak istediğiniz / ihtiyaç duymadığınız bölgedeki RAM miktarına bağlı olarak daha düşük veya yüksek ayarlamalar yapabilirsiniz.
Son olarak, boyutu hex olarak da belirtebilirsiniz:
memmap=0x10000$0x2f796c48
64KB'nin 0x2f796c48 adresinden başlayan bilgisini görmezden gelirdi.
Referanslar