Posteado por: papaur00 | 14 diciembre 2009

como funciona el arranque de XP y el fichero BOOT.ini

COMO FUNCIONA EL ARRANQUE DE WINDOWS 2000 / XP: PASOS, ARCHIVOS Y PARAMETROS

Vamos a intentar comprender la secuencia de inicio de Windows 2000 / XP. En muchas ocasiones, entendiendo la secuencia de inicio y tocando parámetros del archivo boot.ini podremos iniciar una máquina en la cual tengamos problemas y que de otra manera no sería posible.

Los archivos de inicio son lo que vemos en la siguiente tabla:

Archivo –> Localización –> Fase en el boot

NTLDR –> C: (System Partition Root) –> Preinicio e Inicio (preboot y boot)
BOOT.INI –> C: –> Inicio
BOOTSECT.DOS –> C: –> Inicio (opcional)
NTDETECT.COM –> C: –> Inicio
NTBOOTDD.SYS –> C: –> Inicio (opcional)
NTOSKRNL.EXE –> systemrootsystem32 –> Carga del Kernel (núcleo)
HAL.DLL –> systemrootsystem32 –> Carga del Kernel (núcleo)
SYSTEM –> systemrootsystem32 –> Inicialización del Kernel
dispositivos.sys –> systemroorsystem32drivers –> Inicialización del Kernel

El archivo BOOT.INI:

Al instalar Windows 2000 / XP, se modifica o se crea un archivo boot.ini en la partición activa (arrancable) del sistema. El programa NTLDR usará dicha información para mostrarnos la pantalla de inicio desde la cual podremos seleccionar el sistema operativo a cargar.

El archivo boot.ini es un archivo de texto que contiene dos secciones [boot loader] y [operating systems]. NTLDR usará dicha información para construir la pantalla de inicio del sistema. Vamos a ver la estructura de un boot.ini típico:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=’Microsoft Windows XP Profesional’ /fastdetect
multi(0)disk(0)rdisk(1)partition(1)WINNT=’Microsoft Windows 2000 Profesional’ /fastdetect
multi(0)disk(0)rdisk(1)partition(2)WINDOWS=’Microsoft Windows 2000 Server’ /fastdetect
C:CMDCONSBOOTSECT.DAT=’Microsoft Windows Recovery Console’ /cmdcons
C:=’Microsoft Windows Millennium Edition’

La sección [operating systems] se crea durante la instalación de un Windows 2000 / XP. Recordemos que la instalación de varios sistemas operativos en la misma maquina, siempre se debe hacer por orden de edad de los sistemas. Es decir, del más antiguo al mas actual ya que los cargadores de sistemas operativos actuales, son capaces de cargar los sistemas operativos previos. Pero los previos no serán capaces de cargar un sistema operativo mas moderno….. simplemente porque no existían cuando se diseñó dicho sistema.

Caminos ARC (Advanced RISC Computing):

Durante la instalación se modifica o se crea el archive boot.ini usando los nombres o caminos ARC: Advanced RISC Computing (RISC: Reduced Instruction Set Computing)

Un ejemplo de camino ARC es:

multi(0)disk(0)rdisk(1)partition(3)

Cada nombre tiene el siguiente significado:

multi(x) o scsi(x):

El controlador de disco. SCSI solo se usa si es un disco que pertenece a una controladora SCSI y cuya BIOS no se ha cargado al encender el ordenador. Para todos los demás, inclusive los SCSI con BIOS cargada en memoria, se utiliza multi. ‘x’ represente un número empezando por cero que indica el orden de carga del adaptador. Por ejemplo, si tuviésemos dos adaptadores SCSI en nuestra máquina, el primero en cargar e inicializarse llevaría un 0, el segundo llevaría un 1.

disk(y):

El ID del dispositivo SCSI. Si es ‘multi’, siempre llevará un 0.

rdisk(z):

Un número que identifica el disco físico (empezando por 0, el cual corresponde al primer disco físico en nuestro sistema).

partition(t):

Un número que identifica la partición dentro del disco físico anterior. La numeración de particiones comienza por 1. Se numeran consecutivamente todas las particiones primarias que existen en nuestro disco, y a continuación, se numeran consecutivamente las unidades lógicas dentro de una partición extendida si la tuviésemos.

Modificadores en el archivo BOOT.INI:

Vamos a describir únicamente los más importantes. Para el resto de modificadores puede consultarse en el KB de Microsoft.

/basevideo

Arrancará nuestra maquina usando el adaptador estándar VGA. Es útil en caso de que nuestra maquina se niegue a arrancar después de instalar un nuevo driver de vídeo.

