¿Hay alguna forma de iniciar Windows 7/8 con BIOS en GPT?

21

Me gustaría saber si hay un método para que Windows 7 o Windows 8 Developer Preview se instalen en un disco GPT en mi configuración tradicional de BIOS de PC de IBM. Windows 7, por supuesto, rechaza mi partición GPT, porque no tengo UEFI. Bueno, Debian y Grub 2 parecen funcionar bien ... Así que quiero saber si hay una manera de obligar a Windows a funcionar también.

En serio, preferiría evitar híbrido MBR / GPT, porque es muy frágil y se siente hacker, sino que lo hace el trabajo. Supongo que el principal bloqueador es que Microsoft simplemente no está agregando soporte en su BIOS bootloader para GPT, lo cual es comprensible, supongo. ¿Hay algún recurso?

A mi modo de ver, hay algunas posibles soluciones:

  1. Tener un gestor de arranque alternativo para el kernel de Windows. NO es un cargador de cadenas. Que yo sepa, ninguno existe. Es una pena.
  2. Almacenar lo menos posible en un disco alternativo basado en MBR. No me gusta esta idea, pero es factible. No estoy seguro de llamar a esto una solución al problema tanto como una solución alternativa.
  3. Emulando EFI lo suficiente como para que el gestor de arranque EFI funcione ... Recuerdo haber escuchado un poco sobre un emulador UEFI-on-BIOS, pero ahora no puedo encontrar nada al respecto. Supongo que esto es factible, pero probablemente aún no haya mucha demanda, y probablemente no sea divertido configurarlo. GRUB 2 parece ser capaz de arrancar un hackintosh con la emulación EFI necesaria, pero supongo que no hay interés / UEFI 2 es más difícil de abordar (y supongo que otros emuladores EFI utilizados para hackintosh están en el mismo barco).
  4. Coreboot con TainoCore. Coreboot no funciona en mi placa base (que yo sepa) y estoy bastante seguro de que el último esfuerzo para hacer esto durante GSoC fue un fracaso. Sin embargo, me encantaría esta solución, si funcionara.

¿Me estoy perdiendo algo?

John Chadwick
fuente
1
No exactamente. Sé que puede ejecutarse en MBR / GPT híbrido y no tengo miedo de usarlo. Más aún, no estoy satisfecho con esa solución y quiero saber si hay otra mejor manera. Sin embargo, todavía estoy trabajando en este problema y podría encontrar mi propia solución.
John Chadwick
1
Estoy bastante seguro de que esa pregunta es un duplicado de esta, dada la disparidad de 2 años. Además de eso, realmente no hay respuesta a la pregunta allí, o al menos no una respuesta directa, mientras que esta pregunta tiene una respuesta directa.
John Chadwick
¿Revisaste mi respuesta? Es nuevo, y nadie más lo ha hecho de esta manera. Me gustaría probarlo. Garantizado no hacky.
Milind R
Sin embargo, realmente no funcionará en una computadora portátil. Pero nuevamente, me resulta terriblemente extraño marcar esta pregunta como un duplicado después de que fue respondida lo suficiente casi 2 años antes de que esa pregunta fuera formulada. No creo que ejecutar una implementación UEFI sea hackeo; simplemente extravagante, pero tiene la ventaja de no requerir unidades de disco adicionales.
John Chadwick
Hay una implementación de un solo disco en proceso, se actualizará cuando se pruebe ... Además, es un truco en el sentido de que estás mintiendo a Windows sobre el sistema: en MBR híbrido, mintiendo sobre el tipo de partición, en DUET, mintiendo sobre el firmware.
Milind R

Respuestas:

8

Bueno, las cosas han cambiado desde la primera vez que hice esta pregunta. Por un lado, mi PC ahora está basada en UEFI, por lo que ya no tengo este problema. Especie de. Tenía interés en obtener una configuración similar en mi computadora portátil (particiones GPT, etc.) Finalmente logré obtener una configuración Tianocore UEFI DUET funcional, ¡y fue tan dolorosamente simple como parece!

Esto supone que desea todas las configuraciones nuevas y brillantes. Si realmente quieres convertir tu configuración anterior, buena suerte . En realidad, buena suerte de cualquier manera, ya que esta es una operación irregular en cualquier situación.

Una palabra de advertencia: si eres fanático de los tiempos de arranque rápidos, es posible que quieras repensar esta decisión. No es que UEFI DUET sea lento, pero agrega otra etapa a su proceso de arranque, por lo que si su BIOS / POST no es rápido, es posible que no le guste esto.

