NUEVO GESTOR DE ARRANQUE – WINDOWS VISTA
Objetivo: Revisión de conceptos sobre el gestor de arranque al instalar Windows Vista.
Aconsejo leer detalladamente el funcionamiento hasta el momento de los sistemas operativos de Microsoft con respecto al gestor de arranque. Para ello, deben revisarse los conceptos previos y aconsejo la lectura de mi anterior articulo “Instalación de un Sistema Operativo.doc” (29 KB, publicado en : http://www.multingles.net/jmt.htm)
Breve revisión del antiguo gestor de arranque
- Aplicable a Windows NT (NT, W2000, XP, W2003) y en posible conjunto con antiguos sistemas MS-DOS, Windows 9X.
La instalación de un MS-DOS, o bien de un Win9X, modifica:
- Sector de “boot” de la partición (no confundir con el MBR del disco duro). Son los primeros 512 bytes de la partición, y lleva “hardcoded” el nombre del archivo IO.SYS. Por tanto, cargará el IO.SYS de la propia partición (C:) y este se encargará de la carga del resto del sistema operativo.
- Los archivos que intervienen son: el propio “boot” de la partición, IO.SYS, MS-DOS.SYS, COMMAND.COM.
La instalación de un sistema Windows NT (NT, W2000, XP, W2003) implica:
- Si existe un sistema operativo anterior (MS-DOS, Windows 9X)
- Guarda el antiguo “boot” de la partición en un archivo llamado BOOTSECT.DOS.
- Crea un nuevo sector de “boot” de la partición apuntando a NTLDR (hardcoded).
- Copia los archivos NTLDR y NTDETECT.COM que son los cargadores del sistema operativo.
- Crea o modifica un archivo llamado BOOT.INI que básicamente contiene:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(3)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="Microsoft Windows XP Professional" /FASTDETECT /NOEXECUTE=OPTIN
c:\="Microsoft Windows 98”
Es decir, por cada sistema instalado creará una línea en [operating systems] y la última línea referenciará al sistema operativo previo (MS-DOS o Windows 98).
- El funcionamiento en la carga es:
- Si se selecciona cualquiera de los sistemas Windows NT, se cargará directamente.
- Si se selecciona la última línea que referencia a alguno de los viejos sistemas, el circuito de carga es:
- Se carga en memoria el antiguo sector de arranque (BOOTSECT.DOS)
- Se le cede control, por lo cual, este cargará el IO.SYS tal y como hemos visto en la primera parte.
NOTA: NTLDR y NTDETECT.COM han ido evolucionando con los sistemas operativos y conservándose compatibilidad descendente. Es decir, los de XP pueden cargar los sistemas anteriores (NT 4 y W2000). Pero el de W2000 no podrá cargar XP. Por motivos evidentes, siempre deberemos guardarnos una copia de los últimos, por si acaso re-instalamos un sistema anterior poderlos restituir rápidamente. Todos los archivos citados hasta el momento se graban en el raíz de C: con atributos de “ocultos” y de “sistema”.
Cambios introducidos en Windows Vista
- El “boot” de la partición se modifica y apunta (hardcoded) al archivo BOOTMGR.
- Se copia en C:\ (raíz) el archivo de arranque del sistema: BOOTMGR
- Se crea una carpeta llamad “Boot” en C:\ con el contenido del nuevo gestor de arranque de Windows Vista y con los archivos:
C:\Boot\winldfw.efi
C:\Boot\winnvram.efi
C:\Boot\bootfix.bin
C:\Boot\fixfat.exe
C:\Boot\fixntfs.exe
C:\Boot\hibrsm32.exe
C:\Boot\hibrsm64.exe
C:\Boot\NTDETECT.COM
C:\Boot\ntldr
C:\Boot\windowscodeintegrity.luacdf
- NOTA: NTLDR y NTDETECT, aunque tienen el mismo nombre que los vistos previamente, son para uso exclusivo de Windows Vista y por tanto los que tuviésemos con el mismo nombre en el raíz de C:\ debido a tener un sistema operativo anterior (por ejemplo XP), permanecerán inalterados.
- Se modifica el Boot.ini de C:\. Imaginemos que tuviésemos instalado XP Home y XP Profesional, así como un sistema previo Windows 9X. En ese caso, hasta el momento de instalar Vista, tendríamos:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /FASTDETECT /NOEXECUTE=OPTIN
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows Home" /FASTDETECT /NOEXECUTE=OPTIN
c:\="Microsoft Windows”
- La instalación de Windows Vista -por ejemplo, en un segundo disco- nos lo modificará quedando:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows Vista" /FASTDETECT /NOEXECUTE=OPTIN /USENEWLOADER
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /FASTDETECT /NOEXECUTE=OPTIN
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows Home" /FASTDETECT /NOEXECUTE=OPTIN
c:\BOOTSECT.DOS=”Previous Operating System”
c:\="Microsoft Windows”
- La secuencia de arranque sería:
- El “boot” de la partición arranca el BOOTMGR
- Este, lee el archivo BOOT.INI y lo “resume” en la siguiente pantalla
- Si seleccionamos Windows Vista, usa los archivos nuevos de la carpeta “Boot” para cargar Windows Vista.
- Si seleccionamos un sistema operativo previo, sacará el menú clásico:
- Y usará los archivos clásicos de C:\ (NTLDR y NTDETECT.COM) para cargar el antiguo sistema operativo.
NOTA: Por cada Windows Vista instalado, meterá una línea en el Boot.ini que se reflejará en ambos menús.
La instalación o re-instalación de un nuevo sistema operativo “anterior” a Windows Vista no modificará archivos básicos de arranque. Pero por desgracia modificará el “boot” de la partición haciéndolo apuntar a NTLDR de C:\ en vez de a BOOTMGR, lo que impedirá arrancar los sistema Windows Vista.
Para solucionarlo deberá recuperarse el “Boot” de la partición, y deberá hacerse desde una recuperación del arranque, previsiblemente mediante el comando FIXBOOT (o el equivalente). En la fase actual de Beta1, no existe la posibilidad de arrancar en modo consola y el sistema de mantenimiento del disco no está operativo.Este documento se irá modificando de acuerdo a los cambios en las siguiente Beta y en la versión final para dejarlo de acuerdo a la realidad.
--
|
1 - agosto - 2005