[Articulo]: Manejo del BOOT en Windows Vista

23/10/2005 - 00:35 por JM Tella Llop [MVP Windows] | Informe spam
Manejo del Boot en Windows Vista
-

El sistema de Boot (arranque) de Windows Vista (beta2 y posteriores) tiene
ya poco que ver con los sistemas tradicionales y el boot.ini que estabamos
acostumbrados a manejar.

Recordemos un poco el sistema de XP (y sistemas basados en nucleo NT):

1) El sector de arranque de la particion (que se establece al formatear)
tiene "hardcoded" -es decir, incorporado "a pelo" en su interior y no
parametrizable- el primer archivo que se carga: NTLDR

2) En C:\ existen tres ficheros que son necesarios para la carga, esté donde
esté situado el sistema operativo: NLTDR, NTDETECT.COM y BOOT.INI

3) El BOOT.INI es un archivo de parametros. Archivo de texto que podemos
tocar y modificar y que contiene los posibles sistemas operativos y sus lo
calizaciones.

* La secuencia de arranque: la Bios carga el MBR del disco el cual contiene
las particiones del disco y la marca de particion activa. El miniprograma
del MBR, decide entonces cargar el primer sector (sector de Boot) de la
particion marcada como activa. Esto carga el punto 1) anterior. Ese sector
es un miniprograma que carga el archivo que tiene "harcoded" en su interior.
En este caso el NTLDR. Es el responsable entre otra cosas de leer el
BOOT.INI y si existe mas de una entrada (mas de un sistema operativo) nos
mostrará un menu y nos permitirá seleccionar.

Hasta aquí todo sencillo. Si formateabamos C:\ siempre podiamos luego
reconstruir a mano el BOOT.INI sin mas que sabe su sintaxis(ver un artisulo
mio titualdo "Instalacion de un Sistema Operativo.doc" publicado en
http://www.multingles.net/jmt.htm para profundizar sobre el tema.


MODIFICACIONES INTRODUCIDAS POR WINDOWS VISTA


Windows Vista cambia drasticamente la filosofia de arranque.

1) Se modifica el sector de boot de la particion el cual contendrá ahora
"harcoded" el nombre del primer fichero a cargar y ejecutar. En este caso
BOOTMGR

2) En C:\ se grabar oculto el archivo BOOTMGR

3) En C: se crea una carpeta llamada Boot cuyo contenido es:

Directory of C:\Boot

20/10/2005 19:29 <DIR> .
20/10/2005 19:29 <DIR> ..
22/10/2005 23:06 262.144 BCD
22/10/2005 23:06 29.696 BCD.LOG <-- está oculto.
20/10/2005 19:29 <DIR> EFI
13/09/2005 21:29 1.024 bootfix.bin
05/10/2005 12:44 248.320 fixfat.exe
05/10/2005 12:44 260.096 fixntfs.exe
05/10/2005 09:16 370.176 hibrsm32.efi
05/10/2005 09:16 371.712 hibrsm32.exe
05/10/2005 09:23 534.016 hibrsm64.exe
05/10/2005 09:16 359.936 memtest.exe
05/10/2005 15:44 1.556 windowscodeintegrity.luacdf


He marcado el archivo oculto BCD.LOG porque realmente es el que va a hacer
con Windows Vista y los posibles sistemas operativos que tengamos, la
funcion que hacia el BOOT.INI en sistemas anteriores (XP y previos).


¿QUE SUCEDE SI TENEMOS XP E INSTALMOS VISTA?

Imaginemos que tenemos XP y otros sistemas operativos de nucleo NT
instalados en nuestra maquina, y por tanto ya poseemos un BOOT.INI. Para
nuestro ejemplo, pongamos que tenemos esto:

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

[operating systems]
multi(0)disk(0)rdisk(5)partition(2)\WINDOWS="Windows XP Professional x64
Edition [E]" /NOEXECUTE=OPTIN /FASTDETECT
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Professional x64
Edition" /NOEXECUTE=OPTIN /FASTDETECT
multi(0)disk(0)rdisk(4)partition(2)\WINDOWS="Windows Server 2003, Standard
[R]"/NOEXECUTE=OPTOUT /FASTDETECT
multi(0)disk(0)rdisk(4)partition(1)\WINDOWS="Windows Server 2003,
Enterprise" /FASTDETECT /PAE /NOEXECUTE=OPTOUT
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="Microsoft Windows XP
Professional [K]" /FASTDETECT /NOEXECUTE=OPTIN
multi(0)disk(0)rdisk(5)partition(1)\WINDOWS="Microsoft Windows XP
Professional [I]" /FASTDETECT /NOEXECUTE=OPTOUT
multi(0)disk(0)rdisk(6)partition(3)\WINDOWS="Microsoft Windows XP
Professional [Q]" /FASTDETECT
C:\BOOTSECT.DOS="Previous Operating System"


Al instalar windows Vista, nos machará el sector de Boot de la particion,
nos grabará en C:\ el archivo BOOTMGR (ejecutable) y nos creará la carpeta
Boot relenandola con los archivos citados anteriormente.

El proceso de arranque, en este caso, nos mostrará un menu con 3 lineas:


Legacy (pre-Longhorn) Microsoft Windows Operating System
Microsoft Windows
Legacy (pre-Longhorn) Microsoft Windows Operating System


La primera linea, si la pulsamos, iniciará el proceso de carga de los
antiguos sistemas operativos: es decir no sacará el menu clasico que está
emebebido en el BOOT.INI y podremos arrancar cualquiera de nuestros
anteriores sistemas.

La segunda linea (existirá una de este estilo por cada WIndows Vista
instalado en nuestra maquina) nos permitirá arrancar directamente Windows
Vista.

La ultima linea (si existiese), nos permitirá arrancar un viejo msdos en el
sistema. Es decir, lo que realmente permite es arrancar el viejo
BOOTSECT.DOS si existiese en nuestra maquina, correspondiente en el ejemplo
que estoy poniendo, justo a la ultima linea del BOOT.INI.


¿DONDE ESTAN LAS LINEAS DE ESTE MENU Y COMO PODEMOS MODIFICAR SU CONTENIDO?


Aquí empieza el primer problema. No existe un fichero de texto equivalente
al BOOT.INI. Modificar el orden de carga (es decir que linea estará
preseleccionada), puede hacerse de una manera similar a Windows XP: boton
derecho en mi PC, propiedades, pestaña de avanzado, boton de inicio y
recuperacion. Allí podremos establecer que sistema operativo será
seleccionado por defecto y el tiempo en segundos que esperará el menú. Pero
no existe ya el boton de "editar" porque no se puede editar nada: no hay
archivo de texto como antes era el BOOT.INI.

Donde conserva windows vista estos datos es en el fichero oculto BCD.LOG que
está en la carpeta Boot. Pero este archivo es un archivo binario, que no
solo contiene eso, sinotambien codigo ejecutable. No podemos editarlo ya que
lo destruiremos.

Existe una utilidad de comando de linea que veremos a continuacion:
BCDEDIT.EXE la cual nos permite la modificacion. Pero no es sencilla ni tan
siquiera intuitiva.

Imaginemos que instalamos en nuestra maquina dos Windows Vista: un vista de
32 y uno de 64. El menu nos quedará:


Legacy (pre-Longhorn) Microsoft Windows Operating System
Microsoft Windows
Microsoft Windows
Legacy (pre-Longhorn) Microsoft Windows Operating System


El cual contiene dos lineas "Microsoft Windows". La primera corresponde al
64 bits y la segunda al 32. Lo logico es que queramos que cada linea muestre
el texto correspondiente para no inducirnos a error. Es decir que contenga,
por ejemplo:

Legacy Microsoft Windows Operating System
Microsoft Windows Vista 64
Microsoft Windows Vista 32
Legacy Microsoft Windows Operating System

La manera de hacerlo es mediante el comando de linea BCDEDIT.EXE el cual
modificará el archivo BCD.LOG (oculto) que he citado anteriormente.

Al ejecutar BCDECIT.EXE en una consola de comandos, nos mostrará (en nuestro
ejemplo anterior):



Windows Boot Manager
Identifier: {bootmgr}
Type: 10100002
Device: partition=C:
Description: Windows Boot Manager
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Default: {legacy}
Display order: {legacy}
{5a45d108-42ed-11da-ab93-b0ac505a9c5d}
{c59756d6-419f-11da-bb58-e429938b8537}
Timeout: 10

Windows Legacy OS Loader

Identifier: {legacy}
Type: 10300006
Device: partition=C:
Path: tldr
Description: Legacy (pre-Longhorn) Microsoft Windows Operating
System


