Evitar los bloques de RAM defectuosos

Bueno este post es para contar la experiencia por la que estoy pasando en estos momentos con mi PC y lo bueno que ha resultado tener linux en estos momentos. Espero que lo que les voy a contar les sirva a otras personas.

Resulta que desde hace algunos días he tenido problemas para que mi PC inicie ubuntu, cuando intento iniciar con otras live me daba en algunas ocaciones Kernel Panic, lo cual era algo que no veía desde mis tiempos de mala compilación del kernel, despues de observar con detenimiento me pareció que el problema podía estar en la RAM. Realice la limpieza fisica correspondiente tanto al modulo de memoria como a la tarjeta madre pero aún así el problema persistía.

Opté por realizar un diagnóstico de la memoria RAM con una live con memtest. Al ejecutar memtest, tendrán en pantalla algo como esto:

Memtest86 enseñandole a ese módulo de memoria defectuoso quien es el jefe.

Memtest86 me da un reporte de los sectores de memoria defectuosos, pero se preguntarán. ¿Que hago con esta información?. Pues aca es donde entra en acción Linux, en los kernel’s nuevos (versión 2.6.16 en adelante) existe una opción llamada badram la cual nos permite especificarle a linux que omita usar esos bloques de memoria RAM (ya se imaginarán para que nos sirve no?).

Bueno, lo importante es cambiar la configuración de memtest86 para que muestre los errores de salida en formato badram. Esto se hace con la tecla “C” para entrar en la configuración, activando la opción 5 – Error Reporting Mode y por ultimo eligiendo la opción 2 – BadRam Patterns, saliendo de cada menú y submenú con la tecla “0″

Hay que dejarlo correr al menos una “pasada” completa de tests.

Arriba a la derecha el primer indicador de porcentaje indica justamente el avance de cada pasada.
Al terminar una pasada completa en pantalla quedan una serie de rangos de memoria expresados en hexadecimal que se ven mas o menos así:

badram=0xfefdffc,0x2404ea30,0xfe05fffc etc.

Tomar nota (yo lo hice en papel pero seguro hay una forma mas elegante de hacerlo) de todos estos rangos de memoria que fallan para pasarselos al kernel.

Ahora para especificar estas opciones al kernel, podemos hacerlos de 2 formas:

1.- Ejecuto el arranque de la distribución que tengas instalada con la opción init=/bin/bash, para que cargue solo lo mínimo necesario, luego de estos editamos el fichero menu.lst

vi /boot/grub/menu.lst

En mi caso por ser GRUB 2, el archivo que se debe editar es:

vi /boot/grub/grub.cfg

Una vez editado, vamos a buscar la parte donde se especifica nuestra opcion de arranque, en mi caso particular es esta:

2.- La segunda forma de editar este archivo es iniciar con una live, montar la particion /boot y editar el archivo necesario.

En cualquiera de los dos casos, con este proceso es suficiente para decirle a nuestra distro que evite esas direcciones de memoria y listo, se acabaron las colgadas y los Kernel Panic por problemas de memoria.

Finalmente quiero decirles que este proceso no debe tomarse como algo definitivo, ya que a medida que se dañe mas la RAM, perderemos direcciones que habrá que incluir, este procedimiento solo nos servirá para evitar perder funcionalidad en la PC mientras podemos comprar la RAM para sustituir la defectuosa. También es importante que si se dispone del tiempo necesario, es conveniente dejarle hacer como mínimo dos pasadas a memtes86 antes de fiarse de los resultados. Cuantas mas, mejor. Aveces ciertas fallas se presentan recién después de un tiempo de uso, cuando el modulo dimm toma temperatura.

4 Responses to Evitar los bloques de RAM defectuosos

  1. Fran Moreno dice:

    Hola, tengo un problema parecido, pero mi nivel no es muy alto así que agradecería cualquier ayuda.

    Resulta que tengo un mini portatil Packard Bell con parte de la memoria soldada en placa y esa misma es defectuosa comprobado ya con el memtest, no tengo ningún sistema operativo instalado y cuando intento instalar la ubuntu.netbook.10.10 pues se queda colgado.

    Si alguien pudiera orientarme de donde poner el “badram” en la instalación a ver si así se deja y si esa configuración después se queda en el sistema instalado o hay que volver a ponerla.

    Un Saludo

  2. XiRiX dice:

    Amigo Fran, cuando bootees desde el disco en la pantalla inicial cuando se te presente las opciones para probar o instalar, seleccionas instalar pero antes de darle al ENTER colocas lo siguiente:

    badram=0xfefdffc,0x2404ea30,0xfe05fffc

    Avisame si te sirve, sino para ver como te podemos ayudar

  3. gruñon dice:

    XiRiX, tengo un ultraportatil (atom) con errores en la memoria, en la parte final. Lo tengo con Ubuntu 9.10, y próximamente lo voy a evolucionar a 11.04. Espero tener suerte y que me siga funcionando. La información la saqué de esta página:
    http://gquigs.blogspot.com/2009/01/bad-memory-howto.html
    el ingles y yo nos llevamos mal, pero lo conseguí. En ella al final Bogdan comenta que el fichero a editar es /etc/default/grub , que en esta versión ha cambiado y efectivamente ya no existe el /boot/grub/menu.lst (comprobado).
    Paso a copiar y pegar, por si a tí o a alguien le puede servir:

    Now (in Ubuntu 9.10) the boot loader is upgraded and the menu.lst file doesn’t exist. Stop searching it.

    The solution is… different now.

    You have to edit the /etc/default/grub file (or grub.cfg; i don’t know exactly… i don’t have my computer with linux near me). Of course… you have to have admin rights, so edit this file with sudo.

    Now… you will se something like this:
    # If you change this file, run ‘update-grub’ afterwards to update
    # /boot/grub/grub.cfg.

    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=false
    GRUB_TIMEOUT=”10″
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash memmap=54M\\\$970M”
    GRUB_CMDLINE_LINUX=””
    save the file and run
    sudo update-grub

    Those backslashes are important so don’t forget them. And 3 of those are now necessary, as you can see in the code posted above.
    Of course, you can map, as before, more than one part of your memory. In this case the above line will look something like this:
    GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash memmap=14M\\\$170M memmap=54M\\\$340M memmap=34M\\\$670M”

    Anyway… hope this helped you a little🙂

    Saludos.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: