Cómo lidiar con Windows 7 después de una falla del sistema
Para prepararse para usar WindDbg para reparar una falla del sistema de Windows 7, necesitará una computadora que cumpla con los siguientes requisitos:
32- bit o 64 bits Windows 7/Vista /XP o Windows Server 2008/2003
Aproximadamente 25 MB de espacio en el disco duro (esto no incluye espacio para almacenar archivos de volcado o archivos de símbolos). p>Aproximadamente 25 MB de espacio en el disco duro (sin incluir el espacio para almacenar archivos de volcado o archivos de símbolos)
Conexión a Internet normal
Microsoft Internet Explorer 5.0 o superior
Las últimas versiones de WinDBG son una opción en el SDK de Windows. El archivo de descarga del SDK se llama winsdk web.exe, tiene un tamaño de 498 KB y se puede descargar gratis. (Nota: después de instalar el depurador, puede eliminar el enorme archivo descargado, liberando así mucho espacio).
Volcado de memoria (el archivo de la página debe estar ubicado en C: para que Windows guarde el archivo de volcado de memoria)
Instalar WinDbg
Descarga el SDK de Windows y ejecuta el asistente de instalación Luego, seleccione Herramientas de depuración en Herramientas comunes de Windows en Herramientas comunes.
Configurar el inicio y la recuperación
Este paso es molesto. Esto se debe a que no es fácil encontrar el cuadro de diálogo de inicio y recuperación; es necesario verificar si el sistema está configurado para tomar las acciones adecuadas durante la verificación de errores, incluido si se debe reiniciar automáticamente y el tamaño del archivo de volcado que se debe guardar.
Busque el cuadro de diálogo Inicio y recuperación:
1. Seleccione Configuración avanzada del sistema en la columna de la izquierda para mostrar el cuadro de diálogo "Propiedades del sistema".
6. Seleccione la pestaña "Avanzado" en el cuadro de diálogo "Propiedades del sistema"
7. Seleccione el botón Configuración en el área de inicio y recuperación
Vea el cuadro de diálogo de inicio y recuperación que se muestra en la figura. debajo del cuadro:
Asegúrese de que las configuraciones de inicio y recuperación sean correctas
En Fallo del sistema
1, seleccione la casilla de verificación Escribir eventos en el registro del sistema (Escribir eventos al registro del sistema Registro del sistema)
2. Seleccione Reinicio automático
3. Seleccione Volcado de memoria del kernel
4. SystemRoot%\MEMORY .DMP
5, seleccione Kernel Memory Dump
5 y asegúrese de que el archivo de volcado esté escrito en %SystemRoot%\MEMORY. p>
5. Marque Sobrescribir cualquier archivo existente para ahorrar espacio en el disco duro
Tenga en cuenta: esto significa que el sistema guardará tanto el archivo de volcado del núcleo como el archivo de microvolcado. Sin embargo, incluso si hay un microvolcado para cada evento, se guardará el volcado de núcleo más reciente.
Configuración de WinDbg
Inicie el depurador: Para iniciar WinDbg, seleccione:
Inicio | Herramientas de depuración para Windows
Inicio | Todos los programas | Herramientas de depuración para Windows | WinDbg
Si desea utilizar WindDbg en cualquier momento, debe simplificar el inicio de este programa: simplemente fíjelo en el menú de inicio o envíe el archivo. acceso directo al escritorio.
¿Qué importancia tienen los símbolos?
Antes de intentar encontrar un módulo inusual en un archivo de volcado y apresurarse a rescatarlo, asegúrese de que el depurador esté listo. Lo más importante es asegurarse de que el depurador pueda encontrar los archivos de símbolos para la versión exacta del sistema operativo que está solucionando el problema.
La tabla de símbolos es producto de una compilación. Cuando se compila un programa, el código fuente se convierte de un lenguaje de alto nivel a código de máquina. Al mismo tiempo, el compilador crea un archivo de símbolos que contiene una lista de identificadores, su ubicación en el programa y sus atributos. Algunos de estos identificadores son variables globales, variables locales y llamadas a funciones. Esta información no es necesaria para la ejecución del programa.
Por tanto, esta información se puede sacar y almacenar en otro archivo, reduciendo así el tamaño del archivo ejecutable final.
Los archivos ejecutables más pequeños ocupan menos espacio en disco y se cargan en la memoria más rápido que los archivos ejecutables más grandes. Sin embargo, todo tiene su lado negativo: cuando algo sale mal con un programa, el sistema operativo sólo conoce la dirección hexadecimal del problema. La tabla de símbolos de Windows responde a esta pregunta. Acceder a los símbolos de una memoria de sistema específica es como marcar nombres de lugares en un mapa. A su vez, analizar un archivo de volcado en busca de errores en la tabla de símbolos es como tratar de encontrar direcciones a San Francisco en un mapa de Boston.
Configurar WinDbg para buscar símbolos
Windows tiene una asombrosa cantidad de archivos de tablas de símbolos. Esto se debe a que cada versión del sistema operativo, incluso una versión única, trae un archivo nuevo. Afortunadamente, WinDbg puede solucionar estos problemas por usted, pero se debe configurar la ruta de búsqueda correcta. Para hacer esto, inicie WinDbg y seleccione lo siguiente:
Archivo | Ruta del archivo de símbolos
Archivo | Ruta del archivo de símbolos
Tenga en cuenta: entre los asteriscos La dirección representa dónde desea que se almacene el símbolo para acceso futuro. Por ejemplo, almaceno símbolos en una carpeta llamada símbolos en la raíz de mi unidad C:.
Después de abrir el volcado de memoria, WinDbg buscará los archivos ejecutables (.exe, .dll, etc.) y extraerá la información de la versión. Luego solicita el servidor de símbolos de Microsoft que contiene la información de la versión y busca la tabla de símbolos exacta de la cual obtener la información. No descarga todos los símbolos para el sistema operativo específico que está solucionando el problema, solo los necesarios. Alternativamente, puede optar por descargar y almacenar los archivos de símbolos completos de Microsoft. Sin embargo, el tamaño del archivo oscila entre 600 MB y 800 MB para cada versión del sistema operativo que se analiza. En comparación, WinDbg descarga archivos de menos de 100 MB y puede analizar múltiples versiones del sistema operativo en la máquina de prueba. Aunque el coste de los discos duros es ahora muy bajo, los ahorros siguen siendo considerables.
Acerca de los archivos de volcado
Un archivo de volcado de memoria es una instantánea del contenido de la memoria en el momento de una falla del sistema. Si bien un archivo de volcado de memoria puede ser lo más tedioso y poco intuitivo que probablemente necesites mirar, es tu mejor amigo cuando tu sistema operativo falla. Windows creará volcados de memoria de tres tamaños diferentes: minivolcado, volcado de núcleo y volcado completo.
1.minidump o microdump
El minivolcado de Windows 7 tiene solo 256 KB, lo cual es pequeño según cualquier estándar, pero son mucho más grandes que los de Windows 2000/XP, que solo eran; 64K en ese momento. Sin embargo, estos archivos son fundamentales para su posterior análisis por parte del depurador. Siempre que esté depurando en la máquina donde se creó el archivo de volcado, WinDbg podrá encontrar los archivos en la carpeta raíz del sistema (a menos que una actualización del sistema haya cambiado los archivos binarios después de que se creó el archivo de volcado). Además, el depurador puede encontrarlos a través de SymServ. Si se configura correctamente, Windows 7 crea y guarda microvolcados para cada evento de falla, además de los volcados de núcleo (que se describen a continuación).
2. Volcado del kernel
El tamaño del volcado del kernel es aproximadamente equivalente a la cantidad de memoria ocupada por el kernel de Windows 7. En mi computadora portátil, el volcado de núcleo tiene un tamaño de aproximadamente 344 MB, comprimido a poco más de 100 MB. Una ventaja de un volcado de núcleo es que contiene archivos binarios. De forma predeterminada, siempre hago que el sistema guarde el último volcado de núcleo. Recuerde: cuando el sistema guarda un volcado de núcleo, también guarda un microvolcado.
3. Volcado completo o completo
El tamaño de un volcado de memoria completa es igual a la cantidad de memoria instalada. Dado que muchos sistemas tienen varios gigabytes de memoria, este aspecto del almacenamiento puede convertirse rápidamente en un problema, especialmente si fallas con frecuencia. Generalmente no recomiendo guardar volcados de memoria completos porque ocupan demasiado espacio y generalmente no son necesarios.
Pero Vachon de Microsoft aconseja: "Si está intentando depurar un problema muy complejo, como un problema de llamada a procedimiento remoto (RPC) entre múltiples servicios en el dispositivo, y desea ver qué están haciendo esos servicios en modo de usuario, entonces un volcado de memoria completo puede ser muy útil. Así que siga guardando los volcados de memoria, pero prepárese para crear un volcado completo de vez en cuando.
¿Qué pasa si no hay ningún volcado de memoria disponible? no tiene un volcado de memoria, no se preocupe por las fallas del sistema. La forma más fácil (sin cambiar la configuración del registro) es ejecutar una excelente herramienta llamada NotMyFault (gracias a Mark Russinovich y el equipo de SysInternals). de opciones para cargar controladores con comportamiento inesperado (esto requiere privilegios de administrador)
Pero recuerde: ¡NotMyFault puede provocar que su sistema falle y asegúrese de cerrar sesión en el sistema durante unos minutos si lo necesita! acceder a él. Cualquier archivo que contenga información potencialmente perdida debe guardarse y las aplicaciones deben cerrarse. Si el sistema está configurado como se describe anteriormente, no habrá ningún problema. muchas veces sin problemas
Descarga NotMyFault para forzar un bloqueo del sistema
1. Desde Microsoft, descarga la herramienta NotMyFault a continuación y extrae el archivo a una carpeta. p>2. Haga clic derecho en NotMyFault.exe o escriba NotMyFault en el símbolo del sistema. Si aparece el mensaje "No tiene permiso para abrir este archivo", inténtelo de nuevo, pero haga clic derecho y seleccione "Ejecutar como administrador". .
3. Seleccione Fallo alto de IRQL (modo kernel) y el botón "Hacer error" en el menú. Esto generará un archivo de volcado de memoria y un error "Detener D1". 4. Espere un momento... su sistema se recuperará en un minuto y tendrá un archivo de microvolcado y un archivo de volcado de núcleo disponible para ver.
Cargando el archivo de volcado
Después de que se esté ejecutando el depurador, seleccione el opción de menú Archivo | Abrir volcado de memoria y apúntelo para abrir el volcado de memoria para su análisis. Si desea que recuerde la ubicación del volcado donde está almacenado el archivo, seleccione Sí cuando vea Guardar información para el espacio de trabajo. p>WinDbg buscará el archivo de símbolos de Windows para esta versión de Windows. Hará referencia a la ruta del archivo de símbolos, visitará microsoft.com y lo mostrará.
Nota: si el depurador parece ocupado, puede que sea la primera vez que se abre el archivo de volcado para una máquina en particular, por lo que WinDbg está descargando símbolos de SymServ. La próxima vez que abra un archivo de volcado desde la misma máquina, el depurador parece ser mucho más rápido porque los archivos de símbolos ya están en esa máquina.
Aparecerá la ventana de comandos y el análisis de fallos se mostrará en esta ventana. En la esquina inferior izquierda está el mensaje KD>. A la derecha del mensaje hay una ventana de una sola línea donde puede ingresar comandos.
Posibles mensajes de error
Si ve el siguiente mensaje:
Error: Archivo de símbolos no encontrado. El valor predeterminado es exportar símbolos para ntoskrnl.exe -
Error: archivo de símbolos no encontrado. El valor predeterminado es exportar símbolos para ntoskrnl.exe.
Un error generalmente ocurre en una de las siguientes tres situaciones:
La ruta es incorrecta, verifique cuidadosamente para asegurarse de que el archivo de símbolos; la ruta que ingresó antes no es correcta. Errores ortográficos u otros errores (por ejemplo, espacios)
La conexión no funciona correctamente. Verifique la conexión a Internet para asegurarse de que esté funcionando.
A; El firewall está bloqueando el acceso al archivo de símbolos o el archivo de símbolos no se está recuperando. Dañado en proceso
Si la ruta y la conexión están bien, el problema puede estar en el firewall.
Se puede dañar el archivo de símbolos si un firewall impide que WinDbg descargue la tabla de símbolos en primer lugar. Si desbloquea el firewall e intenta descargar el archivo de símbolos nuevamente y aún no funciona, el archivo de símbolos está dañado. La solución más rápida es cerrar WinDbg, eliminar la carpeta de símbolos (muy probablemente configurada en c:\symbols) y desbloquear el firewall. Ahora, vuelva a abrir WinDbg y descargue el archivo. El depurador recreará la carpeta y volverá a descargar los símbolos.
Si ves este mensaje:
Error de símbolo del kernel. Modifique los símbolos para su análisis. Modifique los símbolos para su análisis.
En este momento, WinDbg no puede recuperar los símbolos correctos; utilizará la tabla de símbolos predeterminada. Pero este mensaje de advertencia indica que no puede producir resultados correctos. Recuerde: las tablas de símbolos se generan cuando se compila un programa, por lo que hay un archivo de tabla de símbolos para cada versión, parche, revisión, etc. de Windows. Vuelva a la sección anterior y asegúrese de que la ruta esté configurada correctamente, que la conexión funcione y no esté bloqueada.
Explore la salida de WinDbg de principio a fin. Es posible que vea un mensaje de error similar al siguiente, indicando que es posible que no pueda encontrar la información myfault.sys:
No se puede cargar la imagen \?\myfault.sys, error Win32 0n2
No se puede cargar la imagen \?\myfault.sys, error Win32 0n2
No se puede cargar la imagen ¿Cargando imágenes? \C:\Windows\system32\drivers\myfault.sys, error Win32 0n2
ADVERTENCIA: No se puede verificar la marca de tiempo para myfault.sys
Advertencia: no se puede verificar la marca de tiempo para myfault. sys Verificar marca de tiempo
ERROR: Se completó la carga del módulo, pero no se pudieron cargar los símbolos para formyfault.sys