Cómo funciona la herramienta Reparación de inicio de Windows Vista (Parte I)

No es extraño encontrarse de vez en cuando con un sistema operativo que ni siquiera es capaz de arrancar. En esos casos el usuario, al no tener apenas nada para poder operar y tratar de solucionar el problema, suele recurrir a un servicio técnico o bien reinstala el sistema operativo. Para evitar situaciones como ésta, Microsoft incorporó en Windows Vista una nueva herramienta especializada en el diagnóstico y la solución de la mayoría de problemas que afectan al correcto arranque del sistema: Reparación de inicio (Startup Repair). ¿Pero qué hace exactamente esta herramienta? ¿En qué casos nos podría servir y en cuáles no? Explicar en detalle el funcionamiento de la herramienta es el motivo de este artículo.

Herramienta Reparación de inicio

Introducción

Reparación de inicio consiste gráficamente en un asistente implementado en el ejecutable StartupRep.exe del directorio \Windows\System32. Para poder iniciar la herramienta es necesario que el equipo arranque en el entorno de recuperación de Windows (Windows Recovery Environment). Este entorno es la evolución de la Consola de recuperación presente en Windows anteriores. Para iniciar el sistema dentro del entorno de recuperación, hay que arrancar el sistema desde el DVD de Vista y seleccionar Opciones de recuperación del sistema. En la lista de herramientas disponibles, la primera es Reparación de inicio.

La aproximación que sigue la herramienta Reparación de inicio es la que seguiría un médico que está atendiendo a un paciente. Cuenta con una batería de comprobaciones para tratar de averiguar la causa del problema que está provocando que el sistema no arranque. Una vez determinada la o las posibles causas, la herramienta incorpora una serie de reparaciones que podrían solucionar el problema. Si la primera no lo soluciona, se pasa a la siguiente, y así sucesivamente. El orden de aplicación de las soluciones es algo que también decide la herramienta en función de los métodos aplicados con anterioridad y del tipo de problema que el usuario está experimentando.

Las comprobaciones que realiza la herramienta podrían dividirse en dos grandes grupos: Unas pruebas iniciales, centradas en las fases iniciales del arranque de la máquina, y una serie de pruebas más avanzadas, que solamente se realizan si las pruebas iniciales no han dado con la causa del problema. Las reparaciones que se realizan una vez finalizado el diagnóstico son tema de un próximo artículo.

Pruebas iniciales

Inicialmente, Reparación del inicio intenta detectar cuál es el disco de sistema (recuerde que éste es el disco que contiene los ficheros de arranque) y analiza, basándose en la tecnología SMART del disco, si hay algún tipo error. Un fallo en este punto es un fallo de hardware y el usuario probablemente tendrá que reemplazar físicamente el disco o su cable.

Seguidamente Reparación de inicio procede a analizar el disco en profundidad; dos son las estructuras que deben estar en perfecto estado para que el sistema arranque correctamente: la tabla de particiones y el sector de arranque de la partición de sistema. Si por algún motivo no se pudiera encontrar la partición de sistema, esto suele ser síntoma de que la tabla de particiones está dañada. Si se encontrara dicha partición pero no fuera legible, es posible que su sector de arranque esté corrupto. Asimismo es importante que la partición de sistema contenga dos ficheros críticos para el arranque: Bootmgr y Boot.ini.

El siguiente punto a comprobar es que haya un sistema operativo en el disco. Para ello se examina el almacén BCD del disco. Este almacén contiene la información necesaria para saber qué sistemas arrancar y cómo arrancarlos. Parte de la información de este almacén se almacenaba en el fichero Boot.ini en versiones anteriores de Windows. Una vez encontrado el sistema operativo, se comprueba la consistencia de los directorios más importantes del mismo, tales como System32, System32\drivers, System32\config, etc. Por supuesto, el sistema operativo debe ser Windows Vista o Windows Server 2008. Reparación de inicio no es compatible con versiones anteriores de Windows.

El fichero Bootmgr de la partición de sistema es el administrador de arranque de Windows Vista y es un archivo crítico para que el sistema arranque correctamente. Si dicho fichero estuviera corrupto, Windows puede recuperarlo copiando de nuevo los archivos de arranque desde una carpeta de origen. El ejecutable Bfsvc.exe es el encargado de hacer esto. Concretamente, Reparación de inicio llama a Bfsvc.exe mediante la siguiente sintaxis: Bfsvc.exe /nosetupcheck. El parámetro /nosetupcheck sirve para que Bfsvc.exe se ejecute incluso si el sistema está en proceso de instalación. Lo que hace Bfsvc.exe es básicamente copiar los archivos de arranque desde el directorio de orígen, que típicamente es C:\Windows\Boot.

Si aún no se hubiera encontrado la posible causa del problema, se examina el fichero Bootstat.dat, un fichero que, entre otras cosas, registra los inicios y apagados incorrectos del equipo. Es el encargado, por ejemplo, de hacerle saber al código de arranque de Windows que el sistema se apagó incorrectamente para así mostrar por defecto la pantalla de opciones de inicio avanzadas.

Reparación de inicio también verifica la consistencia de las ramas del registro, por si hubiera algún tipo de corrupción. Las ramas del registro residen en el directorio \Windows\System32\config y son las siguientes: SYSTEM, SOFTWARE, COMPONENTS y SAM. Como veremos en un posterior artículo, hay varias formas de recuperar un registro corrupto en Windows Vista, y la herramienta sabrá decidir qué método aplicar en cada caso. La rama COMPONENTS es nueva en Windows Vista y registra información relacionada sobre los componentes instalados en Windows Vista. Como esta información tiene que ir en sincronismo con el almacén de componentes (%windir%\winsxs), hay que tener cuidado a la hora de determinar si se debe reparar esa rama del registro o no.

Por último, si aún no se hubiera encontrado una causa del fallo tras todas las pruebas anteriores, es posible que el sistema sea incapaz de arrancar porque cíclicamente aparece una pantalla azul. Si fuera el caso, Reparación de inicio es capaz de extraer la información del volcado, residente en el archivo de paginación, y realizar un análisis básico para determinar al culpable. Por análisis básico se entiende que no se trata de un humano que está analizando el volcado de memoria, sino que únicamente se incorpora una correspondencia bastante simple entre algunos códigos de error grave (bugchecks) y su causa probable. Por ejemplo, el bugcheck MACHINE_CHECK_EXCEPTION (0x9C) suele ser indicativo de un módulo de RAM dañado, por lo que es probable que ante este código de error Reparación de inicio decida analizar la memoria RAM en el siguiente reinicio mediante el ejecutable Memtest.exe. Otro código de error con causa bastante conocida es el KERNEL_STACK_INPAGE_ERROR (0x77), cuyo causante principal es un error físico en el disco (salvo cuando el primer parámetro es 0, 1 ó 2, puede ver la descripción de este bugcheck en MSDN). Como podrá adivinar, ante este código de error es muy probable que el tratamiento consista en analizar el disco con el comando Chkdsk.

Si del código de error no se pudiera sacar nada en claro, la herramienta supone que el culpable del pantallazo azul es un controlador mal diseñado.

Una vez realizadas todas las pruebas iniciales, se anotan las posibles causas que se han detectado y se intenta reparar el problema siguiendo los métodos que se presentarán en un posterior artículo, junto con un conjunto adicional de pruebas, donde es menos probable que se detecte algún fallo pero que se ejecutan si el conjunto inicial de pruebas no hubiera detectado ninguna anomalía en el equipo.

Este diagrama de flujo resume el proceso de análisis básico de problemas de arranque:

Diagrama de flujo de los pasos básicos de análisis

One thought on “Cómo funciona la herramienta Reparación de inicio de Windows Vista (Parte I)

  1. Buenas. Hace mucho estaba buscando un sitio sobre funcionamiento y tecnicas avanzadas de windows. y bueno, los articulos que he leido me han parecido muy interesantes y me han servido mucho, ya esta en mis marcadores. gracias y espero que siga adelante.

Leave a Reply

Your email address will not be published. Required fields are marked *