miércoles, 4 de junio de 2008

MODULO DE MANTENIMIENTO PREVENTIVO Y CORRECTIVO DE PCs

El proceso de Arranque de un PC Paso a Paso

Introducción

Uno de los problemas más molestos y que más dolores de cabeza dan son los típicos problemas de arranque de un PC. Frases como "mi PC no arranca", "mi PC se queda colgado", "enciendo mi PC y no pasa nada",... son muy habituales, sobre todo si trabajamos o somos administradores de red o técnicos informáticos. El problema es que estas afirmaciones de los usuarios afectados no nos dan ninguna pista para poder solucionar el problema y lo primero que nos viene a la cabeza es que puede ser un problema de hardware o de software.Hoy día, el hardware es cada vez más fiable y donde antiguamente tendríamos casi seguro un problema en algún componente, hoy nos inclinamos más hacían un fallo del propio sistema operativo. Sobre esto podemos decir aún más, y es que actualmente todos los PC disponen de BIOS más potentes capaces de diagnosticar casi todos los problemas de hardware e informarnos visualmente de ello a través de la pantalla. Eso si es una verdadera pista.En este artículo intentaremos explicar el proceso de arranque de un sistema PC, teniendo instalado un sistema operativo Windows 2000 o XP, para poder así entender y diferenciar los posibles problemas que surgen durante todo el inicio.
Encendido del equipo

Es posible que en alguna ocasión recibieras la llamada de un usuario malhumorado y enfadado con su equipo. Llega a la oficina y por más que pulsa el botón de encendido aquello no funciona.Lo primero que a nosotros como técnicos nos viene a la cabeza, es si el equipo está correctamente enchufado. Sabemos no obstante que con el usuario al otro lado del teléfono, puede ser un poco violento indicarle que verifique si su PC está bien conectado a la red eléctrica. Esto puede provocar que el usuario se sienta incómodo cuando vea que efectivamente era un simple enchufe la causa de todos sus problemas; seguramente nos dirá sin ni siquiera comprobarlo que está bien enchufado, "por supuesto". Pero nosotros aún así, no sabemos si es cierto o no. En vez de eso, podemos indicarle que para evitar problemas de bloqueo de la fuente de alimentación u otra "excusa" igualmente válida, desenchufe y vuelva a enchufar el equipo con el fin de que dicho bloqueo desaparezca. Es en ese momento cuando el usuario se da cuenta que está desenchufado y al conectarlo todo funciona como debería. "¡Si, ahora ya va bien!", puede exclamar; es conveniente no reírse demasiado en ese caso....¿Fallos en el enchufe?Sería conveniente indicar en el caso de que aún no funcione, que el usuario se asegure que el enchufe donde conecta su equipo, tenga corriente. En algunas ocasiones el diferencial o interruptor de seguridad del edificio o local, se desconecta por una sobretensión o similar y, a pesar de tener luz, puede que algunos enchufes no tengan corriente. Se puede indicar que conecte una lámpara u otro dispositivo para verificarlo.
¿Fuente de alimentación?
Después de lo anterior si el equipo sigue sin funcionar, podemos inclinarnos por la fuente de alimentación que a pesar de no se un componente caro, puede llevarnos bastante tiempo el comprar una y cambiarla. Esta también es una de las causas más comunes de que el PC no responda al botón de encendido, sobre todo si no oímos ninguna señal acústica y/o vemos parpadear algún piloto o luz que denote "vida" en el PC.
El Hardware y la BIOS
El arranque de un PC comienza con el llamado "autotest de encendido", más conocido como "Power On Self Test" o POST, una serie de comprobaciones iniciales del hardware para asegurarse de que al menos los primeros pasos del arranque son correctos.En el supuesto de que aparezca un error en esta fase, es posible que tengamos un error en la BIOS del sistema o bien, algún componente de hardware como la memoria o el teclado. Estos errores se muestran en la pantalla y es posible que el PC emita una serie de pitidos indicando el problema. Cuando esto sucede, es posible que en el monitor se muestren una serie de numeraciones o códigos, donde para interpretarlos será preciso hacer uso del manual de la placa base. Muchas veces vienen indicados y nos mostrarán el origen del problema, otras veces será en la propia pantalla donde veamos una descripción del mismo. Uno de los más comunes o que hemos podido ver con más probabilidad, será el del error de teclado: "Error de teclado: pulse F1 para continuar".Como decíamos, otro de los problemas más comunes suele ser el de memoria. Antiguamente, los primeros PC usaban una memoria con "paridad", es decir, existía un chip adicional que guardaba el resultado del valor contenido en la memoria y una parte del test de BIOS se basaba en comprobar dicha paridad; hoy día, con el desarrollo de memorias mucho más fiables, el chip ya no se incluye porque se presupone que los errores de memoria pueden ser mucho menos probables. No obstante, actualmente el problema puede aparecer al instalar un nuevo módulo de memoria, al intercambiarlas o al instalarlas en un orden y slots distintos de los que el fabricante sugiere. En este caso bastaría con quitar la memoria recién instalada o dejar el sistema como estaba y volver a iniciar el PC. Si el problema no continúa, ya tenemos por donde continuar...Es posible, continuando con la memoria, que el sistema sepa que esta tiene una capacidad determinada (en el chip CMOS) pero sin embargo, no puede acceder a todas las direcciones. En muchas ocasiones bastaría con entrar en la interfaz de la BIOS para que el sistema "reinicie" el recuento de memoria y volver a salir. Después de reiniciar el POST, el proceso de arranque se iniciará con normalidad.También puede haber problemas con la instalación de módulos de memoria del mismo tipo, pero con distintas características. Es el caso de instalar por ejemplo dos módulos DIMM, una con velocidad de 100 Mhz y otra con velocidad de 133 Mhz. Algunos sistemas pueden tolelarlo, pero otros no; debemos por tanto asegurarnos que la memoria que instalamos es del mismo tipo y mismas características. Sería muy conveniente contactar con el fabricante de la placa base o consultar el manual de la misma, donde se suele hacer referencia al tipo de memoria que se puede instalar.
Si apareciera durante el proceso de arranque un problema con el disco duro, la mayoría de las ocasiones vendrá provocado por la controladora del mismo y no por él físicamente. Lo normal es que las placas base traigan integradas al menos dos controladores denominados IDE1 e IDE2. El disco primario debería estar conectado al IDE1, pero si este falla, podemos intentar conectarlo al IDE2; deberemos no obstante entrar en la BIOS para definir el cambio y de paso, intentar verificar que nuestro disco es autodetectado por el sistema de autodetección de discos duros de que disponen.Tenemos también la posibilidad de conseguir en nuestro establecimiento habitual de informática y componentes, una nueva controladora de discos que se insertaría en un slot libre de nuestro PC, donde conectaremos nuestro disco duro, sin pérdida alguna de información.Otra cosa muy distinta es que la controladora detecte el disco pero posteriormente no podamos acceder a él; en este caso, salvo en raras excepciones donde podremos recuperar la información, seguramente deberemos cambiarlo y volver a instalar los sistemas, así como toda la información de nuestras copias de seguridad, que por supuesto, hacemos regularmente ¿verdad?...
El MBR

Después de realizar las comprobaciones comentadas, el equipo comienza la carga del sistema operativo y el programa de instalación de Windows coloca en memoria determinados datos en la partición principal del disco duro (el sector de arranque); esos datos se denominan MBR o Master Boot Record (registro de arranque maestro) y contiene instrucciones ejecutables.El programa de instalación también copia dos archivos necesarios e imprescindibles para la carga normal del sistema en el directorio raíz del disco de arranque y son los conocidos y famosos NTLDR y NTDETECT. Además, hay otro archivo necesario y que contiene todas las opciones de arranque: BOOT.INI. El MBR además, contiene información sobre el sistema de particiones de nuestro disco duro, que como sabes puede contener varias, con distintos sistemas y formatos y con distintos tamaños; esto es así porque cuando instalamos Windows no tenemos por qué hacer coincidir la partición de arranque con la partición donde queda instalado. En la partición de sistema estarán los archivos de instalación de Windows (incluido el MBR) y en la partición de arranque estarán los archivos del propio sistema; parece un trabalenguas pero es que en realidad es así. Será necesario por tanto que esta quede marcada como partición principal y de arranque (disco 0) y además quede marcada como partición ACTIVA.En la última fase del proceso de arranque, el equipo lee de la memoria los datos del MBR y transfiere el control del equipo a ese código MBR. El código se ejecuta y comenzará a buscar en la tabla de particiones aquella que esté activada para poder arrancar, leyendo su sector de arranque.
Ejecución del NTLDR

(NT Loader). El código del sector de arranque revisa el fichero Ntldr para saber como iniciar la carga del sistema. Leerá a continuación el archivo boot.ini que como decíamos contiene las opciones de arranque y si resulta que las hay, el menú correspondiente aparecerá en la pantalla del monitor.Si por una avería, borrado, fallo del disco u otras causas el sistema no consigue encontrar el Ntldr, es posible que se muestre el siguiente mensaje de error: "No se encuentra NTLDR. Pulse Ctrl-Alt-Supr para reiniciar", aunque de nada servirá realizar la acción sugerida ya que en el siguiente arranque volverá a mostrarse este mensaje. Las posibles soluciones ante este problema son la restauración del archivo desde un disquete de arranque, creado durante la instalación de Windows; copiaremos este archivo a la partición de arranque (que normalmente será la unidad C) cambiando previamente los atributos del archivo ya que es de sólo lectura. Otra opción es la restauración del archivo desde el CDROM original de Windows, arrancando desde él y seleccionando la opción "Reparar" cuando se nos pregunte.
Ejecución de NTDETECT

Otra de las funciones de Ntldr es la de lanzar Ntdetect, que se encarga de preguntar a la BIOS del sistema sobre los dispositivos hardware instalados en el equipo y su configuración. Una vez recogida esta información Ntdetect la guarda dentro del registro de Windows, en la ruta HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION.
Si por alguna razón el archivo Ntdetect no se encuentra en el momento en que es solicitado por Ntldr, entonces seguramente no verá ningún mensaje de error sino que simplemente, el sistema se detendrá.La solución para este problema es intentar restaurar el archivo como hemos descrito antes, es decir, copiándolo desde un disco de autoarranque que creamos durante la instalación o bien haciendo uso del CDROM de Windows y seleccionando la opción "Reparar".
NTOSKRNL y HAL

(NT Operating System Kernel) - (Hardware Abstraction Layer)Una vez finalizadas las tareas de comprobación del hardware del sistema, Ntldr tomará de nuevo el control del arranque y es en este momento cuando se iniciarán los archivos ntoskrnl.exe y hal.dll, ambos situados en el directorio System32 de Windows. Ntoskrnl es el archivo principal para el Kernel (núcleo del sistema) y los subsistemas de ejecución de Windows (gestor de memoria, gestor de caché, programador, monitor de referencia de seguridad, etc. Este archivo es uno de los más importantes para Windows, ya que sencillamente le permite funcionar y además necesita de hal.dll que contiene el código que permite a los dispositivos de hardware comunicarse con el sistema operativo.En el momento del arranque también podemos encontrarnos con un mensaje de error que nos indique que no se encuentra el archivo y no se puede cargar. En este caso el posible causante del error es el fichero BOOT.INI, donde de alguna manera (un programa, otra instalación de un sistema operativo) ha cambiado la ruta de arranque de nuestro Windows original y ahora Ntldr no consigue encontrar a Ntoskrnl. La solución es bastante sencilla; deberemos iniciar nuestro PC con un disquete de arranque, con el fin de poder acceder a la primera partición donde se guarda el archivo boot.ini. Una vez lo tengamos listado deberemos cambiar los atributos del archivo para poder editarlo.Vemos un ejemplo de ese archivo:

[bootloader]timeout=30default=multi(0)disk(0)rdisk(0)partition(5)\WINDOWS[operatingsystems]multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Microsoft Windows XP Professional" /fastdetectmulti(0)disk(0)rdisk(0)partition(4)\WINNT="Windows 2000 Professional" /fastdetectC:\="Microsoft Windows 98"

Lo primero que se muestra es la etiqueta que define el contenido siguiente. Vemos que como Timeout hay 30 segundos, es decir, si en 30 segundos no se especifica otra cosa, el sistema inicia la partición por defecto.Esta es la que viene señalada como "default" y que concretamente hace referencia a la partición 5, instalada en el directorio Windows.Vemos después otra etiqueta "Operating Systems" que contiene la información de la partición y directorios donde están instalados los distintos sistemas en este PC. La partición 5 es una de las opciones, y resulta ser la que estaba por defecto. Se trata de Windows XP. La siguiente partición (4) está instalada en el directorio Winnt y corresponde a Windows 2000. Estos dos sistemas operativos están instalados en el disco 0.Por último vemos que el arranque de Windows 98 se encuentra en la unidad C, aunque después el sistema puede estar instalado en otra partición. Concretamente, si iniciamos desde Windows XP, Windows 98 se ve en la unidad E.
Los posibles errores pueden aparecer si las particiones 4 o 5 que vemos señaladas no se corresponden con aquellas en las que verdaderamente se encuentran los sistemas instalados. Si no sabemos qué partición es, lo normal es que esté "un número por arriba o por debajo". Por ejemplo, si no podemos iniciar Windows XP, podemos cambiar el 5 por un 4, y si no por un 6. Seguramente conseguiremos iniciar sin problemas en alguna de estas dos veces. Recuerda hacer lo mismo con las otras particiones para poder iniciar sin problemas los otros sistemas operativos. Por otro lado como podemos ver, si cambiamos el atributo del archivo, podemos cambiar las etiquetas (cuidado, sólo las etiquetas) para que en el menú de arranque muestre el nombre que queramos.
Secuencia de carga

El proceso de arranque de sistema termina aquí y empieza la carga del sistema operativo. Esta fase también se denomina fase del kernel y es el momento en que el sistema operativo instala los controladores de los dispositivos, aunque Ntldr sigue unas pautas para realizar la carga de estos en un orden determinado y también de los servicios de Windows, que posteriormente se escribirán en el registro.Profundizando un poco más en esta escritura de datos al registro, saber que son en formato hexadecimal y terminan con un número entre paréntesis. Dicho número proporciona a Ntldr el orden de escritura y podemos ver un ejemplo a tiempo real en el registro del sistema de Windows. Para verlo, abrimos el registro y nos dirigimos a la siguiente rama: HKEY_LOCAL_MACHINE\SYSTEM\Current ControlSet\Services donde veremos una lista de servicios y controladores de dispositivos, seleccionamos alguno de ellos y analizamos la entrada REG_DWORD.
Podemos ver lo siguiente:

1. Si el valor de datos es (0), significa que el servicio se ha cargado durante la fase de datos del kernel.
2. Si el valor de datos es (1), significa que el servicio se ha cargado durante la fase de inicialización del kernel (que veremos a continuación).
3. Si el valor de datos es (2), significa que el servicio se ha cargado durante la fase de instalación de servicios.
4. Si el valor de datos es (3), significa que el servicio está habilitado pero no se ha inicializado (requiere un inicio manual, haciendo uso del MMC (Microsoft Management Console, para más información sobre MMC, consultar la ayuda de Windows)).
5. Por último, si el valor de datos es (4), significa que el servicio no está habilitado.
Carga del sistema

En este momento toma las riendas Ntoskrnl, iniciando el kernel de Windows y los susbsistemas. Al mismo tiempo, los controladores de dispositivos que instaló Ntldr se inicializarán después de que lo hagan el resto de los controladores y servicios de primer nivel.En el caso de que alguno de ellos fallara en su carga, se mostraría una de las famosas pantallas azules de error; suele suceder después del primer arranque, al haber actualizado algún controlador.Para resolver este tipo de problemas, lo normal es arrancar Windows pulsando F8 para mostrar las opciones de arranque y a continuación seleccionar "Cargar la última configuración buena conocida" para que Windows restaure el controlador anterior. Posteriormente la idea es conseguir uno más moderno o bien reintentarlo nuevamente para ver si se produce el error.El kernel de Windows y los sistemas de ejecución están ahora activos y el subsistema de gestión de sesión (smss.exe) configura el entorno de usuario. El sistema comprueba la información del registro para instalar el resto de controladores y el software. Al mismo tiempo se instala también los tres archivos que configuran el API necesario para que los programas puedan iniciarse: kernel32.dll, gdi32.dll y user32.dll.
Inicio de sesión

Todavía el kernel no ha terminado de instalar e inicializar todos los controladores pero ya inicia sesión en el dominio.El subsistema Win32 (proceso servidor que ejecuta unas funciones determinadas del sistema operativo y que proporciona la interfaz para aplicaciones específicamente construidas para Windows NT) lanza winlogon.exe, para mostrar la pantalla de bienvenida que nos permitirá introducir el nombre de usuario y contraseña e instala la "autoridad de seguridad local" (Local Security Authority, lsass.exe). Si los datos son correctos el sistema completará el proceso de inicio de sesión y el sistema operativo. Es en este momento, si no hay ningún fallo, cuando Windows graba este inicio como el "último bueno conocido", para poder restaurarlo en caso de fallo como hemos indicado anteriormente.
Ahora que tenemos algo más claro el proceso de arranque de Windows 2000/XP, podemos sentirnos un poco más seguros y nos ayuda a resolver los posibles problemas que puedan surgir.



No hay comentarios: