11 de mayo de 2009

Blue Screen Of Death (II)

¿Os habéis tomado ya la pastillita roja? Entonces prepararos para conocer todo lo que hay detrás de las letritas Matrix que hay detrás de los BSOD.

A lo largo de la historia de los sistemas operativos Microsoft, el aspecto de los pantallazos azules ha ido cambiando sustancialmente. Por ejemplo este era uno de los pantallazos que podía producir Windows NT, el cual incluía la lista de procesos cargados en memoria en el momento del error:

BSOD Windows NT

Como veis difiere un poquito del que nos producía el kon_boot en Windows 7 hace unos días. No obstante a grandes rasgos todos se dividen en 4 zonas bien conocidas:

-         Bug Check Information

-         Recommended User Action

-         Driver Information

-         Debug Por and Dump Status Information

Si logramos entender correctamente el significado de cada una de estas secciones seremos el Neo del mundo Windows. Ahora bien es recomendable apoyarse en otras herramientas para esta labor, como sabéis Windows genera logs de los principales eventos ocurridos en el sistema, acudir al visor de logs y revisar qué ocurrió en el sistema en la hora aproximada puede ayudar mucho, los eventos que mas nos interesan serán los de sistema y aplicación. Aquí tenemos por ejemplo un error de Google Update:

Si no sabemos muy bien como interpretar esta información podemos acudir aquí. Una vez que conozcamos los eventos que rodearon a la "hora H”, es conveniente revisar la “zona cero” del BSOD, esto se puede realizar examinando los “Post Mortem Dump Files”, donde a lo CSI examinaremos el volcado de memoria que realiza Windows antes de expirar, para ello nos podemos valer de alguna de las herramientas que nos contó Silverhack en las charlas Fist del año pasado o podemos utilizar directamente la utilidad de Windows Debug Diagnostic Tool:

Con todo ello tendremos una idea bastante aproximada de lo que estaba ocurriendo en el sistema en el momento del error. Volvamos a la BSOD, es recomendable saber que el 90% de los pantallazos azules son debidos a nuevo hardware, nuevo software, archivos corruptos o memoria RAM dañada. Partiendo de esa base y conociendo el significado de los 4 campos que contábamos antes, es fácil entender todo lo demás, voy por partes:

Bug Check Information

En este apartado tendremos un “Stop Error Code” junto con 4 parámetros entre paréntesis, todo en hexadecimal. Para un administrador lo más importante es el error code, en cambio si sois desarrolladores el resto de parámetros serán más críticos para vosotros (celdas de memoria, etc.), ya que es muy probable que vuestro nuevo software haga cosas que no deba. Uno de los error code más conocidos es el 0x0000000A, correspondiente a la excepción IRQ_NOT_LESS_OR_EQUAL, un listado de los principales error code lo teneis aquí.

Recommended User Action

Aquí es donde nunca pone “formatee el disco duro y reinstale el Sistema Operativo” pero que es lo que todo el mundo entiende. El mensaje más común es que desinstales todo el hardware o software nuevo que hayas incluido en el sistema, ya que es la causa más probable de error. Aquí es donde nos debe dar información adicional del Error Code con mensajes como el “IRQ_NOT_LESS_OR_EQUAL”. Los principales error code y mensajes que da Windows Vista los tenéis por aquí.

Driver Information

Si podemos ver este campo estamos de suerte ya que nos dirá exactamente que archivo ha originado el error, este será un archivo de drivers que quizás esté obsoleto, corrupto o directamente será incompatible con nuestro Sistema Operativo (algo que ocurría sobretodo en los primeros meses de Windows Vista).

Debug Port and Dump Status Information

Con este apartado completamos el puzzle BSOD, el debug port indica el puerto COM y la velocidad del mismo para que desde un equipo externo y a través del Debugger analicemos el equipo que produjo el BSOD, actualmente no se utiliza (de hecho creo que Windows Vista ya no incluye esta info). La información del volcado de memoria es mucho más interesante, indica qué se ha volcado y si se ha hecho correctamente, lo que nos llevará a las herramientas que vimos al principio de esta entrada.

Y esto es todo, solo hace falta añadir un poco de paciencia para llegar al origen de error, después de todo nunca hay que entrar en el Panic Mode, eso sí que da miedo :-D

Salu2!

Blue Screen Of Death (I) 

Blue Screen Of Death (II)

2 comentarios:

Anónimo dijo...

¡Muy interesante la entrada!

Tanto por la parte histórica (el cambio de información que nos ha venido proporcionando Windows desde sus primeras BSOD en NT hasta en el último Windows 7) hasta la concisa pero práctica descripción de las diferentes secciones que componen a esta fiel compañera, a la que en muchas ocasiones no prestamos más atención que el justo y necesario para reiniciar el equipo.

¡Saludos!

Eusebio dijo...

Y no habría que formatear??? en serio??? I can't believe it!!!