Solucionar uno de estos errores es más exigente que solucionarlo cuando Windows ya está en ejecución, ya que no podemos acceder al juego completo de herramientas incluídas en Windows. Sin embargo, Windows Server 2003 proporciona varias herramientas que podemos usar en la identificación de la causa del problema e intentar resolverlo sino podemos iniciar el sistema. Si disponemos de un disco ASR lo primero será utilizarlo.
Si por el contrario no disponemos de un disco ASR o incluso con él no logramos solucionar el problema:
Reparar Boot.ini
El archivo boot.ini se crea durante la instalación de Windows Server 2003 en la partición raíz y contiene las entradas que Ntldr usa para mostrar en pantalla el menú de sistemas operativos(Sólo los mostrará si hay dos o más sistemas instalados o si pulsamos la tecla F8). En caso de no aparecer el menú cuando debería o si no se localiza el sistema operativo después de elegirlo desde el menú, puede ser necesario reconstruir el archivo boot.ini. Este archivo incluye la ruta de la aprtición de inicio, el texto a mostrar y algunos parámetros opcionales. Admite múltiples entradas, una por cada instalación de sistemas operativos Windows en particiones separadas.
En el archivo boot.ini hallamos dos secciones:
[boot loader] : Configuración que se aplica a todas las instalaciones de Windows en el equipo
[operating systems] : Configuración aplicable a cada instalación de Windows en el equipo.
La entrada default en la sección [boot loader] apunta al sistema operativo predeterminado para iniciarse.
Las diferentes instalaciones de Windows aparecen en la sección [operating systems].
Como hemos dicho, si hay dos o más sistemas instalados y con sus respectivas entradas en el boot.ini, o en el caso de haber instalado la consola de recuperación, aparecerá un menú de inicio donde podremos elegir el sistema con el que queremos iniciar o, en su caso, la consola de recuperación.
El archivo boot.ini usa la convención de nombres ARC (Advanced RISC Computing) para especificar la ruta de la instalación de Windows Server 2003. Si el contenido del archivo se cambia incorrectamenten o se corrompe el archivo, es posible que no pueda iniciarse Windows Server 2003. Así que si hemos de corregir alguna entrada debemos entender las rutas ARC.
El formato es uno de los siguientes:
multi(w)disk(x)rdisk(y)partition(z)systemroot=»Descripción»
scsi(w)disk(x)rdisk(y)partition(z)systemroot=»Descripción»
signature(v)disk(x)rdisk(y)partition(z)systemroot=»Descripción»
Windows Server 2003 puede utilizar cualquiera de los formatos precedente para ubicar el directorio raíz del sistema.
Sintaxis Multi(): Estas sintaxis obliga a Windows Server 2003 a depender de las llamadas de la BIOS para la carga de archivos del sistema. Para llevarlo a cabo, Ntldr usa la interrupción hardware 13 (conocida como INT-13) de las instrucciones firmware para localizar Ntoskrnl.exe y el resto de archivos necesarios para iniciar Windows Server 2003. Esta sintaxis se usa por todas las controladoras que proporcionan compatibilidad con la INT-13 para los discos ATA y SCSI.
multi(w)disk(x)rdisk(y)partition(z)systemroot=»Descripción»
w Especifica el número de la controladora del disco. El primer número válido es 0.
x Este valor es siempre 0 en la sintaxis multi().
y Especifica el disco duro físico conectado a la controladora w. En controladoras ATA el número suele estar entre 0 y 3, en las SCSI entre 0 y 7, o 0 y 15, dependiendo del tipo de adaptador. El primer número válido es 0.
z Especifica el número de la partición del disco duro especificado en y y que está conectado a la controladora w. A todas las particiones se les asigna un número y el primer número válido es 1.
Sintaxis signature(): Esta sintaxis comparte similitudes con la sintaxis scsi() y fue implementada para ofrecer compatibilidad en escenarios plug and play en los que instalamos controladoras adicionales en el equipo. Es Windows Server 2003 durante la instalación el que decide si usa esta sintaxis. Es válida para equipos con cualesquiera discos ATA o SCSI.
Esta sintaxis obliga a Ntldr a localizar el disco con la firma que coincida con el primer valor entre parentesis, a pesar del número de controladora asociada con el disco. La firma de un disco es un número hexadecimal que se extrae desde el MBR y que se escribe en el disco durante la parte en modo texto de la instalación de Windows Server 2003 o durante instalaciones anteriores (incluso de Windows 2000 Server). Es un número hexadecimal que únicamente identifica al disco.
Si observamos esta sintaxis en nuestro boot.ini significa que Ntbootdd.sys es necesario para acceder a la partición de arranque o una de las dos siguientes condiciones se dan:
- Hemos instalado el sistema en un disco mayor de 7,8GB, el número del último cilindro es mayor de 1024 para la partición y el firmware o la BIOS de la controladora de arranque no puede acceder mediante la INT-13.
- La BIOS de la controladora del disco no es compatible con INT-13 o tenemos deshabilitada esta opción en la utilidad de configuración del adaptador. Si la instalación de Windows no es capaz de usar las INT-13 entonces se necesita el archivo Ntbootd.sys para poder acceder a la partición de arranque.
Siempre que sea posible hemos de configurar la controladora para que use las INT-13.
signature(v)disk(x)rdisk(y)partition(z)systemroot=»Descripción»
v Número hexadecimal de 32 bits, extraído del MBR, que identifica el disco.
x Especifica un disco duro físico con firma v, conectado a cualquier controladora que utilice Ntbootdd.sys. Para controladoras SCSI el número está entre 0 y 7 o 0 y 15, dependiendo del tipo de adaptador. El primer número válido es 0.
y Siempre es 0.
z Número de la partición del disco duro físico con firma coincidente con v. El primer número válido es 1.
Archivo Ntbootdd.sys: Es una copia de un controlador del dispositivo de almacenamiento que se encuentra en la raíz de la partición de inicio. Se usa cuando se especifica la sintaxis scsi() en el boot.ini o se usa la sintaxis signature() para controladoras de disco con firmware deshabilitado. Puede usarse para discos ATA, siempre dependiendo del tipo de controladora usada.
Parámetros y opciones en el Boot.ini
Dentro de la sección: [boot loader]
Timeout=segundos
Especifica el número de segundos durante los que se mostrará el menú de inicio antes de que el sistema predeterminado en la entrada default= se cargue.
- Si el valor es 0, se arraca inmediatamente el sistema predeterminado.
- Si el valor es -1, el menú se mostrará indefinidamente sin iniciarse ningún sistema hasta que efectuemos nuestra elección de arranque.
default=ruta ARC al sistema operativo predeterminado para arrancar.
redirect={com1|com2|usar configuración de la BIOS}
En los parámetos comx, x es el número de puerto serie a usar por los servicios de administración de emergencia y que normalmente son 1 o 2.
El valor del parámetro usar config de la BIOS obliga a Windows Server 2003 a detectar y usar la configuración de la tabla de SPCR (Serial Port Console Redirection). Los servicios de administración de emergencia no son habilitados si la tabla SPCR no se detecta. Este valor es la configuración predeterminada para equipos ACPI.
Dentro de la sección: [operating systems] pueden ser agregados a las rutas ARC contenidas en la misma.
/3GB
Especifica (equipos 32 bits) que el sistema operativo destina 3GB de espacio en direcciones virtuales para aplicaciones y 1GB para el núcleo (kernel) y componentes ejecutivos.Las aplicaciones deben estar diseñadas para aprovechar la ventaja de este espacio de memoria adicional.
/basevideo
El sistema operativo usará el modo estándar VGA (640x480x256) para el controlador de vídeo instalado. Es útil para arrancar cuando se ha instalado un nuevo controlador de vídeo y no trabaja correctamente, así podemos eliminarlo o usar la característica roll back(volver atrás) para recuperar el controlador anterior.
/baudrate=
Especifica el ratio de baudios a usar en la depuración del kernel sobre un puerto serie. De forma predeterminada son 19200 kilobits/s, pueden usarse 9600, 1920, 38400, 57600 y 115200Kbps. Incluir este parámetro implica la presencia del parámetro /debug.
/bootlog
Habilita el registro de inicio hacia el archivo systemrootNtbtloog.txt.
/crashdebug
Durante el inicio de Windows Server 2003 este parámetro cargará el depurador del kernel, que permanecerá inactivo hasta que ocura un mensaje de STOP error. Útil si sufrimos problemas de núcleo aleatorios.
/debug
Carga el depurador del kernel de Windows al iniciar el sistema.
/debug-port={com1|om2|1394}
Especifica el puerto para la depuración del kernel. Impica la presencia del parámetro /debug y los puertos suelen ser com1, com2 o 1394.
/emsbaudrate=valor
Establece el ratio de baudios para los Servicios de Administración de Emergencia. De foma predeterminada son 9600Kbps, aunque pueden usarse los valores 19200, 57600 y 115200Kbps dependiendo de las capacidades del puerto serie. Debe usarse junto a /redirect= dentro de la sección [boot loader], en otro caso será ignorado.
/fastdetect
Detiene la detección del raton en el bus serie en Ntdetect.com. Se usa cuando tenemos otros dispositivos, que no sean ratón, conectados a los puertos series durante el arranque. Si se establece el parámetro sin especificar un puerto serie, la detección se deshabilita en todos los puertos.
/nolowmem
Ntkrnlpa.exe carga todas las aplicaciones y controladores de dispositivo por encima de los primeros 4GB. Es útil para comprobar la compatibilidad de controladores de dispositivo en equipos con gran cantidad de memoria. Se usa pues en equipos con más de 4GB de RAM y con el parámetro /pae activado.
/pae
Habilita a los equipos de 32 bits a direccionar más de 4GB de memoria (hasta 64GB). Extensiones de direcciones físicas (Physical address extensions PAEs) permiten a una aplicación el acceso a más memoia. Este parámetro es válido solo en equipos de 32 bits que ejecutan Windows Server Enterprise o Datacenter.
Un parámetro relacionado /nopae forzaría a Ntldr a cargar la versión de extensiones de direcciones no-físicas del Windows kernel, siempre que el equipo se detecte compatible 32 bits PAE y tenga más de 4GB de memoria física.
/pcilock
Para los equipos de 32 bits, detiene la detección y asignación dinámica de hardware, solicitudes de interrupción etc… para los dispositivos PCI, dejando a a BIOS que configure los mismos.
/redirect
Obliga a Windows Server 2003 a habilitar EMS. Similar al mismo parámetro de la sección [boot loader], pero habilita EMS después de la elección del sistema operativo.
/safeboot:parámetro
Obliga a arrancar en modo seguro mediante el parámetro especificado. Los parámetros disponibles son:
- minimal
- network
- safeboot:minimal(alternate shell)
Podemos combinar diversos parámetros dentro de boot.ini con este. Por ejemplo, los parámetros que se aplican cuando seleccionamos uno de los modos seguros desde el menú de inicio:
- Modo seguro : /safeboot:minimal /sos /bootlog /noguiboot
- Modo seguro con red : /safeboot:network /sos /bootlog /noguiboot
- Modo seguro Sólo símbolo del sistema: /safboot:minimal(alternateshell) /sos /bootlog /noguiboot
sos
Muestra en pantalla los nombres de cada controlador de dispositivo y su carga. Se usa cuando el inicio falla(cargando los cntroladores) para ver que controlador es el que está fallando.
El archivo boot.ini tiene asignado de forma predeterminada el atributo de oculto. Para su edición podemos usar las siguientes herramientas:
- Bootcfg.exe
- Msconfig.exe
- Propiedades del sistema
- Un editor de texto (el bloc e notas por ejemplo).
Por supuesto es recomendable tener una copia del archivo antes de su manipulación, no sea caso que luego el remedio sea peor que la enfermedad.
Ver o editar boot.ini con Bootcfg.exe
- Desde el prompt de comandos escribimos bootcfg /query para ver el contenido de boot.ini.
- Para editarlo usaremos bootcfg /Addsw o bootcfg /Rmsw para cambiar las opciones.
Una lista completa de parámetros se muestra mediante bootcfg /?
Usando msconfig
- Escribimos msconfig en el cuadro Ejecutar de inicio y pulsamos Aceptar.
- Pulsamos en la pestaña boot.ini de la herramienta de configuración del sistema.
- Para cambiar el sistema predeterminado: seleccionamos desde las opciones listadas en Default operating system
Desde las propiedades de Sistema
- Abrimos Panel de Control y elegimos Sistema
- Pestaña Avanzadas, sección Inicio y recuperación, botón Configuración
- El sistema que arranca predeterminadamente podemos cambiarlo desde la lista Default operating System. El cambio se actualiza en el boot.ini.
- Pulsamos en el botón Edit si deseamos verlo.
Con bloc de notas o un editor de texto
- Abrimos el editor de texto
- Desde el menú de archivo pulsamos en Abrir y le indicamos %systemdrive%boot.ini (normalmente C). La variable de entorno systemdrive representa la letra de unidad asignada a la partición del sistema.
Nota: El archivo boot.ini posee los atributos de oculto, sistema y sólo-lectura de forma predeterminada. Antes de utilizar un editor de texto y realiza cambios que puedan guardarse, debemos cambiar esos atributos; sea desde el prompt attrib rutaboot.ini -h -s -r o accediendo con la interfaz a las propiedades del archivo, habilitando la visión de archivos ocultos y de sistema antes.
Si lo que queremos es reemplazar el archivo boot .ini por el motivo que sea, podemos usar la consola de recuperación y el comando bootcfg.
- Iniciamos y elegimos la consola de recuperación
- Escribimos bootcfg /rebuild
El sistema escaneará los discos del equipo y comprobará las instalaciones presentes de Windows, solicitando para cada una de ellas si se añade a la lista, el identificador de carga y las opciones de carga.
También podemos crearlo de forma manual. El comando map nos ayudará mostrándonos datos necesarios para que podamos hacerlo así.