Sin más preámbulos:

  1. Querrás una configuración de Linux. Utilicé Fedora 16 desde una memoria USB (con UNetBootin) y lo recomiendo porque prácticamente funciona de inmediato. De todos modos, necesita una unidad USB, así que no planee continuar sin una.

  2. Toma algunas compilaciones UEFI DUET. Sin duda, el mejor lugar para conseguir esto es aquí . Los tarballs de compilación reales están debajo de la rama maestra del primer repositorio, aquí . Dale lo viejo tar -xf.

  3. Configura tus particiones. Debería reservar 200 MB en algún lugar del disco (muy preferiblemente el principio y la primera partición). Puede formatearlo con FAT32, pero lo formatearemos más tarde. Solo asegúrate de que aparezca como una partición. Deberías usar GPT aquí.

  4. Ahora instale cualquier software adicional que pueda necesitar. En la distribución de Fedora Live, descubrí que necesitaba yum install gdisk. Creo que eso fue todo.

  5. Ahora ve al directorio de compilaciones extraído. chmod +x ./duet-instally ./duet-install -64 -F -m /dev/sda1(¿dónde /dev/sda1está su partición de sistema EFI deseada?)

  6. Cruza los dedos y reinicia. Con suerte, verá el logotipo de TianoCore en solo unos momentos. Si es así, ¡probablemente eres bueno! Deberá configurar los archivos de instalación de su sistema operativo en una unidad USB: Tianocore no admite unidades de CD-ROM / DVD-ROM listas para usar (y no conozco ningún controlador para ello).

También puede desear algunos binarios de shell UEFI para jugar. Encontré algunos aquí . Sin embargo, no probé con Tianocore todavía.

De todos modos, gracias por todos los que intentaron ayudar.

John Chadwick
fuente
Esto funciona con instalaciones de Windows?
Moab
Lo estaba usando con éxito con Windows 8 en 2012. Ya no lo necesito porque todo lo hecho en los últimos años usa UEFI, porque Windows 8+ requiere que los fabricantes de hardware lo admitan. Probablemente todavía funcionaría hoy, pero no sé si lo recomendaría.
John Chadwick
2
El enlace UEFI DUET ahora debería estar aquí , pero ya no se mantiene; el sitio dice que use Clover EFI en su lugar.
kirbyfan64sos
1
y puede instalar Clover en HDD para eliminar la necesidad de una unidad separada
phuclv
6

Logré arrancar Windows 8.1 en un disco GPT con una configuración de BIOS SIN un segundo disco MBR.

La historia era: mi computadora portátil estaba en una configuración BIOS + GPT, con solo Arch Linux instalado. Recientemente necesito realizar algunas tareas en Windows (que las máquinas virtuales no pueden), por lo que estoy luchando por instalar Windows en mi configuración BIOS + GPT existente. Según la respuesta de Milind , logré instalar los archivos de arranque de Windows (Boot, bootmgr, etc.) en una unidad USB MBR (pequeña). Y cada vez que enciendo mi computadora portátil con esa unidad USB conectada, puedo iniciar Windows 8.1, después de lo cual la unidad se puede enchufar de manera segura.

El inconveniente es obvio: necesito llevar una unidad USB conmigo para arrancar Windows. Así que siempre estaba tratando de deshacerme de él.

Después de probar con diferentes métodos, finalmente encontré que el módulo memdisk del proyecto syslinux funcionó.

  • Debe renunciar al administrador de arranque de Windows.
  • No tiene que instalar syslinux. Solo se necesita el módulo memdisk (un archivo de 26 kB).
  • Puede usar muchos cargadores de arranque para cargar este módulo, en mi caso, mi cargador de arranque favorito GRUB (versión 2).

