Windows 8 y Linux UEFI preinstalado de arranque dual en una computadora portátil

10

Estoy tratando de configurar Windows 8 y Arch Linux en un nuevo Sony Vaio E14 con Windows 8 preinstalado.

Hasta aquí:

  • instalé W8 en mi nuevo SSD (cambiado por el HDD original) usando Recovery Media
  • encogió la partición W8, partición de recuperación eliminada, intercambio deshabilitado
  • arranque W8 confirmado muy bien

En el arco:

  • Arranque seguro deshabilitado en BIOS
  • arranque W8 confirmado muy bien
  • Arrancó Arch del CD e instaló todo en la 4ta y 5ta partición
  • configurar rEFInd para el gestor de arranque del núcleo EFIstub

Después de eso se puso peor. No pude arrancar nada más que Windows 8 (aunque me alegré de que al menos siguieran funcionando bien).

Intentó:

  • creando EFI \ refind \ y colocando el .efi allí (según el manual de Arch
  • sobrescribir EFI \ boot \ bootx64.efi
  • sobrescribir EFI \ Microsoft \ Boot \ bootmgr.efi
  • sobrescribiendo EFI \ Microsoft \ Boot \ bootmgfw.efi --- YAY rEFInd aparecido!

Hasta ahora tan bueno. He mantenido todo el directorio W8 Boot \ en EFI \ windows8 y configuré un menú de arranque para ello; y arrancó bien.

Pero, al reiniciar, todo estaba mal: "Sistema operativo no encontrado" en lugar de cualquier gestor de arranque (refind o w8).

Arrancó nuevamente en Arch usando el CD en vivo para descubrir que la partición EFI tenía una tabla FAT errónea. fsck.vfat lo arregló, y descubrí que EFI \ Microsoft \ Boot había vuelto a su estado original (todos los archivos de búsqueda eliminados y reemplazados con cargadores de arranque W8). Los sobrescribí nuevamente y volví a rEFIndirme correctamente y Arch fue perfectamente arrancable.

Después de eso, he intentado solo cambiar el nombre de EFI \ Microsoft \ Boot \ bootmgfw.efi a bootmgfw.001.efi (luego copiar el .efi de refind a bootmgfw.efi y mantener CUALQUIER OTRO archivo como estaba), pero con exactamente el mismo resultado. Intenté marcar la partición GPT EFI como solo lectura, el mismo resultado.

Ahora no tengo suerte. Arch arranca bien, también lo hace W8 pero destruye la partición EFI en el proceso.

Gracias por cualquier idea, Google me trajo hasta aquí y no puedo encontrar nada mejor.

PD: Windows 8 QUIZÁS destruye la partición al apagar: cuando ordeno un apagado en W8, tarda mucho (aproximadamente medio minuto en lugar de ~ 5 segundos). Entonces, en teoría, podría resolver esto reiniciando la computadora portátil en lugar de un apagado normal, pero eso no es bueno.

picazón355
fuente
Me temo que no puedo ayudar aquí, no tengo una máquina UEFI para probar cosas. Aunque puede que no sea la forma más deseada de hacerlo, puede intentar agregar una entrada de Linux al gestor de arranque de Windows y arrancar allí, pero no lo he intentado en una máquina UEFI. Vea aquí el procedimiento: superuser.com/a/499652/18050 Además, siempre uso Archboot para instalar Arch, pruébelo si está usando las imágenes oficiales porque la instalación tiene en cuenta los sistemas UEFI: bbs.archlinux. org / viewtopic.php? id = 150833
Xandy
Esto suena como un conflicto entre Arch Linux y algo que hace Windows 8. ¿Has probado otra distribución para descartar que no sea Arch Linux el que tiene el problema?
Ramhound
Gracias por la sugerencia de easyBCD, definitivamente lo intentaré. No me importa qué gestor de arranque se esté utilizando, así que si Windows puede hacerlo, estaré más que feliz. Publicaré resultados mañana cuando haya tiempo libre del trabajo nuevamente para arruinar algo :) @Ramhound sería un poco doloroso en este momento y no creo que esté relacionado con Arch - rEFInd es un proyecto separado y he Lo instalé todo a mano (siguiendo al hombre).
itchy355

Respuestas:

5

Puede valer la pena hacer un apagado en frío (presione el botón de encendido) en Windows para ver si puede arrancar después, solo como prueba. Obviamente, no querrá hacer esto de forma regular, pero podría ser útil confirmar que Windows está sobrescribiendo sus datos ESP revisados. Si en realidad está dañando el sistema de archivos en el apagado de Windows, entonces esto suena como un error de Windows que debería informarse a Microsoft. Si solo está reemplazando el bootmgfw.efiarchivo, técnicamente está dentro del alcance de Microsoft, por lo que no es realmente un error.

Sin embargo, en términos más generales, ¿ha intentado utilizar el efibootmgrprograma de Linux para registrarse con el EFI bajo su propio nombre (por ejemplo, EFI/refinden el ESP)? Esto se describe en la documentación de rEFInd, en la sección de instalación manual de Linux. Alternativamente, puede instalar usando el install.shscript. Cualquiera de los métodos requerirá un arranque en modo EFI para tener éxito, pero debe poder hacerlo utilizando un CD de rEFInd o arrancar desde un disco de emergencia en modo EFI.

Si efibootmgrno funciona, intente usarlo bcfgen un programa de shell EFI, como se describe en esta página wiki de Arch.

Si estos procedimientos no funcionan, intente usar efibootmgro bcfgpara eliminar la entrada bootmgfw.efide la NVRAM y luego instale rEFInd como EFI/BOOT/bootx64.efi. En teoría, la computadora podría iniciar rEFInd, que debería funcionar normalmente y permitir el arranque de cualquier sistema operativo. Sin embargo, hay dos posibles problemas: el firmware podría estar por EFI/Microsoft/boot/bootmgfw.efiencima EFI/BOOT/bootx64.efi; y Windows podría verificar sus opciones de inicio y agregar su propio cargador de inicio a la NVRAM cuando se inicie. Aún así, vale la pena probar este método.

La especificación EFI requiere que las computadoras cumplan con sus configuraciones de NVRAM (que se administran efibootmgren Linux, bcfgen un shell EFI o programas similares), por lo que si estas utilidades no funcionan, su firmware está dañado y puede considerar devolver el computadora para otro modelo. (¡Sin embargo, asegúrese de decirle a Sony por qué devolvió la computadora si lo hace!) Este tipo de problema es bastante común; Tengo una placa Gigabyte con un "Hybrid EFI" que sigue olvidando su configuración de NVRAM, por ejemplo. Sin embargo, al menos con esta placa, es posible evitar el problema al nombrar mi gestor / cargador de arranque de elección EFI/BOOT/bootx64.efi.

Si no puede hacerlo funcionar y no está dispuesto o no puede reemplazar la computadora, tengo otras dos sugerencias para soluciones:

  • Puede tener a mano un CD de arranque o una unidad flash USB con rEFInd y usarlo cuando desee arrancar Linux. Sin embargo, esto puede requerir el uso de una tecla de función para indicarle a la computadora que arranque desde los medios extraíbles en lugar de hacerlo desde el disco duro.
  • Puede borrar las particiones del disco, volver a particionar usando MBR y reinstalar ambos SO en modo BIOS en lugar de en modo EFI. Esto eliminará cualquier descamación de EFI de la imagen y le permitirá usar un GRUB en modo BIOS como su cargador de arranque. Sin embargo, esto probablemente requerirá una copia comercial del instalador de Windows 8; al menos para Windows 7, las copias OEM eran inflexibles sobre el modo de instalación (BIOS frente a EFI). Alternativamente, puede ser posible convertir de un arranque en modo EFI a un arranque en modo BIOS sin reinstalar. El cambio opuesto es posible (iba a publicar un enlace a un sitio donde se describe, pero este sitio no me deja publicar más de dos enlaces; lo siento), y parece recordar haber encontrado descripciones de cómo hacer un EFI- conversión a BIOS en alguna parte, pero no tengo una URL a mano. Una búsqueda en Google puede subir algo.

Me encontré con esta página después de publicar mi primera respuesta, y tiene otra causa posible para al menos parte de su problema: aparentemente Windows 8 usa un método de apagado que es más parecido a una operación de suspensión en disco. El resultado es que las particiones montadas pueden corromperse si cierra Windows y luego inicia Linux. Aunque el ESP normalmente no está montado en Windows 7, AFAIK, podría ser que Windows 8 hace las cosas de manera diferente, o tal vez el ESP está montado en Windows 7 y parece estar oculto. En cualquier caso, puede deshabilitar esta característica de Windows 8 escribiendo el siguiente comando en una ventana del símbolo del sistema del administrador:

powercfg /h off
Rod Smith
fuente
De hecho, Windows 8 no rompe nada cuando se apaga en frío. No tengo ganas de publicar un error, porque después de todo, soy yo quien está estropeando su gestor de arranque :)
itchy355
He intentado jugar con el efibootmgr; demostró que hay un número inusualmente alto de gestores de arranque (más de los 3 que esperaría), lo que me llevó a mirar mejor mi disco; y he descubierto que, de hecho, tengo dos particiones EFI: -x Solo la segunda (/ dev / sda2) se mostró como EFI system partitionen GDisk, por lo que me hizo pensar que era la correcta. El otro es solo una partición FAT (sda1) con el mismo tamaño y estructura de archivo EFI estándar.
itchy355
Si cambio el orden de arranque para cargar rEFInd primero, luego algo llamado ,, sony original '' y luego otros, se sobrescribe de nuevo al valor predeterminado (windows, sony original, others (reencontrar)) PS; Dicho todo esto teniendo en cuenta que ,, windows '' es mi sobrescritobootmgfw.efi
itchy355
1
Mientras tanto, probé powercfg /h offen w8, y ESO FIJO W8 ROMPIENDO LA PARTICIÓN DE EFI ... ese es el santo grial que he estado buscando, parece :) ¡GRACIAS GRACIAS GRACIAS!
itchy355
Me alegra saber que eso powercfg /h offsolucionó tu problema principal. Puede interesarle saber que he encontrado información de que algunas implementaciones de UEFI parecen codificadas para mover un cargador de arranque llamado "Administrador de arranque de Windows" al principio de sus listas. Por lo tanto, cambiar el nombre de los cargadores de arranque usando efibootmgrpuede permitirle instalar rEFInd (o lo que quiera) bajo un nombre de archivo más sensible.
Rod Smith