Errores de memoria con Ubuntu pero no con MemTest86 +

8

Tengo algunos errores btrfs y ext4. Después de decidir probar mi RAM, obtuve los siguientes errores repetidos memtester. Siempre obtengo errores similares después de ejecutar un poco memtester. Generalmente en una hora, pero tomó de 4 a 5 horas en una sola vez.

La RAM de mi computadora está soldada. Tengo una ranura vacía adicional. No hay configuraciones en BIOS para deshabilitar la RAM incorporada.

He corrido:

  • Memtest86 + para 8 pases (~ 8 horas)
  • MemTest86 para 18 pases (~ 9 horas)
  • memtestery stressapptesten Fedora 27 predeterminado, instalado en una memoria USB (~ 10 horas)
  • memtestery stressapptesten Ubuntu 17.10 Live default (~ 2 horas)
  • memtestery stressapptesten Ubuntu 17.10 en memoria USB (~ 8 horas)
  • # debsums --changed El único archivo modificado fue una imagen de un tema.

No imprimieron ningún error.

Estoy usando Ubuntu 17.10 (actualizado desde 17.04) con el kernel predeterminado. Kernel no está contaminado. Es una computadora portátil ASUS con Intel Haswell i3.

  • También probado con Linux 4.14.13 y 4.15.0-rc3, rc4, mainline.
  • También probado con el paquete de microcódigo intel purgado.

El error es reproducible o Nouveau está desactivado o activado, no se cargan controladores binarios nvidia.

Incluyeron en la lista negra los siguientes módulos: mtd intel_spi_platform intel_spidebido a que no se cargan en la instalación predeterminada de Fedora 27 y parecen bloquear algunas computadoras portátiles Lenova. Los errores no se han detenido.

uname -asalida 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

# lsmodsalida de

https://paste.ubuntu.com/26222245/

# lsmodLa salida de Fedora 27

https://paste.ubuntu.com/26226473/

Situación actual

Puse mi HDD en una computadora portátil (laptop de respaldo) que sabía que era buena y realicé las pruebas allí. Tengo los errores. Ahora estoy bastante seguro de que este es un problema de software. Nunca he podido activar los errores en mi computadora portátil con un Ubuntu nuevo ni con un Fedora intentando muchas horas.

¿Qué tengo que hacer?

Una muestra de los errores:

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

Un error similar con las dos ranuras RAM están llenas:

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

Un error 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

Sospecho que de alguna manera la configuración de Ubuntu combinada con el hardware de mi computadora portátil es la culpable de estos errores. Casi cada vez en paquetes de ocho.

Información poco importante y poco relacionada a continuación

Sobre los errores btrfs; Estaba usando 17.04. He preguntado en btrfs 'irc. Me han dicho que podría ser un error de hardware o de alguna manera un error de administración de memoria. Una parte de la página de metadatos de los btrfs se llenó con ceros, tal como lo he estado experimentando ahora. Ejecuté memtester solo unos pocos pases, cambié a ext4 y culpé al controlador binario nvidia.

Los comandos y sus parámetros que uso:

# stressapptest -M 10000 -s 1800

10000 es la memoria disponible que puedo probar. Lo consigo a través de free -m-s` son segundos.

# memtester 4096

La CPU de la computadora portátil tiene 2 núcleos, por lo que generalmente inicio dos instancias. 4096 es la mitad de la memoria disponible actual a través defree -m

Artyom
fuente
1
Reemplazaría la RAM defectuosa, pero no sé si es posible con chips de RAM soldados. ¿Es la computadora lo suficientemente nueva como para ser reemplazada dentro de la garantía?
sudodus
@sudodus Sí, su garantía aún no ha expirado. Lo haré RMA si no puedo encontrar una solución. Descubrí que, aunque no existe una forma oficial, las personas han encontrado formas de deshabilitar carneros soldados en algunas computadoras portátiles saltando algunos puntos de prueba.
Artyom
Para estar más seguro, intente memtest86+desde cualquier instalación de Ubuntu LiveCD.
N0rbert
@N0rbert Hice algunas pruebas con memtest86 -la propiciatoria- con resultados negativos. Pero fueron cortos -4 repeticiones-, haré una prueba de la noche a la mañana.
Artyom
2
@sudodus, creo que memtest86 + puede probar su propia memoria, sin embargo, no debería ser un gran problema. Sí, he reparado mi partición ext4 varias veces ya que se rompió probablemente debido a errores relacionados con la memoria. Desafortunadamente, no pude reparar mi partición btrfs ya que los metadatos de alguna manera se corrompieron antes de que se escribiera en el disco y mi partición btrfs probablemente la extendió con btrfs scrub y corrompió parte de ella.
Artyom

Respuestas:

1

La respuesta eliminada estaba cerca

Se eliminó una respuesta en estas preguntas y respuestas:

¿Ya intentaste reinstalar ubuntu porque suena como una falla de administración de memoria a nivel del sistema operativo

Mi respuesta es similar, ya que implica una gestión de memoria de muy bajo nivel; KASLR a nivel de Kernel.

Que hace KASLR

KASLR significa K ernel A ddress S pace L ayout R andomization. Nunca lo escuché en voz alta, pero en mi mente lo pronuncio "Casler". Piensa en un fantasma amigable en la máquina. KASLR es una medida de seguridad para aleatorizar qué ubicaciones de memoria residen los módulos del núcleo. La teoría es que el núcleo es más difícil de hackear cuando no se puede confiar en que el mismo bit de código siempre esté en el mismo lugar de memoria.

La operación KASLR podría considerarse un opuesto a los probadores de memoria que leen y escriben repetidamente en las mismas ubicaciones de memoria sin esperar CAMBIOS. Siendo estos opuestos, me atrajo (modismo notado), hacer una búsqueda en Google sobre KASLR y errores de memoria. Uno en particular aparentemente no relacionado podría merecer un mensaje en github que se vincule a estas preguntas y respuestas. La razón es que piensan que son los únicos afectados por el cambio de direcciones de memoria (si estoy leyendo su hilo correctamente). Los primeros tres éxitos son de RedHat, a quien no me gusta vincular porque sus sitios web son publicaciones parciales para acceder a los robots de búsqueda de Google y luego te hacen pagar para leer.

Hay problemas conocidos cuando KASLR carga "cosas" del kernel en el medio del mapa de memoria, lo que no se supone que debe hacer. Lamentablemente, no puedo recordar el enlace que encontré la semana pasada para incluir en la respuesta de esta noche. El enlace tenía un parche / solución alternativa para indicar a KASLR que no usara ubicaciones de memoria específicas.

Después de confirmar los problemas conocidos con KASLR y las ubicaciones de memoria, comenté bajo la pregunta para deshabilitar KASLR y volver a ejecutar las pruebas de memoria. Una respuesta indicó que parece tener éxito, así que estoy publicando esta respuesta.

Cómo deshabilitar KASLR

Aunque he estado usando la opción de línea de comando del núcleo de grub "kaslr" durante un par de años, se convirtió en el núcleo predeterminado desde al menos la versión 4.12 . Para eliminar la carga de KASLR, use editar /etc/default/gruby cambiar esta línea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

Es posible que tenga otras opciones además de "silencio" y "bienvenida". El paso importante es agregar "nokaslr" y dejar las otras opciones en su lugar.

Luego guarde el archivo y ejecute:

sudo update-grub

Por supuesto, otra forma de deshabilitar KASLR es simplemente usar un Kernel anterior como 4.4.0 en Ubuntu 16.04.1 cuando KASLR no se incluyó automáticamente.

WinEunuuchs2Unix
fuente
0

El problema parece mucho un daño aleatorio de la RAM. En mi experiencia, MemTest86 es una prueba "demasiado fácil" para el hardware. Encontrará muy mala memoria, pero los problemas leves a menudo pasarán desapercibidos.

Si desea saber si su memoria es buena, intente ejecutar Prime95 en modo de autocomprobación / tortura configurado para usar la mayor cantidad de RAM posible.

Otra buena prueba es ejecutar la prueba de martillo de remo de doble cara durante unas horas.

Creo que si Prime95 y el martillo de remo de doble cara no pueden encontrar ningún problema con su memoria, probablemente funcione correctamente. Sin embargo, simplemente ejecutar MemTest86, compilar programas, instalar SO, jugar puede parecer que funciona incluso si su memoria es un poco mala (estado allí, hecho eso y obtuvo datos corruptos a largo plazo).

Mikko Rantalainen
fuente