Se você procurar em /etc/default/grub
, encontrará um parâmetro GRUB_BADRAM=
, onde poderá identificar quais são os locais com memória ruim.
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
Extraído do link ...
Configuração de BADRAM no Grub2
O arquivo de configuração do GRUB2 no Natty tem uma linha para configurar exclusões de memória RAM do kernel. Então, vou assumir que é a maneira preferida de mapear uma seção de memória que está mostrando erros. A linha que eu defini era
GRUB_BADRAM="0x7DDF0000,0xffffc000"
A maneira sugerida em cada site que eu encontrei era configurar isso para rodar o memtest86 e mostrar as configurações do BadRAM. memtest86 me deu uma página de coisas que eu teria que entrar. Eu pude ver que todos os endereços estavam em um bloco de 16K, então eu só queria mapear aquele bloco de 16K fora de ação. Aqui está como eu criei a entrada correta.
O primeiro parâmetro é fácil. Esse é o endereço base da memória ruim. No meu caso, pude ver que todos os endereços ruins eram maiores que 0x7DDF0000 e menores que 0x7DDF4000. Então, tomei o começo do bloco de 16K como meu endereço inicial.
O segundo parâmetro é uma máscara. Você coloca 1s em que o intervalo de endereços que você deseja compartilha os mesmos valores e 0s em que ele varia. Isso significa que você precisa escolher o seu intervalo de endereço de tal forma que apenas os bits de ordem baixa variem. Olhando para o meu endereço, a primeira parte da máscara é fácil. Você quer começar com 0xffff. Para o próximo nibble, vou explicar com mapas de bits. Eu quero variar de 0000 a 0011. Assim, a máscara para badram seria 1100 ou um hex c. Os últimos 3 nibbles precisam ser todos os 0s na máscara, pois queremos que o range inteiro seja mapeado. Assim, obtemos um resultado total de 0xffffc000.
Depois de definir essa linha em / etc / default / grub, eu corri o sudo update-grub e reiniciei e minha memória ruim não estava mais sendo usada. Nenhuma correção de kernel é necessária para mapear a memória ruim usando este método.
Naturalmente, o melhor plano de ação seria substituir a RAM defeituosa.