jueves, 24 de mayo de 2012

Boot.ini en Windows XP

El archivo boot.ini en Windows XP

El archivo boot.ini es esencial para el arranque del Sistema Operativo Windows XP. Es un archivo oculto y de sistema que se encuentra en la primera partición activa del disco duro (habitualmente C:), y sirve para establecer diversas opciones de arranque del sistema operativo. Es un archivo de texto que se puede modificar con el bloc de notas (notepad), pero si no se está seguro de lo que se hace, es mejor no tocarlo.

Estructura de BOOT.INI



Este archivo tiene dos secciones bien diferenciadas: [boot loader]  y  [operating systems].

La sección [boot loader] contiene dos informaciones: qué partición por defecto en la que arrancará el sistema, y el tiempo (en segundos) en que aparecerá en pantalla el menú de los sistemas operativos que tengo instalados:

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

Si "timeout=0" el sistema arrancará automáticamente, y si "timeout=-1" el menú se mostrará hasta que elijamos un sistema desde el que arrancar.

El parámetro "default" indica qué sistema operativo arrancará por defecto.

El menú lo muestra por pantalla el archivo "ntldr".

Veamos qué siginifica cada uno de los números indicados en la siguiente linea:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

- multi(0): es el numero ordinal de control que indica a donde tiene que pasar el control la BIOS para que "ntldr" cargue el sistema operativo. El primer valor válido suele ser "0" y suele ser el que siempre aparece.
- disk(0): vale siempre "0" si aparece el parametro multi
- rdisk(0): indica el disco duro donde esta guardado el sistema operativo en cuestión. El primer disco duro es el "0", el segundo el "1", etc...
- partition(1): Indica la partición del disco duro mencionado anteriormente, de donde se obtendrá el archivo "ntoskrnl.exe" para cargar el sistema operativo. La primera partición válida es la "1", luego la "2", etc...

Si usamos discos duros SCSI la linea del "boot.ini" será así:

scsi(0)disk(0)rdisk(0)partition(1)\WINDOWS

- scsi(0): es el numero ordinal de control que indica a donde tiene que pasar el control la BIOS para que "ntldr" cargue el sistema operativo. El primer valor válido suele ser "0" y suele ser el que siempre aparece.
- disk(0): especifica cual es el disco duro fisico al que hace referencia el parametro "scsi(0)"
- rdisk(0): Hace referencia al numero de unidad lógica del disco que contiene la partición del disco "disk(0)" desde donde arrancará el sistema. Si se usa "scsi" ese valor suele ser 0.
- partition(1): Indica la partición del disco duro mencionado anteriormente, de donde se obtendrá el archivo "ntoskrnl.exe" para cargar el sistema operativo. La primera partición válida es la "1", luego la "2", etc...

Pero puede aparecer un tercer tipo de línea como esta. Esta línea sirve para dar soporte a la posibilidad de instalar controladores adicionales para los discos duros (tipos Plug and Play)

signature(0)disk(0)rdisk(0)partition(1)\WINDOWS

- signature(0): es un numero de 32 bits extraído del MBR que sirve para identificar el disco.
- disk(0): especifica cual es el disco duro fisico al que hace referencia el parametro "signature(0)", y que se use el archivo  "ntbootdd.sys". El primer valor válido es 0.
- rdisk(0): Siempre vale 0 cuando se usa signature.
- partition(1): Indica la partición del disco duro mencionado anteriormente. La primera partición válida es la "1", luego la "2", etc...


Cómo hacer una copia de seguridad del boot.ini

Antes de cambiar nada de este archivo conviene hacer una copia de seguridad del mismo, a ser posible en un medio extraíble (p.ej. en un pendrive). Si cometemos algún error no podremos arrancar el sistema operativo, con lo que podríamos restaurar el "boot.ini" dañado por la copia.

- Para hacer una copia: se podría hacer de varias formas, pero el más inmediato creo que es el siguiente: Inicio > Panel de control > Herramientas > Opciones de carpeta > Ver y Marcamos "Mostrar todo los archivos y carpetas ocultos" Marcamos "Mostrar el contenido de las carpetas de sistema" Desmarcamos "Ocultar archivos protegidos del sistema operativo (recomendado)".

Aceptamos y salimos del Panel de control. Posteriormente, Nos vamos a Inicio > Buscar y escribimos boot.ini, y desplegamos el menú llamado "Más opciones avanzadas". Ahí marcamos las dos casillas Buscar en carpetas de sistema y Buscar en archivos y carpetas ocultas. Aceptamos y cuando aparezca el archivo boot.ini lo copiamos a nuestro pendrive.

