Como descartar sectores/patrones malos de la memoria ram en GNU/Linux

Iniciado por Dj_Dexter, Abril 23, 2015, 02:26:06 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 23, 2015, 02:26:06 PM Ultima modificación: Abril 24, 2015, 01:03:30 PM por Dj_Dexter
Buenas, investigando un poco, y viendo que ultimamente se caia mucho firefox, o ffmpeg segfaulteaba aleatoriamente, y en el peor de los casos, me ha salido un kernel "oops". He pillado como solucionar este problema, y sin tener que tirar a la basura a la memoria ram defectuosa, ojo mientras no tenga muchos patrones/sectores malos...

Se necesita memtest86+ instalado desde la misma distro, o el que viene en el hiren's boot cd.

Obviamente reiniciar el pc, si usas el hiren's boot cd, elegir a memtest86+ desde el menu, si arrancas desde la distro elegir, la opcion de memtest86+ o parecida.

Sacar captura y/o anotar el patron malo de la memoria ram, en mi caso, probando las memorias por separado, el primero slot de 512 Mb tenia un patron malo:



Claramente dice que la primera memoria ram, tiene un patron malo en los 55.5MB.

Mientras que el segundo slot:



Lo probe varias veces, no dio ningun problema. Ya teniendo los datos...

Nos van a servir unos parametros para mandarselos al kernel, desde grub:

Código: php
memmap=1M$55M


En mi caso es asi, descarta un MB para estar mas seguros, de los 55 Mb y no la usara.

Por defecto desde el kernel 3.2 hacia adelante los kernels genericos, tiene activado el parametro memtest, seria asi:

Código: php
memtest=17


Se puede usar desde 1, a 17, incluso 30 (modo ultra-paranoico), con 17 nos bastara, para testear la memoria, hara testeo con 17 pasadas, no te asustes si después tarda un minuto y se queda, en Descompressing the Kernel.. por un minuto o un minuto y medio, el kernel mismo estara haciendo el memtest, arrancara como siempre, después de haber hecho eso. El memtest, el parametro del kernel, tambien descarta patrones/sectores malos, hace lo mismo que memtest86+ pero sin tanta paranoia, aunque lo hace bastante bien.

Para añadirlo en el grub1 o legacy

Editar el fichero con nano u otro editor, favorito, en nano con ctrl +x guardas cambios, con ctrl +w buscas la palabra o patron:

Código: php
#nano /boot/grub/menu.lst


en la linea kernel, despues del parametro ro, u otro añadir:

Código: php
kernel /boot/vmlinuz-generic-3.10.45 root=/dev/sda1 ro vga=normal memmap=1M$55M memtest=17


asi es como me quedo a mi, si tienen mas kernels, deberan añadir el memmap y memtest en, los otros kernels, guardar los cambios.

En Grub2

Editar el fichero /etc/default/grub, en la seccion GRUB_CMDLINE_LINUX_DEFAULT, editar:

Código: php
#nano /etc/default/grub


quedaria asi:

Código: php
GRUB_CMDLINE_LINUX_DEFAULT="memmap=1M$55M memtest=2"


Guardar cambios, y actualizar al grub:

Código: php
#update-grub


Para Lilo "el que usa por defecto slackware".

en el apartado append del fichero /etc/lilo.conf, editar:

Código: php
#nano /etc/lilo.conf


Código: php
append="memmap=1M$55M memtest=17 vt.default_utf8=1"


Una vez guardado los cambios, hay que actualizar a lilo:

Código: php
#lilo


Espero que les haya servido, les salvara la "vida" y podran seguir usando la memoria ram, defectuosa, sin problemas.

PD: Que se siente al usar un sistema operativo libre, y en pro del medio ambiente? "al no estar tirando hardware por las puras" xD

Saludos!!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Loco Excelente aporte +1 Saludos!
Pentest - Hacking & Security Services

Contact me: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hermano Dj_Dexter.

Realmente muy bueno el tema. Lo pondré en práctica.

Te doy un puntito.

Saludos Cordiales.

Tremendo aporte Dexter, muy util y practico.

Mis sinceras felicitaciones por el aporte, tambien te dejo 1 punto +

Saludos.
El talento se parece al tirador que da en un blanco que los demás no pueden alcanzar; el genio se parece al tirador que da en un blanco que los demás no pueden ver.