Desde Windows NT 4, el gestor de arranque se incluye en el volumen de suministro de las versiones «principales» de Windows. El cargador de arranque inicia las versiones de Windows instaladas y ya existentes. Si instala un Windows antiguo u otro sistema operativo sin estar preparado, puede llevarse una desagradable sorpresa, ya que el gestor de arranque puede dañarse con mucha facilidad. En este artículo, explicamos la estructura, reparación y ampliación del gestor de arranque.
Índice de contenidos
1. estructura y procedimiento del gestor de arranque
El gestor de arranque se escribe a sí mismo en la primera partición primaria (visible) del sistema – normalmente la unidad C:, incluso si Windows NT/2000/XP se instaló en otra partición. Si utiliza un gestor de arranque «real» antes del gestor de arranque NT, encontrará el gestor de arranque en la primera partición visible para NT.
La instalación escribe el código de arranque en el sector de arranque de esta primera partición del sistema.
El código de inicio llama automáticamente al programa ntldr en el arranque, que a su vez inicia ntdetect.com y evalúa el archivo boot.ini. Para determinados controladores, también se carga el controlador ntboodd.sys.
1.1 Asignación de particiones en boot.ini
Boot.ini enumera qué sistemas operativos debe/puede iniciar el gestor de arranque y desde qué ubicación:
Un Boot.ini «normal» tiene este aspecto:
[gestor de arranque]
timeout=2
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[sistemas operativos]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS=»Microsoft Windows XP Professional» /fastdetect
La entrada «default» especifica el sistema operativo que se iniciará automáticamente una vez transcurrido el contador (=tiempo de espera). Si hay varias entradas en «sistemas operativos», la entrada «default» tiene sentido.
La entrada «sistemas operativos» contiene todos los sistemas operativos que se encontraban en el sistema en el momento de configurar el gestor de arranque. Sin embargo, las entradas también pueden ampliarse posteriormente.
La especificación de las particiones se realiza de acuerdo con las llamadas especificaciones Advanced RISC Computing (ARC).
multi(X)disk(Y)rdisk(Z)partition(W)WINDOWS=»NOMBRE»
Para la mayoría de los sistemas, los valores multi(X) y disk(Y) «0» son estándar.
Sólo para dispositivos que no permiten el acceso al disco de arranque a través de la INT13 de la BIOS, la entrada en Boot.ini debe ser especialmente adaptada.
La entrada rdisk(Z) especifica la unidad. La cuenta comienza en «0».
La entrada partition(W) especifica la partición. Sin embargo, el método de recuento no es fácil de entender. Windows numera las particiones de un disco duro por tipo y no consecutivamente. Empezando por «1», se cuentan primero las unidades primarias y luego las lógicas.
Ejemplo:
Windows se instala en la primera unidad lógica de un disco duro con una partición primaria y otra extendida en la que se encuentran 2 unidades lógicas. -> W=2; multi(0)disk(0)rdisk(0)partition(2)WINNT=»Windows» /fastdetect
Si posteriormente se cambia el orden de las particiones, por ejemplo, se crea una 2ª partición primaria antes de la unidad extendida, el espacio de la instalación mencionada también se desplaza a W=3. Si ahora no se ajusta el Boot.ini, el gestor de arranque ya no puede iniciar el sistema.
Restaurar el gestor de arranque
2.1 Windows 2000 corrompe XP
Si instala Windows 2000 o NT después de un Windows XP existente, el gestor de arranque se dañará en algunas partes. Concretamente, Windows 2000, por ejemplo, sobrescribe el archivo ntldr con una versión con la que Windows XP ya no puede arrancar.
El problema puede solucionarse fácilmente copiando los archivos dañados desde cualquier consola de Windows o de recuperación a la unidad de arranque:
COPY x:I386NTLDR C:
2.1 Reconstruir el gestor de arranque
Si el gestor de arranque NT está más dañado, es necesario un poco más de trabajo manual.
Para ello, arranque el ordenador desde el CD de Windows XP (si es necesario, cambie la secuencia de arranque en la BIOS) y, a continuación, pase al modo de reparación mediante la consola de recuperación pulsando la tecla «R». Si sólo dispone de un CD de recuperación, también puede utilizar los discos de instalación de Windows 2000 o XP, que puede descargar de Microsoft.
Ahora estás en la consola de recuperación.
Utilice fixboot C: para crear un nuevo sector de arranque.
Si se han sobrescrito otros archivos en la unidad de arranque (disco formateado, archivos borrados), se deben crear más archivos.
Primera copia
COPIAR x:I386NTLDR C:
COPIAR x:I386NTDETECT.COM C:
al disco duro (observe las rutas X y C).
A continuación, introduzca el comando bootcfg /rebuild. El programa busca las instalaciones de Windows y pregunta por el nombre de pantalla de los «hallazgos». El resultado es un nuevo boot.ini. En el artículo KB 291980 se explican otros parámetros de bootcfg.
Para reiniciar el ordenador y salir de la consola de recuperación, basta con introducir exit.
2.2 Código de arranque sobrescrito por Win9x/ME – Guardar para incluir en el gestor de arranque NT
Una instalación posterior de Windows 9x/ME corrompe el código del sector de arranque y lo sobrescribe con su propio código. Esto tiene como consecuencia que el fichero ntdlr ya no se carga.
El truco ahora consiste en extraer el código Win9x del sector de arranque y volver a conectarlo al cargador de arranque de Windows 2000/XP.
Para ello, primero extraiga el sector de arranque de la partición de arranque en un archivo con la herramienta gratuita de DOS BootPart. En nuestro caso el comando bootpart 0 sería C:WIN.98
Bootpart, observe los parámetros |
A continuación, restaure el gestor de arranque como se describe en 2.1 y continúe con 3.2.
3. A continuación, añada un nuevo sistema operativo al archivo boot.ini.
3.1 Añadir Windows NT, 2000 o XP
Se pueden añadir sistemas NT/2000/XP adicionales al Boot.ini simplemente especificando la partición de destino. El Boot.ini es un archivo oculto y de sólo lectura en la raíz de la primera partición visible.
Para editarlo, primero hay que quitar la protección contra escritura y «ocultarlo» durante un breve periodo de tiempo. Esto se hace fácilmente a través del Panel de Control -> Sistema -> pestaña «Avanzado» y allí en Inicio y Restauración -> Configuración y en la siguiente ventana «Editar».
Simplemente en el Boot.ini |
Simplemente en el Boot.ini |
En la sección «sistemas operativos», introduzca el destino del nuevo Windows NT/2000/XP según las explicaciones dadas anteriormente en 1.1:
multi(X)disk(Y)rdisk(Z)partition(W)WINDOWS=»NOMBRE»
Ejemplo:
multi(0)disco(0)rdisco(0)partición(2)WINNT=»Windows» /fastdetect.
Aquí Windows está instalado en un disco duro con una partición primaria y otra extendida, en la que hay 2 unidades lógicas, en la primera unidad lógica.
3.2 Incluir Windows 9x u otros sistemas operativos
Los sistemas operativos «extranjeros» se pueden incluir en el boot.ini en 2 pasos.
En primer lugar, se necesita el sector de arranque del sistema operativo, tal y como lo escribimos en el fichero WIN.98 en 2.2. No importa si el sector de arranque guardado es Windows 98, Windows 95, Windows ME o DOS (u otro sistema operativo).
Creas una nueva entrada en el boot.ini en la sección «sistemas operativos» para cada sistema operativo cuyo sector de arranque hayas guardado. Para nuestro Windows 98 sería:
C:win.98=»Windows 98″.
4) Más vale prevenir que curar: copia los archivos de arranque
Si trabajas a menudo con otros sistemas o particiones cambiadas, deberías hacer una copia de los archivos de arranque. Para ello, formatee un disquete con Windows 2000/XP, pero sin la función «Crear disco de arranque MS-DOS». El sector de arranque del disquete puede entonces iniciar el ntldr. El resto de archivos ntldr, ntdetect.com y boot.ini se copian manualmente en el disquete. Con este disquete se puede arrancar el sistema incluso si el gestor de arranque de la partición de inicio se ha dañado.
Con esta pequeña ayuda, el funcionamiento simultáneo de 2 sistemas diferentes debería funcionar sin problemas. Sin embargo, nos gustaría señalar en este punto que la mejor opción para tareas más complejas es un gestor de arranque independiente. La oferta en este campo es muy amplia y va desde el espartano software gratuito hasta los caros productos de precio completo.