Aquí está el resumen de cómo hacerlo:

  • Particione su disco GPT para satisfacer las necesidades de GRUB, es decir, una pequeña partición para incrustar core.img. Enlace detallado
  • Instale GRUB en esa pequeña partición.
  • Instalar Windows con imagex.Y use bootsecte bcdbootpara instalar archivos de arranque de Windows en un pequeño disco USB MBR..
  • Use ddo dd_rescuepara clonar su pequeño disco USB en una imagen de disco. (Su disco USB ha finalizado su trabajo). La imagen puede ser demasiado grande para que se cargue el disco duro, puede montarla y reducir el sistema de archivos / partición en ella.
  • Según mi prueba, no necesita un disco MBR físico para instalar los archivos de arranque de Windows. Puede crear un archivo vhd y tratarlo como un disco físico.Después de instalar los archivos de arranque de Windows en el vhd, puede convertirlo a una imagen de disco sin formato (estilo dd) utilizando las herramientas proporcionadas por VirtualBox o QEUM.Cuando se crea con type=fixed, el archivo vhd es solo una imagen de disco sin formato normal (estilo dd) con pie de página de 512 bytes. El pie de página se reconocerá como "espacio no particionado" y se ignorará, por lo que un type=fixedarchivo vhd se puede alimentar directamente a MEMDISK sin convertirlo y, por lo tanto, iniciar Windows.
  • Configure GRUB para usar memdisk para cargar esta imagen de disco.
  • Windows arrancará.

Se puede encontrar un tutorial detallado en mi respuesta de reinicio.pro al hilo de Milind.

Zhuoyun Wei
fuente
1
@wzboy Estoy usando Arch Linux y logré obtener el punto de instalar Windows (con wimlib-imagex). Ahora no estoy seguro de cómo continuar. ¿Sería capaz de elaborar sobre cómo crear el archivo vhd desde una distribución de Linux?
Mihai Bişog
@ MihaiBişog Necesita un Windows PE para crear ese vhd. Hay muchas formas de arrancar en Windows PE. GRUB y syslinux pueden arrancar en archivos iso, por ejemplo.
Zhuoyun Wei
¿No es esto romperá las actualizaciones de Windows? Quiero decir, si Microsoft lanzará una actualización que debería modificar estos archivos de arranque / bootmgr que colocas en la imagen del disco virtual, no se actualizarán y ni siquiera notarás esto. También supongo que esto puede romper algunas operaciones de reparación de Windows. ¿Hay alguna otra desventaja?
Powerman
De hecho, Windows nunca encontrará BCD / Bootmgr, ya que reside dentro de una imagen de disquete / disco. Así que no se trata de actualizarlo automáticamente. La reparación automática no funcionará. Cualquier cosa relacionada con las herramientas de Microsoft relacionadas con su arranque probablemente no funcionará.
Milind R
1
Sí, cualquier cosa relacionada con bootmgr no funcionará, ya que se han "ido" después de ayudar a que Windows arranque. De hecho, cuando ejecutas "bcdedit" en cmd.exe, te dirá que no puede encontrar archivos de arranque. :-)
Zhuoyun Wei
5

Si incluso tiene una unidad de repuesto pequeña , puede iniciar Windows (32 o 64 bits) desde GPT en BIOS. Un disquete servirá.

Inicie en el disco de instalación / reparación de Windows.

Cree la unidad del sistema en el disco pequeño / disquete y úsela bcdbootpara colocar sus archivos de arranque en la unidad recién creada en el disco pequeño. Agregue un sector de arranque con bootsect. Cambiar el {bootmgr} devicea boot. Arrancar desde un disco pequeño.

Los pasos se detallan aquí .

Milind R
fuente
2
Intenté eso y funcionó. Ahora tengo un Windows 8.1 en funcionamiento en un disco GPT con una configuración de BIOS. Todo lo que tengo que hacer es insertar mi unidad flash USB para iniciarlo. Después del proceso de arranque, la unidad USB se puede quitar. Al igual que en los viejos tiempos, me refiero al disquete de MS-DOS ...
Zhuoyun Wei
Jajaja Estoy trabajando en una solución que no requiere otro disco. ¿Me puede decir qué tan lento / rápido es?
Milind R
1
Creo que poner bootmgr en otro disco no hace que el arranque de Windows sea más largo, al menos no lo siento.
Zhuoyun Wei
2
OHHHH SI. Disculpas por estar demasiado emocionado. Pasé toda una tarde y finalmente pude arrancar Windows 8.1 en un disco GPT con una configuración de BIOS SIN un segundo (pequeño) disco MBR, mediante el uso del módulo syslinux memdisk que es capaz de cargar la imagen del disco duro.
Zhuoyun Wei
1
Aquí está mi publicación: reboot.pro/topic/…
Zhuoyun Wei
3

Muchas gracias a wzyboy.

Me enfrenté a este problema cuando intenté instalar Windows 2012 en Dell PowerEdge 2950 con 6Tb RAID. No tiene UEFI.

Realicé algunos experimentos. Primero creé un disco duro virtual de 32Mb, como dijo wzyboy, y simplemente copié todas las cosas de la partición reservada de Microsoft. Windows se inició normalmente. Pero con esta solución, el servicio Hyper-V no puede iniciarse.

Como dice memdisk wiki, automáticamente decide por tamaño de imagen, qué tipo de medios tiene que emular. Entonces, creé un disquete virtual de 720K en un entorno WMware, y copié bootmgr, BCD y bootstat.dat en él (por si acaso, eliminé el submenú memtest de la tienda BCD). Tamaño del disquete Elegí lo más pequeño posible, por lo que puede ser más grande o incluso más pequeño, no lo intenté.

Ahora arranca desde la unidad GPT y Hyper-V funciona bien.

PS puede ser de ayuda de software de terceros. ¿Alguien usó algo como esto? https://www.terabyteunlimited.com/bootit-bare-metal.htm

Nikolai Vakulenko
fuente
Últimamente, después de pasar muchas horas en trucos de imágenes, encontré que el controlador RAID Perc5-i es capaz de cortar la matriz más pequeña que la capacidad del disco duro físico. Entonces, en el hardware profesional, el arranque GPT no es un problema.
Nikolai Vakulenko
¿Puede por favor narrar su escenario y su solución, en este hilo de desarrollo ? Estoy tratando de mantener todos los detalles juntos.
Milind R
2

El artículo A BIOS to UEFI Transformation describe en detalle cómo usar TainoCore UEFI DUET.

Entiendo que ha tenido problemas al usar TainoCore, pero tal vez este artículo funcione para usted.

El artículo dice:

Algunas computadoras no funcionan con UEFI DUET. Lo más importante es que solo es útil en computadoras x86-64 de 64 bits, especialmente en forma binaria. De hecho, no se inicia correctamente incluso en algunas computadoras x86-64. En las pruebas en cinco sistemas x86-64, logré que una o ambas versiones funcionaran en solo tres computadoras, una tasa de éxito bastante triste, realmente. Puede ser una coincidencia, pero las dos computadoras que funcionaron mejor para mí usaron CPU Intel, mientras que las dos que funcionaron peor y la que funcionó con la versión 2.1 pero no la versión 2.3 tenían CPU AMD.

Esto parece implicar que uno debería probar varias versiones de UEFI DUET antes de darse por vencido.

Sería útil conocer el modelo de su computadora.

harrymc
fuente
Desde la última vez que actualicé esta pregunta, conseguí que UEFI DUET se iniciara con éxito en mi computadora. Lamentablemente, la falta de un controlador de DVD-ROM me mató, ya que no tenía ninguna unidad USB para almacenar Windows. Después de que mi disco duro primario fallara al azar, decidí darle un descanso y usar la partición de BIOS en un repuesto. Sin embargo, este artículo es definitivamente útil, y todavía estoy interesado en hacer que esto funcione por mi cuenta. Intentaré recordar recoger una unidad flash pronto.
John Chadwick
@JohnChadwick puede usar Clover e instalarlo en el HDD para que ya no necesite una unidad de arranque separada
phuclv
@phuclv: ¿Notó que el comentario de John Chadwick es de 2011 y que ha dado su propia respuesta a esta publicación?
harrymc
@harrymc, por supuesto, lo sé. Esa información es para futuros lectores
phuclv
0

Las personas deben tener en cuenta que no todos los firmware de BIOS pueden manejar una unidad GPT. Tengo una unidad USB Seagate de 4 Tb que fue GPT de fábrica y ninguna de mis dos computadoras arrancaría con la unidad conectada al puerto USB.

Las máquinas se congelarán en la pantalla del menú F2 Enter Setup F10 Boot y lo único que se puede hacer en ese punto es apagar y volver a encender.

Una vez que convertí la unidad a MBR, que mata aproximadamente 2 Tb de espacio en la unidad, ambos sistemas se iniciarán y arrancarán en el sistema operativo de manera normal con la unidad conectada.

Estoy buscando un parche de BIOS para rectificar este problema.

Scott Tovey
fuente
El BIOS no sabe nada sobre la unidad , ya sea GPT o MBR, o incluso la etiqueta BSD o APM ... Simplemente carga el primer sector (es decir, MBR) y lo ejecuta. En ese punto, el trabajo del BIOS puede considerarse "terminado". Si su unidad no arranca, solo significa que no hay un sector de arranque válido en la unidad
phuclv