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)
memtester
ystressapptest
en Fedora 27 predeterminado, instalado en una memoria USB (~ 10 horas)memtester
ystressapptest
en Ubuntu 17.10 Live default (~ 2 horas)memtester
ystressapptest
en 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_spi
debido 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 -a
salida 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
salida de
https://paste.ubuntu.com/26222245/
# lsmod
La 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
fuente
memtest86+
desde cualquier instalación de Ubuntu LiveCD.Respuestas:
La respuesta eliminada estaba cerca
Se eliminó una respuesta en estas preguntas y respuestas:
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/grub
y cambiar esta línea: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:
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.
fuente
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).
fuente