¿Cómo reinstalaría el gestor de arranque grub-efi en Fedora Linux?

12

Recientemente instalé Fedora 18 usando el arranque EFI. Al igual que las otras distribuciones actuales de Linux, configura GRUB2 para mí.

Tengo experiencia con la reinstalación de la versión BIOS de GRUB cuando las cosas salen mal. Sé, por ejemplo, cómo arrancar un disco de rescate, hacer chroot en el sistema instalado, ejecutar grub-instally posiblemente update-grub/ grubby/ grub-mkconfig.

¿Cómo reinstalaría la versión EFI de GRUB cuando las cosas salen mal? (Sé que las cosas saldrán mal: las rompo).

sourcejedi
fuente
¿Por qué has hecho una pregunta vaga y luego la has respondido de inmediato? Aunque la respuesta proporciona información útil, la pregunta realmente necesita aclaración: saber que has cambiado algo no es suficiente. Comprender con precisión lo que se cambió es realmente necesario para proporcionar una buena respuesta a la pregunta.
Rod Smith
@RodSmith gracias por responder a mi correo electrónico sobre EFI anteriormente :). Y por agregar tu comentario a los votos negativos. La pregunta con la que comencé fue literalmente esto. Tengo experiencia con la reinstalación de grub-pc. Quiero tener el mismo nivel de confianza, que sé cómo recuperar un sistema EFI. Edité la pregunta una vez para enfatizar que se trataba de reinstalar grub ... Creo que debería intentarlo de nuevo y ser más explícito sobre mi motivo.
sourcejedi
¿Por qué estás usando grub si tienes UEFI? ¿Qué ventaja ofrece el encadenamiento de los dos cargadores de arranque?
Marco
¡@Marco UEFI no es el gestor de arranque compatible con ninguna distribución de Linux que conozco! Fedora actualiza GRUB automáticamente cuando instala un nuevo kernel e instala las opciones de arranque necesarias como root =. No hace eso para EFI. Yo podía abandonar apoyo a la distribución y el uso de exploración automática de Refind w opciones / kernel en refind.conf , pero que todavía sería encadenamiento del cargador de arranque / gerentes! Y Microsoft no firme conductores GPL, por lo Secure Boot tiene que ir Shimbashi> arranque loader-> Linux de todos modos, y que realmente desea un menú de arranque después de la UEFI-> parte SHIM.
sourcejedi
Después de instalar un nuevo kernel, una sola llamada efibootmgres suficiente para actualizar la entrada en el menú UEFI. No sé sobre rEFInd o SHIM. Yo personalmente no encadena múltiples cargadores de arranque. Todos los sistemas operativos se agregan al menú de arranque UEFI y funciona perfectamente bien.
Marco

Respuestas:

9

En primer lugar, necesitará un sistema Linux con arranque EFI . Si todavía tiene su medio de instalación original (CD / DVD / memoria USB), eso debería incluir un sistema de rescate adecuado. Incluso podría tener una opción de reparación con un solo clic :).

Alternativamente, la comunidad Ubuntu proporciona una imagen automática de reparación de arranque . Afirma que es compatible con Fedora. Si desea saber lo que realmente hace, le sugiero que lea esta explicación de terceros por adelantado.

Sin embargo, utilicé un sistema de rescate de uso general con herramientas de consola. Además de admitir el arranque EFI, me aseguré de que efibootmgresté en la lista de paquetes . Se llamaba GRML y estaba basado en Debian. Aquí está la información sobre herramientas de consola y grub-efi que descubrí al rescatar mi sistema Fedora:

  1. Cuando ejecute un sistema Fedora 18 arrancado por EFI, no lo ejecutegrub2-install . Reclamará éxito, pero rompe el sistema de arranque grub-efi de Fedora.

    • El archivo /boot/EFI/fedora/grub.efilo instala el paquete grub-efi. Si no desea instalarlo de nuevo, el uso yum reinstall grub-efi. (Para hacer esto desde un sistema de rescate genérico, puede hacerlo después de ingresar mounte chrootingresar a su sistema Fedora instalado). Fedora grub-efi usa el archivo de configuración /boot/EFI/fedora/grub.cfg(presumiblemente generado por grubby). Fedora en EFI no generará un archivo en /boot/grub2/grub.cfg. La ejecución grub2-installreemplazará grub.efi con una imagen que intenta leer /boot/grub2/grub.cfgy, por lo tanto, fallará.

    • grub2-installinstala una entrada de arranque EFI para grub.efi. Sin embargo, si no ha deshabilitado el Arranque seguro en su firmware con certificación de Windows 8, esta entrada no se iniciará. En su lugar, debe iniciar shim.efi(ignorar shim-fedora.efi, no estoy seguro de qué es exactamente). Vea abajo.

  2. Puede perder su entrada de arranque EFI para Fedora si se restablece la configuración de firmware. (Manualmente, o mediante actualización de firmware, o porque el firmware tiene errores, este último se ha informado en la naturaleza). Aquí se explica cómo crear manualmente una entrada de arranque EFI para Fedora con arranque seguro:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    Este ejemplo usa la partición número 100 en el primer disco estándar reconocido por Linux. Debe ajustar las opciones -d /dev/sdae -p 100identificar el sistema de archivos en el que se monta Fedora /boot/efi. Esta es una partición del sistema EFI. El instalador de Fedora habrá creado un ESP dedicado para que lo use su instalación de Fedora, separado de los ESP utilizados por cualquier otro sistema operativo. ( Esto es diferente de Ubuntu y OpenSUSE ).

    Tenga en cuenta que el efibootmgrcomando requiere que lo ejecute desde un sistema con arranque EFI.