/fastdetect=[com x | como x,y,z]

Desactiva la detección de ratón en puerto serie. Si no especificamos puerto com, este modificador desactiva la detección de todos los puertos serie. Se incluye este modificador en todas las entradas del boot.ini por defecto.

/maxmen:n

Especifica la cantidad de memoria que Windows va a usar. Debe usarse este modificador si sospechamos que un chip de memoria está dañado.

/noguiboot

Arranca sin sacar la pantalla gráfica de inicio del sistema.

/sos

Nos muestra por pantalla los nombres de los controladores de dispositivos que se van cargando. Debemos usar este modificador cuando falla el arranque para poder determinar que driver es el causante del error.

Modificaciones al archivo BOOT.INI:

Podemos modificar directamente el tiempo de espera y el sistema operativo a arrancar por defecto desde el Panel de Control, o bien con el botón derecho sobre Mi PC, propiedades y pestaña Avanzado. Igualmente podemos editar manualmente el archivo con cualquier editor de texto. Recordemos que dicho archivo tiene los atributos de oculto y de read-only, por lo que si queremos verlo o modificarlo, deberemos quitarle dichos atributos, o bien establecer en Windows las opciones de ver todos los archivos ocultos y del sistema. El archivo boot.ini siempre reside en el disco C: independientemente de la partición en la cual hayamos instalado Windows.

Secuencia de Pre-Inicio (Pre-Boot):

Durante el arranque de cualquier máquina, su BIOS localiza el sector de arranque del disco duro (MBR). Los siguientes 4 pasos describen el pre-inicio:

1) Cuando encendemos un ordenador, se ejecutan las rutinas POST (Power and Self Test) para determinar la cantidad de memoría física y los componentes de hardware presentes en la máquina.

2) La BIOS, localiza el dispositivo de arranque (BOOT) y carga y ejecuta el MBR (Master Boot Record).

3) El MBR busca en su tabla de particiones, la partición que esté marcada como activa, carga en memoria el sector de boot de dicha partición y lo ejecuta.

4) Dicho sector, carga y ejecuta el archivo NTLDR el cual es el cargador del sistema operativo.

Secuencia de Inicio (Boot):

Después de cargar en memoria NTLDR, la secuencia de inicio busca información acerca del hardware y los controladores para preparar las fases de carga del sistema operativo. La secuencia de boot, utiliza los siguientes ficheros: NTLDR, BOOT.INI, BOOTSECT.DOS (opcional), NTDETECT.COM y NTOSKRNL.EXE.

Esta secuencia de Boot tiene 4 fases, fase de Initial Boot Loader (cargador inicial), fase de selección del sistema operativo, detección de hardware y selección de la configuración.

– Initial Boot Loader.

Durante este fase, NTLDR cambia el modo de funcionamiento del procesador, de modo real a modo protegido (32 bit flat memory mode). Posteriormente NTLDR arranca los minidrivers del sistema incorporados dentro del propio NTLDR. Estos minidrivers permiten a NTLDR localizar y cargar Windows desde particiones FAT, FAT32 y NTFS.

– Selección del Sistema Operativo.

Durante la secuencia de inicio, NTLDR lee el archivo BOOT.INI. Si dicho archivo tiene más de una linea de selección del sistema operativo, se muestra una pantalla durante el tiempo predeterminado en el archivo BOOT.INI para poder seleccionar el sistema operativo a arrancar.

Si no seleccionamos en este caso ninguna entrada, NTLDR cargará el sistema operativo por defecto que esté especificado en el archivo BOOT.INI.

Por defecto, siempre es la última instalación del último Windows que hayamos instalado. Recordemos que esta selección sólo se muestra si hay más de una línea de sistema operativo instalado en el archivo BOOT.INI.

Si el archivo BOOT.INI no existe, NTLDR siempre intenta cargar el sistema operativo de la primera particion activa del primer disco duro (típicamente, el C:)

– Detección de Hardware.

NTDETECT.COM y NTOSKRNL.EXE realizan la detección del hardware. NTDETEC.COM se ejecuta inmediatamente después de haber seleccionado el sistema operativo a arrancar.

Si seleccionamos un sistema operativo de núcleo W9X en vez de núcleo NT / W2000 /XP, NTLDR cargará y ejecutará BOOTSECT.DOS, el cual es una copia del sector de arranque que existía en la particion del sistema cuando instalamos por primera vez un sistema operativo de núcleo NT / W2000 / XP. Este sector corresponde a una partición formateada previamente con MSDOS o bien con algún sistema W9X / ME.

NTDETECT.COM empieza a construir una lista del hardware actualmente instalado y devuelve esta lista al programa NTLDR para una inclusión posterior en el registro bajo la clave HKEY_LOCAL_MACHINEHARDWARE

NTDETECT.COM detecta los siguientes componentes:

· Tipo de adaptador del BUS
· Puertos de comunicaciones
· Coprocesador matemático
· Disqueteras
· Teclado
· Ratón o dispositivo apuntador
· Puerto paralelo
· Adaptadores SCSI
· Adaptadores de Vídeo.

El fichero Boot.ini esta presente en Windows desde las versiones de NT. Almacenado en el raíz de nuestro disco de sistema (disco C:, normalmente), oculto por Windows (tienes que tener activado mostrar los archivos ocultos de Windows) de solo lectura y de sistema, este fichero es el encargado de gestionar el arranque de nuestro sistema operativo indicando cuales son las ubicaciones del sistema operativo (o sistemas en el caso de tener varios) a arrancar.

Podemos editarlo (sin miedo) haciendo doble click sobre él (Lo abrirá el Bloc de Notas) para ver y analizar su contenido.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS=’Microsoft Windows XP Professional’ /fastdetect /NoExecute=OptIn

En Windows Xp y 2003 (323427) podemos editarlo desde las propiedades del Sistema Inicio>>Ejecutar>>sysdm.cpl en la pestaña de Opciones Avanzadas Boton de Configuración Boton Editar. Otra manera es mediante el comando bootcfg de Windows Xp. 289022

Tiene varias Secciones encerradas entre corchetes

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS

Esta sección es la encargada de indicarnos cuanto tiempo espera el arranque de Windows para arrancar nuestro sistema, mediante el parámetro timeout=30. Si no tenemos mas de 1 sistema operativo instalado en nuestra maquina Windows no preguntara y arrancara del sistema indicado en la linea default.

default indica al sistema mediante rutas de acceso ARC (Advanced Risk Computing)en que disco y/o partición se encuentra el Windows a arrancar.

La linea default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS indica que Windows se encuentra en el disco 0 (disk(0)) en la primera particion (partition(1)) en el directorio Windows. Normalmente multi() indica discos IDE y scsi() discos Scsi.

Existen una serie de parámetros que podemos introducir en el archivo de configuración del inicio de sistema boot.ini que pueden ayudarnos a obtener el máximo rendimiento del mismo o a diagnosticar posibles problemas en la máquina.

Entre los más importantes destacan:

/FASTDETECT Con este parámetro, durante el proceso de arranque la detección de los dispositivos instalados en los puertos paralelo y serie se realizará haciendo uso de los mecanismos plug&play, y no a través del archivo ntdetect.com como se realizaba en anteriores versiones, traduciéndose en un tiempo de arranque del sistema menor.

/BOOTLOG Con este parámetro, Windows XP creará un archivo de registro %SystemRoot%NTBTLOG.TXT que incluirá entradas detallando los controladores han sido cargados con éxito y de forma fallida durante el proceso de inicio del sistema.

/MAXMEM=x Limitará el uso de memoria a Windows XP únicamente a la cantidad especificada, interpretada en Mbytes.

/ONECPU Limitará el uso de más de una CPU en sistemas multiprocesador.

/NUMPROC= Únicamente serán utilizados por el sistema el número de procesadores especificado.

/SOS Obligará a Windows XP a mostrar en pantalla información referente a los controlados a medida que son cargados en memoria y el sistema iniciado.

/WIN95 Este parámetro resulta pertinente únicamente en sistemas con arranque triple entre Windows XP, Windows 9x y DOS. Con ello obligamos a ntldr a iniciar el sector de arranque de Windows 9x que se encontrará en el archivo bootsect.w40.

/WIN95DOS Resulta pertinente únicamente en sistemas con arranque triple entre Windows XP, Windows 9x y DOS. Con él se obliga a ntldr a iniciar el sector de arranque de DOS, que se encontrará en el archivo bootsect.dos.

/NOSERIALMICE=[COMx | COMx,y,z…] Deshabilita la detección de ratones en los puertos serie especificados. Únicamente utilizaremos este parámetro si tenemos cualquier otro dispositivo que no sea un ratón en el puerto serie durante la secuencia de arranque. Si utilizamos el parámetro sin especificar un puerto COM, la detección de ratones serie se deshabilitará para todos los puertos COM

Anuncios

Responses

  1. Fantástica explicación, muchas gracias.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: