Las fases de arranque (Vigilando el Inicio)

POST (Power-On Self Test)


En el momento en que conectamos el equipo la CPU (Unidad Central de Proceso) comienza la carga de aquéllas instrucciones grabadas en la BIOS (Sistema Básico de Entrada/Salida). La BIOS, cierto tipo de firmware, contiene código dependiente del procesador que inicia el equipo sin importar el sistema que esté instalado. El primer juego de instrucciones de inicio es la POST, responsable de las funciones:



  • Llevar a cabo la comprobación inicial de hard, como determinar la cantidad de memoria presente.
  • Verificar que los dispositivos que son necesarios para iniciar el sistema operativo, como el disco duro, están presentes.
  • Recuperar los ajustes de configuración del sistema desde la CMOS, que se encuentra en la placa madre.


      • La CMOS es una memoria complementaria no volatil (Complementary Metal Oxide Semiconductor). Su contenido permanece aún despues del apagado del equipo. Una configuración de hardware almacenada es por ejemplo el orden de inicio de dispositivos.

Después de completar la POST, los adaptadores agregados que tienen su propio firmware (controladoras de disco o de vídeo) proceden a sus propios test.


Si el inicio falla antes o durante la POST, el equipo sufre un fallo de hard. Normalmente la BIOS muestra en pantalla un mensaje de error que indica la naturaleza del fallo. Suele además efectuar cierto número de ‘beep’ dependiendo de que hard provoca el error, una lectura del manual de la placa madre nos dará dicha información. Y toda la que podremos necesitar si hay que sustituir algún elemento, si es posible.


 


Fase Inicial de arranque


Después de la POST, los valores almacenados en la CMOS determinan el dispositivo a usar, o el orden de estos, por el equipo para iniciar el sistema operativo.


Ello significa que si el orden especifica comenzar por la unidad de disquete y después por el disco duro (normalmente el orden se muestra como A,C), así que:



– Sí la unidad de disquete contiene un disquete. La BIOS busca en la unidad si tiene un disquete de inicio, si lo hay cargará en memoria el sector 0 del disquete -sector de arranque-. Si no es un disquete de inicio, obtendremos un bonito mensaje indicando que no es de sistema o que tiene un error, reemplázalo y pulsa una tecla cuando estés preparado. Este mensaje no desaparecerá hasta que cambiemos el disquete por uno correcto o no pongamos ninguno y reiniciemos el equipo.


– No hay disquete en la unidad de disquete. Se leerá el MBR, (primer sector de datos del inicio del disco duro). El MBR contiene las instrucciones (código de inicio) y una tabla (tabla de particiones) que identifican las particiones primarias y las extendidas. La BIOS lee el MBR lo carga en memoria y transfiere el control al propio código del MBR.


El equipo busca entonces la tabla de particiones y en élla la que se encuentra activa. El primer sector de dicha partición contiene el código de inicio que permitira al equipo leer el contenido del sistema de archivos utilizado y localizar e iniciar el archivo cargador del sistema operativo, el Ntldr.


Si no existe partición activa o el sector de inicio, o éste está corrupto, puede aparecernos cualquiera de los siguientes mensajes:



  • Tabla de partición no válida
  • Error en la carga del sistema operativo
  • No hay sistema operativo
  • Inicio: No se encuentra Ntldr
  • No se encuentra Ntldr

Si por el contrario la partición es correcta, el código del sector de inicio carga el Ntldr y la BIOS le transfiere el control.


– El orden de inicio establece otro dispositivo de inicio.  Ya sabemos que hoy podemos establecer el inicio desde otros dispositivos, como CD-ROMs, Adaptadores de red, USB u otros dispositivos de almacenamiento.


En este caso seguirá el orden establecido en busca de los archivos/medios necesarios para iniciar el sistema. (Un cd no arrancable no servirá para iniciarlo, y pasará el orden al siguiente dispositivo)


Si el inicio falla durante la fase inicial las posibilidades son un error de BIOS, el subsistema de Disco o el sistema de Archivos. Si hemos cambiado la configuración del disco hay que comprobar los cables y los jumpers. En todo caso si definitivamente sospechamos del sistema de archivos habrá que intentar reparar el MBR y el sector de inicio.(Ya lo veremos más adelante)


 


Fase de carga de inicio


El Ntldr carga los archivos de inicio desde la partición de arranque y,:



  1. Establecer el procesador de 32 bits para ejecutarse en Flat Memory Mode. Un equipo de 32 bits se inicia primero en modo real. En este modo el procesador deshabilita ciertas características para permitir compatibilidad con software diseñado para ejecutarse en procesadores de 8/16 bits. Ntldr conmuta el proccesador en modo protegido 32 bits, lo que permite un acceso a mayor cantidad de memoria y habilita el inicio de Windows Server 2003.
  2. Lee el archivo boot.ini, Ntldr es capaz de leer nativamente los sistemas de archivo compatibles y usar esta capacidad para analizar el archivo boot.ini sin cargar completamente el sistema de archivos. En sistemas de inicio único Ntldr inicia la carga de hard con Ntdetect.com, si el inicio es múltiple (o está instalada la Consola de recuperación) se abre un menú con las opciones de inicio. Si seleccionamos uno de los sistemas: Windows Server 2003, XP, 2000 o NT 4.0 Ntldr procederá con la fase de detección de hardware, en otro caso, pasará el control al sector de arranque.
  3. Detectar el hardware y los perfiles de hardware. En equipos de 32 bits, Ntldr inicia Ntdetect.com que lleva a cabo una detección de dispositivos básica. Carga el Kernel y el HAL para el sistema elegido en el paso 2. El kernel necesita información del registro y este de controladores críticos, así que Ntldr carga la clave HKLMSYSTEM y controladores de inicio en la memoria. Pasa la información de boot.ini, los datos del registro para Ntoskrnl.exe. Ntdetect.com detecta la información de perfil de hardware y comprueba la información en la tabla ACPI. ACPI permite a Windows Server 2003 la detección de las características de administración de energia de dispositivos y las necesidades de recursos de dispositivo.

Si el inicio falla durante la fase de carga de inicio, puede estar fallando uno de los archivos de carga de inicio, el sistema de archivos o la configuración de disco. Con el comando Bootcfg desde la Consola de recuperación podemos comprobar y reparar el boot.ini y reemplazar Ntldr y Ntdetect.com desde sus originales en el cd de W2k3.


 


Fase de detección y configuración de hardware


Después de procesar el archivo boot.ini, Ntldr arranca Ntdetect.com. En sistemas de 32 bists recogerá información sobre el hard instalado mediante llamadas a las rutinas de firmware del sistema. La información será devuelta al Ntldr, que la reune y la organiza en estructuras internas de datos, seguidamente arranca Ntoskrnl.exe y le proporciona la información obtenida por Ntdetect.com.



  • Información del firmware del sistema, por ejemplo la fecha y la hora.
  • Tipos de adaptadores y Buses.
  • Adaptadores de vídeo
  • Teclado
  • Puertos de comunicación
  • Discos
  • Disquetes
  • Dispositivos de entrada (ratón, etc..)
  • Puertos paralelos.
  • Dispositivos ISA

Ntdetect.com depende de la funcionalidad ACPI para llevar a cabo una enumeración de dispositivos si está disponible. Windows Server 2003 asigna los recursos de hardware para usarse en sistemas que cumplen con ACPI. Ntdetect.com lleva a cabo funciones más activas en la enumeración de dispositivos en equipos que no cumplen con ACPI.


Los errores en esta fase deben solucionarse mediante el uso de la Consola de recuperación y que suele ser reemplazar los archivos de inicio. Si se recibe un Stop error, hay que usar la información que el mismo ofrece para encontrar el componente que está provocando el fallo. La consola puede servirnos también para deshabilitar dicho elemento o archivos problemáticos.


 


Fase de carga del núcleo (kernel)


Ntldr es responsable de la carga del Kernel de Windows(Ntoskrnl.exe) y del HAL en la memoria. El archivo Hal.dll que el equipo usa puede variar dependiendo del tipo de hardware que usa el mismo. Durante la instalación. el instalador de Windows Server 2003 copia uno de los diversos archivos(*) HAL y lo renombra a Hal.dll.


(*)
























Descripción en Administrador de dispositivos (devmgmt.msc)(**) Archivo HAL que se copia
ACPI APIC Multiprocessor PC Halmacpi.dll
ACPI APIC Uniprocessor PC Halaacpi.dll
Advanced Configuration and Power Interface (ACPI) PC Halacpi.dll
MPS Multiprocessor PC Halmps.dll
MPS Uniprocessor PC Halapic.dll
Standard PC Hal.dll

(**)


devmgmt


Juntos, el kernel y el HAL, inicializan un grupo de componentes software que se denominan Windows executive. Estos procesan la información almacenada en la clave del registro HKLMSYSTEMCurrentControlSet e inician servicios y controladores.


Control sets


Ntldr lee la información de control set de la clave del registro comentada y puede determinar que controladores de dispositivo necesitan cargarse en el inicio.  Puede que existan varios ControlSet, todo depende de la frecuencia con que se cambien los ajustes en la configuración del sistema.


Las subclaves de HKEY_LOCAL_MACHINESYSTEM usadas durante el inicio:



  • CurrentControlSet, un puntero a la subclave ControlSetxxx (donde xxx es un número) designada en el valor SelectCurrent.
  • Select, que contiene las siguientes entradas:

    • Default, que apunta al número de Control Set (por ejemplo 001=ControlSet001) que el sistema ha especificado para su uso en el siguiente inicio. Si no hay error o recuperación manual del inicio de la última configuración buena conocida, este valor es el definido para Default, Current y LastKnownGood(asumiendo que el usuario es capaz de iniciar sesión con éxito).
    • Current, que apunta al último control set que se utilizó para iniciar el sistema.
    • Failed, que apunta al control set que falló en  el inicio. Se actualiza cuando se usa la opción LastKnownGood para iniciar el sistema.
    • LastKnownGood, que apunta al control set que se usó durante la última sesión de usuario. Cuando un usuario inicia sesión, éste valor se actualiza con la información de configuración de la sesión previa de usuario.

Ntldr usa el control set identificado en el valor de SelectDefault a menos que la elección sea La última configuración buena conocida de las opciones avanzadas del menú de arranque.


El kernel usa la información obtenida por Ntdetect.com para ayudar a la creación de la clave del registro HKEY_LOCAL_MACHINEHARDWARE, que contiene los datos recogidos sobre el hardware en el inicio del sistema.


Windows Server 2003 es compatible con un extenso juego de dispositivos, con controladores adicionales proporcionados por sus fabricantes y que no se entregan en el cd de instalación. Los controladores son componentes en modo-kernel necesarios para dispositivos que funcionan dentro de un sistema operativo. Los Servicios son componentes que son compatibles con funciones del sistema y de las aplicaciones y actuar como servidores de red. Los servicios pueden ejecutarse en un contexto diferente que las aplicaciones de usuario y normalmente no ofrecen demasiadas opciones configurables de usuario. Los controladores generalmente se comunican con los dispositivos mientras los servicios lo hacen a través de los controladores. Los archivos de controladores y servicios se guardan normalmente en systemrootSystem32 y systemrootSystem32Drivers y usan las extensiones .exe, .sys, o .dll.


Los controladores son servicios también. Por eso, durante el inicio del kernel, Ntldr y Ntoskrnl.exe usan la información de las subclaves del registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesServicename para determinar los controladores y servicios a cargar. En las subclaves Servicename, la entrada Start especifica cuando iniciarlo. Ntldr carga todos aquéllos en los que el valor de Start es 0, después de transferir la ejecución al kernel, éste cargará los que tengan un valor en Start igual a 1.


Los valores de Start pueden ser:



























Valor Tipo de inicio Descripción
0 Boot Especifica un controlador que se carga(no iniciado)en el inicio. Si no se produce ningún error, el controlador se iniciará durante la inicialización del kernel antes de que los no-Boot comiencen su carga.
1 System Especifiva un controlador que se carga e inicia durante el inicio del kernel después que aquéllos con un 0 han sido iniciados.
2 Auto load Especifica un controlador o servicio que se inicia en el inicio del sistema por Smss.exe o Services.exe.
3 Load on demand Especifica un controlador o servicio que sólo se inicia bajo petición. Se inician manualmente mediante llamadas a las API SCM Win32 como el snap-in de Services.
4 Disabled Especifica un controlador o servicio deshabilitado.

 


Algunos controladores o servicios requieren que algunas condiciones, denominadas dependencias, se den. Estas dependencias se listan bajo las entradas DependOnGroup y DependOnService para cada servicio o controlador.


Después del procesamiento de todas las entradas que tienen el tipo de Boot e inicio de datos, el kernel inicia el Session Manager, que continua ejecutándose hasta el apagado del sistema. Smss.exe lleva a cabo el inicio de funciones importantes como:



  • Creación de variables de entorno del sistema.
  • Inicio de la parte del modo kernel del subsistema Win32 (implementado mediante systemrootsystem32Win32k.sys), que provoca que Windows Server pase de modo texto a modo gráfico. Las aplicaciones de usuario se ejecutan en el subsistema de Windows. Este entorno permite a las aplicaciones el acceso a las funciones del sistema operativo.
  • Inicio de la parte del modo usuario del subsistema Win32 (implementado mediante systemrootsystem32Csrss.exe). Las aplicaciones que usan el subsistema de Windows son procesos en modo usuario; no tienen acceso directo al hardware o a los controladores de dispositivo. Los procesos en modo usuario se ejecutan con una prioridad más baja que los procesos en modo kernel.Cuando el sistema necesita más memoria puede paginar la usada por los procesos en modo usuario en el disco.
  • Inicio del Administrador de inicio de sesión (systemrootsystem32Winlogon.exe).
  • Creación de archivos de paginación de memoria virtual adicional.
  • Llevar a cabo el renombrado de operaciones retrasadas para archivos especificados en la entrada del registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerPendingFileRenameOperations. (Por ejemplo: Se ha instalado un nuevo controlador o aplicación donde Windows debe reemplazar algún archivo en uso)