La segunda seccion de BOOT.INI

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP" /basevideo /debug

En esta segunda sección del archivo "boot.ini" se encuentra la lista de los sistemas operativos (de Microsoft) instalados en mi ordenador, y las opciones de carga de cada uno de ellos.

los MODIFICADORES de las opciones de carga de los sistemas operativos son los siguientes:

/basevideo
Con este modificador conseguiremos que se cargue el controlador "base" de video, es decir, a 16 colores y a una resolución de 640x480. Esto es útil cuando hemos instalado un driver para la tarjeta gráfica que no es el adecuado. Para conseguir arrancar XP (si por ejemplo tampoco podemos hacerlo en modo seguro) tendríamos que colocar ese modificador entrando a la consola de recuperación, como se ha explicado anteriormente.

/baudrate=
Este modificador permite indicar a cuál es la tasa de baudios para el depurador de núcleo. Esto significa que si tenemos activada la depuración remota, puesto que ésta se hace por medio de un modem telefónico o mediante un cable-módem nulo, podemos establecer la tasa de baudios con dicho modem o cable-módem. La tasa por defecto es de 19200 Kbps (kilobits por segundo), y laque es normal que establecer en el caso de un módem es 9600. En este caso, deberíamos poner el modificador de la forma /baudrate=9600. Para el caso de un cablemódem nulo el valor por defecto sería 115200 Kbps, con lo cual el modificador sería /baudrate=115200. Si se introduce dicho modificador, automáticamente se activa el modificador /debug

/crashdebug
Es posible que alguna vez obtengamos algún error grave de sistema. En este caso, esta opción nos permite enviar información de depuración. Con este modificador se carga la depuración de núcleo al iniciar Windows. Pero no se activará hasta que aparezca algún mensaje de error (stop). Usándolo el puerto COM que use el depurador de núcleo sólo estará disponible hasta que el sistema falle.

/debug
También activa como el anterior el depurador de núcleo. Pero se diferencia con /crashdebug en que este modificador permite usar el puerto COM falle el sistema o no. Este modificador puede ser activado en cualquier momento por cualquier depurador que esté conectado al ordenador.

/debugport=comnúmero
Permite especificar cuál será el puerto COM a usar como puerto de depuración. Por defecto, si existe /debugport usa COM2. Si quisiésemos usar, por ejemplo, el puerto COM3, habría que escribir el modificador de la forma /debugport=com3. Siempre que se active este modificador, se activará también /debug


/maxmem=número
Establece la máxima cantidad de memoria RAM a usar por Windows. No usar un valor menor de 12. Es muy útil en caso de sospecha de mal funcionamiento de algún módulo de memoria RAM. Por ejemplo, supongamos que tenemos dos módulos de 128 megas cada uno y sospechamos que tenemos uno defectuoso, podemos escribir /maxmem=128. Si el sistema arranca sin problemas, podemos cambiar un módulo por otro para ver cuál está causando el problema.

/noguiboot
Deshabilita la pantalla en la que aparece el logo de XP al cargarse éste. Sin embargo, aunque desaparece dicha pantalla, no veremos qué pasa "detrás" de ella. Para eso, tiene que aplicarse el modificador /SOS que veremos más adelante

/nodebug
Con este modificador podemos deshabilitar la depuración. Esto puede dar problemas si algún programa tiene en su código algún punto de depuración, aunque lo habitual es no tener presente esta opción en el boot.ini

/numproc=número
Con esta opción podemos especificar el número de procesadores que Windows iniciará en su carga. En sistemas multiprocesador, si sospechamos del mal funcionamiento de algo, podemos indicar el número a cargar. Si quisiésemos que iniciasen dos, el modificador quedaría /numproc=2.

/pcilock
Con este modificador, se evita que el HAL (Hardware Abstraction Layer) "interrogue" (y cambie) a los dispositivos PCI. Sólo sirve para HAL"s de Microsoft.

/fastdetect:comnúmero
Con este modificador se desactiva la detección de dispositivos serie y paralelos por parte del "Ntdetect.com". Por defecto, se coloca este modificador en todas las entradas del archivo boot.ini que tengamos referente a sistemas operativos de núcleo NT. EL modificador /fastdetect sin número de puerto, desactiva la detección en todos los puertos. Si quisiésemos desactivarla en alguno concreto, por ejemplo, el 2, habría que escribir /fastdetect:com2. Este modificador en versiones anteriores de Windows, incluyendo Windows NT, se llamaba /NoSerialMice

/sos
Nos permite visualizar la carga de los drivers cuando inicia Windows. Nótese que no tiene la misma función que /noguiboot, ya que éste desactivaba la pantalla con el logo de Windows y nada más. /sos permite no sólo desactivar dicha pantalla sino ver también los drivers y archivos que se cargan. La utilidad de esto ya ha sido descrita aquí

/PAE
Este modificador permite que un sistema que soporte el modo PAE (Physical Address Extension) arranque normalmente

/HAL=nombre de archivo
Con este modificador se puede definir cuál será el archivo HAL (Hardware Abstraction Layer) a usar. Si quisiésemos probar un determinado HAL, por ejemplo, llamado hal01.dll podríamos usar el modificador de la forma /HAL=hal01.dll esto cargaría el archivo hal01.dll en la carpeta System32. Una vez vista su estabilidad y buen funcionamiento, se podría renombrar a hal.dll para que sea el que use el sistema. También puede ser útil para alternar frente a un inicio multiprocesador frente a uno de procesador único.

/kernel=nombre de archivo
Al igual que el anterior, este permite indicar cuál será el archivo cargado como núcleo, y que será cargado en la carpeta System32.

/bootlog
Con esta opción se crea un archivo log de carga cuando se inicia Windows, con todas las incidencias de dicho inicio. Este archivo está ubicado en el directorio raíz de Windows y tendrá por nombre  "ntbtlog.txt" (por tanto, puede abrirse con el bloc de notas).

/burnmemory=número
Indica el número de megabytes que Windows no podrá usar. Útil frente a fallos de memoria RAM. Por ejemplo, si sospechamos de algún fallo podríamos hacer que Windows sólo cargase, por ejemplo, 256 MB, con lo que el modificador sería /burnmemory=256.

/3GB
Permite que XP asigne un espacio virtual de direcciones de 3GB en lugar de los 2GB que tiene por defecto. Esto, obviamente, siempre y cuando tengamos 4GB de memorial RAM. En ese caso, con este modificador, se asignará 1GB para el núcleo.

/safeboot:parámetro
Con este modificador se arranca en modo seguro, aunque el parámetro nos permite hacerlo de distintas formas. Admite tres parámetros:

minimal: carga un conjunto mínimo de controladores (modo seguro)
network: carga controladores de red (modo seguro con funciones de red)
minimal(alternateshell): para conseguir arrancar en modo seguro con interfaz interactiva.

Aunque XP ya no posee MS-DOS, podemos conseguir arrancar de alguna manera parecida a MS-DOS. Para ello habría que poner los modificadores en el boot.ini siguientes: /safeboot:minimal(alternateshell) /sos /bootlog /noguiboot Aunque repito que sólo sería una forma parecida, ya que XP no posee MS-DOS.

/userva
Con este parámetro podemos personalizar la cantidad de memoria usada cuando se introduce el parámetro /3GB. Microsoft recomienda usar unos valores para el modificador /userva comprendidos entre 2800-3030

/redirect
Es un modificador específico para Windows 2003 Enterprise Edition, y permite activar los Servicios de administración de emergencia(EMS).

/channel=número
Permite configurar la información de depuración enviada por Windows al puerto IEEE 1394. Este puerto tiene 63 canales de comunicación numerados desde el 0 al 62. En este caso, por ejemplo, para usar el canal 6, tendríamos que poner dos modificadores (si vamos a usar como puerto de depuración el 1394): /debugport=1394 /channel=6. Tendríamos luego que enchufar el cable a ese puerto y deshabilitar el controlador para que Windows le coloque uno virtual.

/noexecute=opción
Es un modificador introducido por SP2 y que activa la DEP (Data Execution Prevention) es decir, la Prevención de Ejecución de Datos. Evita la ejecución de página de datos y que código malintencionado se ejecute en el sistema. La DEP puede forzarse por software y/o por hardware. En XP SP2 la DEP está forzada de las dos formas. Este parámetro presenta cuatro opciones:

- optin: es la predeterminada. Con ella, el DEP cubre sólo los binarios del sistema. Con ella está activado el DEP para programas y archivos esenciales de Windows.
- optout: DEP está habilitado para todos los procesos, no sólo para los binarios.
- alwayson: ofrece un DEP completo para todo el sistema, tanto kernel como drivers. Se ignorará todo intento de deshabilitar el DEP.
- alwaysoff: no permite que el DEP ofrezca protección. Todos los intentos de habilitar el DEP son ignorados. Este parámetro deshabilita también el modo PAE




















No hay comentarios:

Publicar un comentario