sourcejedi
fuente
"Tenga en cuenta que el comando efibootmgr requiere que lo ejecute desde un sistema con arranque EFI". - en este caso, ¿cómo "arranca" un sistema con arranque EFI? (mi USB actual no se iniciará al seleccionar la opción UEFI)
jozxyqk
1
Instalar medios es la forma compatible de arrancar su sistema. Creo que también debería poder iniciar un sistema EFI sin instalar variables de firmware EFI, implica crear /EFI/boot/bootx64.efi(suponiendo UEFI de 64 bits). Así es exactamente cómo funcionan los medios de instalación USB (cualquier cosa que no sean CD / DVD). Podría ser suficiente copiar shim.efi allí, pero no estoy seguro de si eso está configurado para funcionar o no.
sourcejedi
5

Si tiene un arranque dual con UEFI Windows, existe otra posibilidad. que no requiere un disco de recuperación.

Puede iniciar Windows, abrir una línea de comando con privilegios de administrador y ejecutar el siguiente comando:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

Esto reemplazará la entrada de arranque de Windows en UEFI, con una que arranque en GRUB. Suponiendo que su menú GRUB incluye una entrada funcional para Windows, ahora tiene un arranque dual :-). Esperemos que todo esto funcione sin deshabilitar el arranque seguro.

Acabo de tener que hacerlo yo mismo después de una actualización de Windows y parece haber hecho el truco.

Fuente y más información: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .

ternaryOperator
fuente
Alternativamente, vea las dos soluciones descritas en askubuntu.com/a/799734/462004 (usando EasyUEFI o cómo cambiar el orden de arranque usando en bcdedit.exelugar de la entrada de Windows como lo hace su comando).
phk
1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(suponiendo que tenga esos paquetes ya instalados y que exista una configuración anterior)


fuente
¡Gracias! "Crear una entrada de menú de arranque: TL; DR: Esto debería suceder automáticamente" - yay.
sourcejedi
Ah sí, lo hace: grub2-mkconfig -o /boot/grub2/grub.cfg(o en un sistema (U) EFI sería algo así grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. ¿No funcionó?
Lo siento, quise decir que el wiki implica que la reinstalación del paquete grub vuelve a crear las variables EFI que son necesarias para iniciar GRUB (que podrían necesitar recrearse, por ejemplo, si restablece la configuración de "BIOS" por alguna razón). No creo que lo haya intentado dnf reinstall, y si es cierto, suena bastante bien.
sourcejedi
0

Para simplificar, aquí es todo lo que haces:

yum reinstall grub2-efi

NO ejecute grub2-install, romperá su sistema al presentarle un menú de inicio de grub en blanco (esto se debe a que grub2-install le dará un archivo .efi incorrecto / genérico que intenta cargar grub.cfg desde la ubicación incorrecta.

Además, es posible que desee actualizar su configuración de grub si ha migrado a nuevos discos o si su partición / diseño ha cambiado con:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg
Areeb Soo Yasir
fuente
Es bueno leer alguna confirmación :). Propuse una edición que muestra cómo se debe usar grub2-mkconfig -o. Sin embargo, no estoy claro cuán útil es la respuesta simple; no es que la mía sea estrictamente más útil, pero esto supone que aún puede arrancar el sistema Fedora de alguna manera, o notó que cometió un error antes de cerrar. (Mi respuesta dice a mano sobre los discos de rescate genéricos, pero AFAIK necesita iniciar sesión en la instalación, asegurándose de montar los sistemas de archivos necesarios ... eso es lo bueno de un sistema de rescate especializado como el instalador de Debian, hace el montaje + chroot para ti).
sourcejedi