Session Manager busca la información de servicio que se encuentra en el registro, subclaves:



  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManager contiene una lista de comandos a ejecutar antes de la carga de los servicios. La herramienta Autochk.exe se especifica por el valor en la entrada del registro BootExecute y de los ajustes de memoria virtual (archivos de paginación) guardados en la subclave Memory Management. Esta herramienta es una versión de Chkdsk y se ejecuta en el inicio si el sistema operativo detecta un problema de archivos del sistema que requiere reparación antes del completar el proceso de inicio.
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerSubsystems donde se guarda una lista de subsistemas disponibles.

Si el inicio falla durante la la fase de carga del kernel después de la instalación de otro sistema operativo la causa suele ser una incompatibilidad del cargador de inicio (boot loader). Estos cargadores instalados por versiones anteriores de Windows no se pueden utilizar para el inicio de Windows Server 2003. Podemos recuperar los archivos de inicio mediante la Consola de Recuperación.


De otra manera, usamos el registro de inicio para aislar el componente que falla y utilizar la Consola para deshabilitarlo o reemplazar archivos problemáticos. Si hay un Stop error, habrá info sobre el componente que está fallando.


Fase de inicio de sesión


El subsistema de Windows inicia Winlogon.exe, un servicio del sistema que habilita el inicio y el cierre de sesión. Winlogon.exe hace lo siguiente:



  • Inicia Services.exe (Service Control Manager o SCM). SCM inicia los servicios que la entrada del registro start define como auto-carga en la subkey HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesservicename.

  • Inicia el proceso Lsass.exe.

  • Analiza la combinación de teclas CTRL+ALT+DEL en el prompt de inicio de sesión.

La GINA(Graphical Identification and Authentication) recoge el nombre de usuario y la contraseña, y analiza la información con seguridad para el LSA. Si el usuario ha introducido credenciales válidas el acceso es concedido mediante Kerberosv5 o NTLM.


Winlogon inicia los componentes de seguridad y autenticación mientras el P&P inicia los controladores y servicios auto-carga. Después de que el usuario haya iniciado sesión, el control set  guardado en la entrada HKEY_LOCAL_MACHINESYSTEMSelectLastKnownGood se actualiza con los valores de la subclave CurrentControlSet. De forma predeterminada Winlogon lanza Userinit.exe, éste, dependiendo de la configuración, realizará otros eventos:



  • Los ajustes de Directivas (GP) se aplican, tanto a nivel de usuario como a nivel de equipo.

  • Ejecución de los programas de inicio: Si las directivas no indican lo contrario, Windows Server 2003 inicia scripts de inicio de sesión, programas de inicio y aquéllos servicios que se indican en las subclaves del registro y de las carpetas del sistema siguientes:


    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunonce

    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun

    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

    • HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindowsRun

    • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionWindowsRun

    • HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindowsRunOnce

    • systemdriveDocuments and SettingsAll UsersStart MenuProgramsStartup

    • systemdriveDocuments and SettingsAll UsersNombreUsuarioProgramsStartup

    • windirProfilesAll UsersStart MenuProgramsStartup

    • windirProfilesNombreUsuarioStart MenuProgramsStartup

La carpeta windirProfiles existe sólo en sistemas que se han actualizado desde Windows NT 4.0 Server.


Si el arranque falla durante la fase de inicio de sesión, tenemos un problema con algún servicio o aplicación configurada para su inicio automático.


Detección de dispositivos Plug and Play


La detección P&P se ejecuta de forma asíncrona con el proceso de inicio de sesión y confia con las características de firm del sistema, hardware, controladores de dispositivos y sistema operativo para la detección y enumeración de nuevos dispositivos. Windows Server 2003 optimiza la compatibilidad P&P para los equipos compatibles ACPI y habilita características mejoradas, como la compartición de recursos de hardware.


Cuando los dispositivos P&P están correctamente coordinados, Windows Server 2003 puede detectar nuevos dispositivos, destinar recursos del sistema y instalar o solicitar controladores con mínima intervención del usuario.


En esta fase, un error es posible si se ha añadido nuevo hardware, hay que deshabilitarlo y estudiar las instrucciones de instalación y compatibilidad con Windows Server 2003.


 


*El inicio en equipos basados en Itanium es diferente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *