lunes, 12 de noviembre de 2018

Windows: Falta BOOTMGR

Al iniciar el sistema operativo Windows nos podemos encontrar con el siguiente error:


Si Windows está en castellano:

Falta BOOTMGR presione Ctrl+Alt+Supr para reiniciar

Si Windows está en inglés:

BOOTMGR is missing Press Ctrl+Alt+Supr to restart

En este post veremos el funcionamiento del sistema de boot de Windows y cómo solucionar los posibles problemas de arranque.

BOOTMGR: ¿Qué es?


El MBR (Master Boot Record) está situado en el primer sector del disco, los primeros 512 bytes.

El MBR de un disco contiene la tabla de particiones y el código que llama al gestor de arranque. 

En sistemas Linux el gestor de arranque puede ser GRUB.

En sistemas Windows,  se llamará: "Windows Boot Manager". 

El "Windows Boot Manager" a partir de Windows Vista y Windows Server 2008, se llama bootmgr. 

Bootmgr es la aplicación que controla el menú de arranque. 

En sistemas multiboot, aparecería una entrada para cada opción de sistema operativo.

En sistemas operativos Windows XP / Windows Server 2003 o anteriores, el equivalente de bootmgr se llamaba: NTLDR (NT Loader).

El "Windows Boot Manager" también ofrece las típicas opciones de arranque como el modo seguro, modo seguro con funciones de red, la última configuración buena conocida, etc.

Para cargar Windows, bootmgr inicia el fichero Winload.exe.

Para modificar las opciones de arranque, añadir nuevas, etc podemos utilizar el comando bcdedit desde una ventana de CMD como administrador.

Otra característica de este sistema de arranque es el uso de: BCD (Boot Configuration Data), una base de datos con la configuración que queda situada el un directorio de la partición primaria activa del disco.

El equivalente a la base de datos BCD en sistemas "pre-Windows Vista" , sería el fichero boot.ini

Los directorios donde se ubica la base de datos BCD son: \boot\BCD para sistemas con arranque BIOS o bien en: \EFI\Microsoft\Boot\BCD en sistemas con arranque UEFI.

En sistemas operativos cliente mas actuales, como Windows 7, Windows 8, Windows 10 o servidor como Windows Server 2008R2, 2012, 2012R2, 2016 también se utiliza el mismo modelo de arranque.

BOOTMGR: ¿Por qué aparece un error?


El hecho que aparezca un error de BOOTMGR no significa que el fichero este dañado o haya sido borrado.

La causas del error pueden ser diversas.

Algunos ejemplos donde nos podemos encontrar con un error de BOOTMGR:

- El disco está dañado.
- Se ha dañado el MBR.
- Se ha instalado otro sistema operativo y este ha modificado el sector de arranque.
- El identificador del disco de boot ha cambiado.
- Otros...

Como no hay una única causa clara del problema, la solución puede ser distinta en cada ocasión.

BOOTMGR: Solución, reparación automática.


Una vez descartados problemas de hardware, la forma más sencilla de solucionar el problema es proceder a una reparación automática.

Para ello, iniciaremos con el DVD/ISO de Windows.

Debemos utilizar el mismo DVD/ISO que la versión de Windows que queremos reparar.

Las capturas que veremos a continuación corresponden a la versión de sistema operativo: Windows 10, pero el procedimiento es el mismo para otras versiones de Windows.

Una vez seleccionado el idioma, seleccionamos la opción "reparar equipo", "Solucionar problemas", "Opciones avanzadas", "Reparación de inicio":

Windows: Falta BOOTMGR

En este paso, nos pedirá seleccionar el sistema operativo destino y se realizarán las correcciones necesarias.

BOOTMGR: Solución, reparación manual.


Si la reparación automática no ha funcionado, podemos proceder a utilizar la reparación manual.

Para ello, necesitaremos abrir una ventana de CMD en el modo de recuperación.

Para obtener una ventana de CMD iniciando desde el DVD/ISO, el procedimiento es muy similar al que hemos visto en el punto anterior.

Una vez seleccionado el idioma, seleccionamos la opción "reparar equipo", "Solucionar problemas", "Opciones avanzadas", "Símbolo del sistema":

Windows: Falta BOOTMGR

A partir de este momento, ya disponemos de una ventana de CMD.

Existen dos comandos orientados a reparar problemas en el boot del equipo que solo están disponibles desde esta consola de recuperación.

Los comandos son: bootrec bootsect.

Con bootrec podemos reparar problemas en MBR (master boot record) y en la base de datos BCD.

Los comandos a ejecutar serían:

bootrec /FixMbr
bootrec /Fixboot
bootrec /RebuildBcd 
- Con /FixMBR: Se reemplaza el ejecutable que lee la tabla de particiones.

- Con /Fixboot: Reescribimos el código que va a buscar el "Windows Boot Manager" adecuado. 

- Con /RebuildBcd: Se rehace la base de datos BCD. 

Podemos obtener todos los parámetros disponibles ejecutando: bootrec /?

El segundo comando que podemos utilizar es: bootsect.

El equivalente del comando bootsect sería bootrec /Fixboot

El equivalente del comando bootsect /mbr sería bootrec /fixmbr 

Si disponemos de "Windows Boot Manager" basado en bootmgr (sistemas operativos Windows Vista/2008 o superior):

- Utilizaremos el parámetro: /nt60

Si disponemos de "Windows Boot Manager" basado en NTLDR (sistemas operativos Windows XP/2003 o inferior):

- Utilizaremos el parámetro: /nt52

Por ejemplo, sobre un sistema operativo Windows 10, ejecutaríamos:

bootsect /nt60 SYS

o bien:

bootsect /nt60 ALL

La diferencia entre SYS ALL reside en que si especificamos SYS estaremos indicando que solo nos referimos a la partición donde está instalado Windows, mientras que si indicamos ALL, estaremos especificando todas las particiones.

Podemos obtener todos los parámetros disponibles ejecutando: bootsect /help

También disponemos del comando diskpart para administrar las particiones.

El comando diskpart será accesible también en modo normal fuera de la consola de recuperación.

Con diskpart podemos indicar cual es la partición activa.

Es necesario que la partición donde arranca el sistema operativo esté marcada como activa.

Para ello, podemos seguir el siguiente procedimiento:

diskpart
list disk
select disk XX
list partition
select partition YY

active
exit


Donde XX, hará referencia al disco y YY a la partición.