Windows Boot Loader
-
Identifier: {5a45d108-42ed-11da-ab93-b0ac505a9c5d}
Type: 10200003
Device: partition=D:
Path: \Windows\system32\winload.exe
Description: Microsoft Windows
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Windows device: partition=D:
Windows root: \Windows
No Execute policy: OptIn

Windows Boot Loader
-
Identifier: {c59756d6-419f-11da-bb58-e429938b8537}
Type: 10200003
Device: partition=L:
Path: \Windows\system32\winload.exe
Description: Microsoft Windows
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Windows device: partition=L:
Windows root: \Windows
No Execute policy: OptIn


...

Se puede modificar los parametros, textos, etc con el mismo comando. Incluso
añadir entradas. Si se ejecuta con /? nos dará la sintaxis. En nuestro caso,
para modificar unicamente los literales a mostrar en el menu de arranque
debemos hacer:

BCDEDIT -set {5a45d108-42ed-11da-ab93-b0ac505a9c5d} Description "Microsoft
Windows Vista 64"

Es decir {ID a modificar}y a continuacion lo que queremos modificar. Puede
ser la Descripcion, el Path, las politicas de No Execute, etc.



POSIBLES PROBLEMAS SI INSTALAMOS XP/W2003 CON POSTERIORIDAD

El problema surge porque la instalacion de XP / W2003 o cualquier sistema
operativo anterior nos machacará el sector de Boot y por tanto ya no
apuntará a lños cargadores de Windows Vista.

Para recuperarlo, dentro de la carpeta Boot tenemos dos programas:

FIXFAT
FIXNTFS

Deberemos ejecutar el correspondiente a nuestro sistema de archivos (FAT O
NTFS) que exista en C:\ (independientemente de como sea el sistema de
archivos de las instalaciones de windows). Ejecutandolo con /? os dará la
sintaxis de como lanzarlo para recuperar el sector de Boot de Windows Vista.




Continuaremos con este tema en articulos posteriores.





Jose Manuel Tella Llop
MVP - Windows
jmtella@XXXcompuserve.com (quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.
 

Leer las respuestas

#1 Antonio FD
23/10/2005 - 01:08 | Informe spam
Gracias, en español se lee mejor que aqui
http://www.neowin.net/forum/lofiver...81536.html

Tambien tenemos el foro de windows vista en esta url por si deseas compartir mas cosas de su foro correspondiente.
http://forums.microsoft.com/msdn/de...rumgroupid$


¿ microsoft.public.es.win2000,microsoft.public.es.windowsxp,microsoft.public.es.windowsxp.aplicaciones,microsoft.public.es.windowsxp.hardware,microsoft.public.es.windowsxp.instalacion ?





"JM Tella Llop [MVP Windows]" escribió en el mensaje news:%
Manejo del Boot en Windows Vista
-

El sistema de Boot (arranque) de Windows Vista (beta2 y posteriores) tiene
ya poco que ver con los sistemas tradicionales y el boot.ini que estabamos
acostumbrados a manejar.

Recordemos un poco el sistema de XP (y sistemas basados en nucleo NT):

1) El sector de arranque de la particion (que se establece al formatear)
tiene "hardcoded" -es decir, incorporado "a pelo" en su interior y no
parametrizable- el primer archivo que se carga: NTLDR

2) En C:\ existen tres ficheros que son necesarios para la carga, esté donde
esté situado el sistema operativo: NLTDR, NTDETECT.COM y BOOT.INI

3) El BOOT.INI es un archivo de parametros. Archivo de texto que podemos
tocar y modificar y que contiene los posibles sistemas operativos y sus lo
calizaciones.

* La secuencia de arranque: la Bios carga el MBR del disco el cual contiene
las particiones del disco y la marca de particion activa. El miniprograma
del MBR, decide entonces cargar el primer sector (sector de Boot) de la
particion marcada como activa. Esto carga el punto 1) anterior. Ese sector
es un miniprograma que carga el archivo que tiene "harcoded" en su interior.
En este caso el NTLDR. Es el responsable entre otra cosas de leer el
BOOT.INI y si existe mas de una entrada (mas de un sistema operativo) nos
mostrará un menu y nos permitirá seleccionar.

Hasta aquí todo sencillo. Si formateabamos C:\ siempre podiamos luego
reconstruir a mano el BOOT.INI sin mas que sabe su sintaxis(ver un artisulo
mio titualdo "Instalacion de un Sistema Operativo.doc" publicado en
http://www.multingles.net/jmt.htm para profundizar sobre el tema.


MODIFICACIONES INTRODUCIDAS POR WINDOWS VISTA


Windows Vista cambia drasticamente la filosofia de arranque.

1) Se modifica el sector de boot de la particion el cual contendrá ahora
"harcoded" el nombre del primer fichero a cargar y ejecutar. En este caso
BOOTMGR

2) En C:\ se grabar oculto el archivo BOOTMGR

3) En C: se crea una carpeta llamada Boot cuyo contenido es:

Directory of C:\Boot

20/10/2005 19:29 <DIR> .
20/10/2005 19:29 <DIR> ..
22/10/2005 23:06 262.144 BCD
22/10/2005 23:06 29.696 BCD.LOG <-- está oculto.
20/10/2005 19:29 <DIR> EFI
13/09/2005 21:29 1.024 bootfix.bin
05/10/2005 12:44 248.320 fixfat.exe
05/10/2005 12:44 260.096 fixntfs.exe
05/10/2005 09:16 370.176 hibrsm32.efi
05/10/2005 09:16 371.712 hibrsm32.exe
05/10/2005 09:23 534.016 hibrsm64.exe
05/10/2005 09:16 359.936 memtest.exe
05/10/2005 15:44 1.556 windowscodeintegrity.luacdf


He marcado el archivo oculto BCD.LOG porque realmente es el que va a hacer
con Windows Vista y los posibles sistemas operativos que tengamos, la
funcion que hacia el BOOT.INI en sistemas anteriores (XP y previos).


¿QUE SUCEDE SI TENEMOS XP E INSTALMOS VISTA?

Imaginemos que tenemos XP y otros sistemas operativos de nucleo NT
instalados en nuestra maquina, y por tanto ya poseemos un BOOT.INI. Para
nuestro ejemplo, pongamos que tenemos esto:

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

[operating systems]
multi(0)disk(0)rdisk(5)partition(2)\WINDOWS="Windows XP Professional x64
Edition [E]" /NOEXECUTE=OPTIN /FASTDETECT
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Professional x64
Edition" /NOEXECUTE=OPTIN /FASTDETECT
multi(0)disk(0)rdisk(4)partition(2)\WINDOWS="Windows Server 2003, Standard
[R]"/NOEXECUTE=OPTOUT /FASTDETECT
multi(0)disk(0)rdisk(4)partition(1)\WINDOWS="Windows Server 2003,
Enterprise" /FASTDETECT /PAE /NOEXECUTE=OPTOUT
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="Microsoft Windows XP
Professional [K]" /FASTDETECT /NOEXECUTE=OPTIN
multi(0)disk(0)rdisk(5)partition(1)\WINDOWS="Microsoft Windows XP
Professional [I]" /FASTDETECT /NOEXECUTE=OPTOUT
multi(0)disk(0)rdisk(6)partition(3)\WINDOWS="Microsoft Windows XP
Professional [Q]" /FASTDETECT
C:\BOOTSECT.DOS="Previous Operating System"


Al instalar windows Vista, nos machará el sector de Boot de la particion,
nos grabará en C:\ el archivo BOOTMGR (ejecutable) y nos creará la carpeta
Boot relenandola con los archivos citados anteriormente.

El proceso de arranque, en este caso, nos mostrará un menu con 3 lineas:


Legacy (pre-Longhorn) Microsoft Windows Operating System
Microsoft Windows
Legacy (pre-Longhorn) Microsoft Windows Operating System


La primera linea, si la pulsamos, iniciará el proceso de carga de los
antiguos sistemas operativos: es decir no sacará el menu clasico que está
emebebido en el BOOT.INI y podremos arrancar cualquiera de nuestros
anteriores sistemas.

La segunda linea (existirá una de este estilo por cada WIndows Vista
instalado en nuestra maquina) nos permitirá arrancar directamente Windows
Vista.

La ultima linea (si existiese), nos permitirá arrancar un viejo msdos en el
sistema. Es decir, lo que realmente permite es arrancar el viejo
BOOTSECT.DOS si existiese en nuestra maquina, correspondiente en el ejemplo
que estoy poniendo, justo a la ultima linea del BOOT.INI.


¿DONDE ESTAN LAS LINEAS DE ESTE MENU Y COMO PODEMOS MODIFICAR SU CONTENIDO?


