Eu tenho alguns erros btrfs e ext4. Depois de decidir testar minha RAM, obtive os seguintes erros de repetição com memtester
. Eu sempre recebo erros semelhantes depois de um pouco de executar o memtester
. Geralmente em uma hora, mas levou 4-5 horas de uma vez.
A RAM do meu computador está soldada. Eu tenho um slot vazio adicional. Não há configurações no BIOS para desativar a RAM integrada.
Eu corri:
- Memtest86 + para 8 passes (~ 8 horas)
- MemTest86 para 18 passes (~ 9 horas)
memtester
estressapptest
no padrão Fedora 27, instalado em um pendrive (~ 10 horas)memtester
estressapptest
no Ubuntu 17.10 Live padrão (~ 2 horas)memtester
estressapptest
no Ubuntu 17.10 no pendrive (~ 8 horas)# debsums --changed
o único arquivo alterado foi a imagem de um tema.
Eles não imprimiram nenhum erro.
Estou usando o Ubuntu 17.10 (atualizado a partir do 17.04) com o kernel padrão. O kernel não está contaminado. É um laptop ASUS com Intel Haswell i3.
- Também testado com o Linux 4.14.13 e 4.15.0-rc3, rc4, linha principal.
- Também testado com o pacote intel-microcode eliminado.
O erro é reproduzível, o Nouveau está desativado ou ativado, nenhum driver binário da nvidia é carregado.
Colocou na lista negra os seguintes módulos: mtd
intel_spi_platform
intel_spi
porque eles não carregam na instalação padrão do Fedora 27 e parecem bloquear alguns laptops Lenova. Os erros não pararam.
uname -a
saída de
Linux hostname 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
# lsmod
saída de
https://paste.ubuntu.com/26222245/
# lsmod
Saída do Fedora 27
https://paste.ubuntu.com/26226473/
Situação atual
Coloquei meu disco rígido em um laptop (laptop de backup) que eu sabia ser bom e fiz os testes lá. Eu entendi os erros. Agora tenho certeza que isso é um problema de software. Eu nunca fui capaz de acionar os erros no meu laptop com um Ubuntu novo nem com um Fedora tentando muitas horas.
O que devo fazer?
Uma amostra dos erros:
Loop 6:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : testing 262
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94000.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94008.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94010.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94018.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94020.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94028.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94030.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94038.
Walking Ones : ok
Walking Zeroes : ok
8-bit Writes : ok
16-bit Writes : ok
Um erro semelhante com os dois slots de RAM está cheio:
Loop 1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : testing 4
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80000.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80008.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80010.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80018.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80020.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80028.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80030.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80038.
Bit Flip : setting 141
Um erro de stressapptest
:
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e000(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e008(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e010(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e018(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e020(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e028(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e030(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e038(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Eu suspeito que, de alguma forma, a configuração do Ubuntu combinada com o hardware do meu laptop seja a responsável por esses erros. Quase todas as vezes em pacotes de oito.
Informações sem importância e pouco relacionadas abaixo
Sobre os erros do btrfs; Eu estava usando 17.04. Eu perguntei no IRC da btrfs. Foi-me dito que poderia ser um erro de hardware ou de alguma forma um erro de gerenciamento de memória. Uma parte da página de metadados dos btrfs foi preenchida com zeros, exatamente como eu estou experimentando agora. Eu executei o memtester apenas algumas passagens, mudei para ext4 e coloquei a culpa no driver binário da nvidia.
Os comandos e seus parâmetros que eu uso:
# stressapptest -M 10000 -s 1800
10000 é a memória disponível que posso testar. Eu entendi via free -m
-s` é segundos.
# memtester 4096
A CPU do laptop possui 2 núcleos, então geralmente inicio duas instâncias. 4096 é metade da memória disponível atualmente viafree -m
fonte
memtest86+
em qualquer LiveCD de instalação do Ubuntu.Respostas:
A resposta excluída foi fechada
Uma resposta foi excluída nesta sessão de perguntas e respostas:
Minha resposta é semelhante, pois envolve gerenciamento de memória de nível muito baixo; KASLR no nível do Kernel.
O que o KASLR faz
KASLR significa K ernel A ddress S ritmo L ayout R andomization. Eu nunca ouvi falar em voz alta, mas na minha opinião eu o declaro "Casler". Pense fantasma amigável na máquina. KASLR é uma medida de segurança para randomizar quais módulos de kernel dos locais de memória residem. A teoria é que o kernel é mais difícil de invadir quando você não pode confiar no mesmo pedaço de código sempre no mesmo local de memória.
A operação KASLR pode ser considerada um oposto dos testadores de memória que repetidamente lêem e gravam nos mesmos locais de memória, esperando SEM MUDANÇAS. Por serem opostos, isso me atraiu (o idioma notou), a fazer uma pesquisa no Google sobre KASLR e erros de memória. Um em particular aparentemente não relacionado pode merecer uma mensagem no github vinculando a estas perguntas e respostas. A razão é que eles pensam que são os únicos afetados pela troca de endereço de memória (se eu estiver lendo o thread corretamente). Os três primeiros hits são do RedHat, com os quais eu não gosto de criar links porque seus sites são posts parciais para acessar os robôs de busca do Google e, então, eles fazem você pagar para ler.
Existem problemas conhecidos quando o KASLR carrega "coisas" do kernel no meio do mapa de memória, o que não deveria ser feito. Infelizmente, não me lembro do link que encontrei na semana passada para incluir na resposta desta noite. O link tinha um patch / solução alternativa para direcionar o KASLR para não usar locais de memória específicos.
Após confirmar problemas conhecidos com o KASLR e os locais de memória, comentei a questão para desativá-lo e executar novamente os testes de memória. Uma resposta afirmou que parece ter êxito, por isso estou publicando esta resposta.
Como desativar o KASLR
Embora eu esteja usando a opção de linha de comando do kernel do grub "kaslr" há alguns anos, ela se tornou o padrão do kernel desde pelo menos a versão 4.12 . Para eliminar o KASLR do carregamento, use edite
/etc/default/grub
e altere esta linha:Você pode ter outras opções além de "quiet" e "splash". O passo importante é adicionar "nokaslr" e deixar as outras opções no lugar.
Salve o arquivo e execute:
É claro que outra maneira de desabilitar o KASLR é simplesmente usar um Kernel mais antigo como 4.4.0 no Ubuntu 16.04.1 quando o KASLR não foi incluído automaticamente.
fonte
O problema parece muito com uma corrupção aleatória da RAM. Na minha experiência, o MemTest86 é um teste "fácil demais" para o hardware. Ele encontrará memória realmente ruim, mas problemas leves muitas vezes passam despercebidos.
Se você quiser saber se sua memória está boa, tente executar o Prime95 no modo de autoteste / tortura configurado para usar o máximo de RAM possível.
Outro bom teste é executar o teste do martelo de dupla face por algumas horas.
Acredito que, se o Prime95 e o martelo de dupla face não encontrarem problemas com sua memória, provavelmente funcionará corretamente. No entanto, simplesmente executando o MemTest86, compilando programas, instalando o SO, jogando jogos pode parecer funcionar mesmo que sua memória esteja um pouco ruim (já estive lá, fiz isso - e obtive dados corrompidos a longo prazo).
fonte