He estado tratando de encontrar una forma más fácil de instalar el arranque dual de Windows y Linux en mi computadora portátil, no necesariamente en ese orden. Lo que generalmente tenemos que hacer es instalar Windows primero, y luego instalar Linux y permitir que GRUB maneje Windows.
Entonces, lo que estoy tratando de lograr es encontrar una manera de evitar ese molesto proceso de instalación (Windows) y simplemente usar una imagen para copiar directamente en mi disco. Esto también me permitiría conservar mi gestor de arranque (GRUB). (No es que no pueda restaurarlo más tarde, pero es política de Microsoft monopolizar, en este caso negar la existencia de otros gestores de arranque en el sistema).
Primero obtuve una copia legal de Windows 8.1, luego procedí a instalarla en una máquina virtual usando VirtualBox. Luego, creé una partición NTFS en mi disco duro con particiones GPT y copié el contenido de la partición de Windows de la imagen .vdi a la partición recién creada.
Por supuesto, aún no funciona. No sé cómo reemplazar bootmgr. Da
File: \Boot\BCD
Status: 0xc000000e
Info: The Boot Configuration Data for your PC is missing or contains errors.
porque no puede encontrar ese archivo de la otra partición que se usa para el arranque, la recuperación del sistema, etc.
Ahora, he leído que bootmgr finalmente ejecuta winload.exe para iniciar Windows. No tengo idea de qué hacer a continuación.
Creo que debería funcionar teóricamente porque tengo todos los archivos necesarios para ejecutar Windows. También creo que no debería ser el único que haya pensado en esto, y por lo tanto, puede estar perdiendo algo muy básico aquí. Tal vez ya está hecho?
Tengo poca idea de cómo funciona el arranque. Lo que logré entender es que cuando inicias dual Windows y Linux, encadenas el gestor de arranque de Windows a Linux. Entonces, lo que estoy tratando de lograr es deshacerme de alguna manera del cargador de arranque de Windows.
EDITAR
He estado mirando los archivos binarios bootmgr
y \Boot\BCD
. bootmgr
lee el archivo BCD y enumera sus opciones, entre las cuales puede seleccionar iniciar.
Entonces, la información como la ejecución winload.exe
reside en el archivo BCD. Ahora, creo que bootmgr
syslinux lo ejecuta utilizando el chain.c32
módulo. Lo que intento hacer es ejecutar de alguna manera el gestor de arranque de Windows, es decir, winload.exe
directamente desde syslinux (si es posible), o modificarlo bootmgr
para que se ejecute winload.exe
solo (cuya ruta estará directamente en el bootmgr
ejecutable) sin buscar BCD o cualquier otra cosa.
La hibernación (que requiere un procedimiento diferente) no me preocupa en este paso.
Edite su pregunta para decirnos el tipo de firmware y (si es EFI) si ha habilitado el Módulo de soporte de compatibilidad en la configuración del firmware
Mi firmware es EFI (con CSM habilitado), y normalmente inicio en Arch Linux usando GRUB. He descubierto que se bootmgr
ejecuta System32\winload.exe
en sistemas heredados y System32\winload.efi
en EFI.
Tengo 0.0
idea de qué hacer desde aquí. Durante los últimos 10 días, he estado tratando de hacer cambios en BCD y creo que estoy a punto de alcanzar el éxito. Pero eso es irrelevante, porque lo que realmente quiero hacer es evitar el Administrador de arranque de Windows por completo.
Si tiene alguna idea de si hay una manera de ejecutar eso winload.efi
desde el shell EFI (solo una suposición), o alguna otra modificación a GRUB para que arranque Windows en modo EFI sin el cargador de cadenas.
Cualquier consejo es bienvenido.
Apéndice
Las siguientes publicaciones en el foro pueden proporcionar información útil:
http://reboot.pro/topic/19371-chainload-directly-to-winloadexe/
1)
En este momento, grub4dos puede cargar en cadena un cargador de arranque (como NTLDR o BOOTMGR) porque puede actuar como un reemplazo del código contenido en un sector de arranque "normal" (es decir, algo así como 300 bytes de código de máquina).
Este código simplemente establece algunos parámetros y luego llama al cargador.
Incluso eso (no) fue fácil de entender y replicar con código diferente.
Un cargador de sistema NT como BOOTMGR tiene más o menos en un solo .exe un sistema operativo de "modo real" (no del todo distinto de DOS) e instalaciones / herramientas para analizar tanto el texto sin formato como las colmenas del Registro, no es algo que se pueda recuperar escrito desde cero fácilmente.
Los buenos @ReactOS están trabajando en escribir FREELDR (que pretende ser un reemplazo para el NTLDR mucho más simple) desde AÑOS (y créanme que hay entre los programadores de ReactOS algunos muy buenos y buenos en eso).
Se parece (pero no se documenta claramente) que lograron arrancar de forma experimental un servidor 2003 con NTLDR.
2)
Con la introducción del soporte para (U) EFI, BootMgr ayuda a abstraer la diferencia entre BIOS y (U) EFI. Por ejemplo, aquí hay dos secuencias:
BIOS (PCAT) -> BootMgr { BootMgr stub -> embedded BootMgr.exe } -> WinLoad.exe -> Windows 64-bit (U)EFI -> BootMgFw.efi -> BootMgr.efi -> WinLoad.efi -> Windows
WinLoad espera que un determinado entorno (incluida la API) esté presente. BootMgr se encarga de esto, por lo que [casi] el mismo programa WinLoad funcionará en cualquier entorno.
De hecho, (U) EFI define un método para almacenar y recuperar parámetros de arranque, por lo que el BCD de BootMgr cubre el mismo propósito, independientemente del BIOS / (U) EFI.
Pero más allá de las diferencias de BIOS y (U) EFI, BootMgr le permite hacer una "elección de inicio", mientras que WinLoad inicia un sistema operativo particular que sabe cómo iniciar.
Según la cantidad de entorno que WinLoad espera que esté presente, es posible invocar WinLoad directamente. El wimboot de Michael Brown invoca el BootMgr PE [1] directamente, por lo que podría invocar WinLoad directamente, excepto que WinLoad probablemente quiera más de un entorno. ¡Podrías probarlo!
[1] No debe confundirse con el BootMgr que GRUB4DOS y Syslinux 'chain.c32 pueden invocar. Ese BootMgr incluye un código auxiliar que sabe cómo invocar el BootMgr PE incorporado.
fuente
setup
utilidad del firmware .Respuestas:
Para responder a su pregunta original, no. Windows no se puede cargar sin pasar por su propio gestor de arranque (en el caso de las instalaciones UEFI, bootmgfw.efi). Esto se debe a que Windows espera que el gestor de arranque esté allí Y llame a winload.efi. Si eso no sucede, Windows se bloqueará hasta que solucione el problema. Hay muchas razones para esto (práctico e ignorante). Principalmente, es porque Microsoft escribió el gestor de arranque para manejar todas las cosas (cargar el sistema operativo, cargar el entorno de recuperación, entorno pseudo pre-os, etc.). La única forma de lograr actualmente una apariencia de cordura es encadenar la carga usando Grub-efi.
fuente
Debe agregar el cargador de arranque EFI de Windows a la lista de opciones de arranque en el firmware UEFI. De esa manera, podrá elegir si:
Las opciones adicionales como la unidad de DVD, los discos duros externos o el arranque en red también deberían estar visibles en ese punto. El gestor de arranque UEFI generalmente reside en la partición
\EFI
(/boot/efi/
). Como acaba de copiar la imagen del disco duro de Windows sin instalar Windows correctamente, es posible que la partición EFI de su máquina actual no contenga el gestor de arranque adecuado. Por lo tanto, es necesarioEntonces debería poder elegir qué sistema operativo se inicia simplemente cambiando el orden de inicio en el BIOS. En mi computadora portátil, al presionar F12aparece un menú para seleccionar qué gestor de arranque cargar.
Para estos pasos, usaré
efibootmgr
y seguiré los pasos de este tutorial :Deberá copiar el archivo correspondiente
bootmgfw.efi
a la partición EFI en\EFI\Microsoft\Boot\bootmgfw.efi
, o/boot/efi/Microsoft/Boot/bootmgfw.efi
cuando use Linux:donde
Microsoft
hay una carpeta que contiene los archivos EFI originales para su versión de Windows.Luego debe agregar el
.efi
archivo a las entradas de arranque UEFI usando:donde, por supuesto, necesita cambiar
/dev/sda
y-p 1
los valores correctos para su dispositivo de disco y número de partición.Tenga en cuenta esto si tiene una computadora portátil Lenovo:
El inicio de su PC debería mostrar algo como esto (si mantiene presionadas las teclas correspondientes durante el proceso de arranque):
y
bcdedit
en Windows muestra esto:fuente
\EFI\Boot\Microsoft
carpeta para probar (hay un par de archivos allí)?inherit {bootloadersettings}
realmente significa en la tienda BCD?Puede realizar instalaciones en cualquier orden, es decir, instalar GNU / Linux y luego Windows o viceversa.
Simplemente haga lo siguiente después de haber instalado todos sus sistemas operativos.
Obtenga el "Disco de reparación de arranque" desde aquí. http://sourceforge.net/projects/boot-repair-cd/
Cree un Pen drive USB de arranque en vivo (Instrucciones en pendrivelinux.com)
O grabe el archivo ISO en un CD.
Inicie a través de esto y siga las instrucciones en pantalla. Tendrá un GRUB reinstalado que contiene todos los sistemas operativos instalados.
Todo lo mejor.
fuente