Aquí empieza el primer problema. No existe un fichero de texto equivalente
al BOOT.INI. Modificar el orden de carga (es decir que linea estará
preseleccionada), puede hacerse de una manera similar a Windows XP: boton
derecho en mi PC, propiedades, pestaña de avanzado, boton de inicio y
recuperacion. Allí podremos establecer que sistema operativo será
seleccionado por defecto y el tiempo en segundos que esperará el menú. Pero
no existe ya el boton de "editar" porque no se puede editar nada: no hay
archivo de texto como antes era el BOOT.INI.

Donde conserva windows vista estos datos es en el fichero oculto BCD.LOG que
está en la carpeta Boot. Pero este archivo es un archivo binario, que no
solo contiene eso, sinotambien codigo ejecutable. No podemos editarlo ya que
lo destruiremos.

Existe una utilidad de comando de linea que veremos a continuacion:
BCDEDIT.EXE la cual nos permite la modificacion. Pero no es sencilla ni tan
siquiera intuitiva.

Imaginemos que instalamos en nuestra maquina dos Windows Vista: un vista de
32 y uno de 64. El menu nos quedará:


Legacy (pre-Longhorn) Microsoft Windows Operating System
Microsoft Windows
Microsoft Windows
Legacy (pre-Longhorn) Microsoft Windows Operating System


El cual contiene dos lineas "Microsoft Windows". La primera corresponde al
64 bits y la segunda al 32. Lo logico es que queramos que cada linea muestre
el texto correspondiente para no inducirnos a error. Es decir que contenga,
por ejemplo:

Legacy Microsoft Windows Operating System
Microsoft Windows Vista 64
Microsoft Windows Vista 32
Legacy Microsoft Windows Operating System

La manera de hacerlo es mediante el comando de linea BCDEDIT.EXE el cual
modificará el archivo BCD.LOG (oculto) que he citado anteriormente.

Al ejecutar BCDECIT.EXE en una consola de comandos, nos mostrará (en nuestro
ejemplo anterior):



Windows Boot Manager
Identifier: {bootmgr}
Type: 10100002
Device: partition=C:
Description: Windows Boot Manager
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Default: {legacy}
Display order: {legacy}
{5a45d108-42ed-11da-ab93-b0ac505a9c5d}
{c59756d6-419f-11da-bb58-e429938b8537}
Timeout: 10

Windows Legacy OS Loader

Identifier: {legacy}
Type: 10300006
Device: partition=C:
Path: tldr
Description: Legacy (pre-Longhorn) Microsoft Windows Operating
System


Windows Boot Loader
-
Identifier: {5a45d108-42ed-11da-ab93-b0ac505a9c5d}
Type: 10200003
Device: partition=D:
Path: \Windows\system32\winload.exe
Description: Microsoft Windows
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Windows device: partition=D:
Windows root: \Windows
No Execute policy: OptIn

Windows Boot Loader
-
Identifier: {c59756d6-419f-11da-bb58-e429938b8537}
Type: 10200003
Device: partition=L:
Path: \Windows\system32\winload.exe
Description: Microsoft Windows
Locale: ENG-US
Inherit options: {emssettings}
{dbgsettings}
Windows device: partition=L:
Windows root: \Windows
No Execute policy: OptIn


...

Se puede modificar los parametros, textos, etc con el mismo comando. Incluso
añadir entradas. Si se ejecuta con /? nos dará la sintaxis. En nuestro caso,
para modificar unicamente los literales a mostrar en el menu de arranque
debemos hacer:

BCDEDIT -set {5a45d108-42ed-11da-ab93-b0ac505a9c5d} Description "Microsoft
Windows Vista 64"

Es decir {ID a modificar}y a continuacion lo que queremos modificar. Puede
ser la Descripcion, el Path, las politicas de No Execute, etc.



POSIBLES PROBLEMAS SI INSTALAMOS XP/W2003 CON POSTERIORIDAD

El problema surge porque la instalacion de XP / W2003 o cualquier sistema
operativo anterior nos machacará el sector de Boot y por tanto ya no
apuntará a lños cargadores de Windows Vista.

Para recuperarlo, dentro de la carpeta Boot tenemos dos programas:

FIXFAT
FIXNTFS

Deberemos ejecutar el correspondiente a nuestro sistema de archivos (FAT O
NTFS) que exista en C:\ (independientemente de como sea el sistema de
archivos de las instalaciones de windows). Ejecutandolo con /? os dará la
sintaxis de como lanzarlo para recuperar el sector de Boot de Windows Vista.




Continuaremos con este tema en articulos posteriores.





Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.




Preguntas similares