EFI \ boot \ bootx64.efi vs EFI \ ubuntu \ grubx64.efi vs /boot/grub/x86_64-efi/grub.efi vs C: \ Windows \ Boot \ EFI \ * (Español)

He instalado Ubuntu 19 de 64 bits junto con Windows 10 de 64 bits y descubrí que tengo 3 archivos EFI diferentes en diferentes ubicaciones:

EFI\boot\bootx64.efi EFI\ubuntu\grubx64.efi /boot/grub/x86_64-efi/grub.efi 

¿Cuál es la diferencia entre estos tres?

Comentarios

  • Normalmente, ambos & grub2 instalan bootx64. efi como entrada de arranque UEFI de respaldo o de disco duro. Ese también es el archivo de ruta & estándar para todos los dispositivos externos. Debería tener tanto /EFI/ubuntu/grubx64.efi como /EFI/ubuntu/shimx64.efi. Shim es para arranque seguro, pero arrancará con arranque seguro desactivado. ¿No estás seguro de por qué todavía tenemos comida? No estoy seguro de dónde vino grub.efi. En algún momento, debe instalar otra distribución que use la entrada grub predeterminada.
  • Estoy investigando para obtener una unidad usb de distribución multi linux con EFI (ya creé una para MBR pero no ' no funciona en equipos recientes con BIOS que solo admiten EFI) y encontré esta página que responderá sus preguntas y explicará EFI de una manera muy detallada. Dado que es grande para una respuesta, ' simplemente pondré el enlace en caso de que quiera entender cómo funciona todo: rodsbooks. com / efi-bootloaders

Responder

EFI\boot\bootx64.efi: Ruta del cargador de arranque alternativo

Este es el único nombre de ruta del cargador de arranque que el firmware UEFI en sistemas X86 de 64 bits buscará sin ninguna configuración de arranque NVRAM preexistente, por lo que esto es lo que desea usar en medios extraíbles.

Windows instalará una copia de su cargador de arranque en esta ruta automáticamente; al instalar GRUB, el comando grub-install (o grub2-install dependiendo de la distribución de Linux) también puede colocar una copia del cargador de arranque respectivo aquí si lo hace no existe ya. Si lo desea, puede utilizar grub-install --removable para indicarle que se instale en la ruta de inicio de reserva, o grub-install --force-extra-removable para sobrescribir cualquier cargador de arranque existente en el ruta alternativa y reemplácela con GRUB.

Si desea crear una memoria USB compatible con Secure Boot para UEFI, debe colocar una copia de la corrección como EFI\boot\bootx64.efi y una copia de GRUB como EFI\boot\grubx64.efi, ya que el cargador de arranque shim buscará grubx64.efi en el mismo directorio en el que se encuentra el cargador de arranque shim in.

Ruta del cargador de arranque para un SO instalado permanentemente

Cuando un sistema operativo se instala permanentemente en un sistema UEFI, hay un paso nuevo que no existía en absoluto en BIOS clásico. Al instalar el cargador de arranque, se escriben cuatro cosas en la memoria NVRAM que contiene la configuración del firmware:

  • Nombre de ruta del cargador de arranque en la partición del sistema EFI (ESP) que contiene el (los) cargador (s) de arranque
  • el GUID de la partición ESP
  • un nombre descriptivo (amigable para los humanos) para esta instancia particular del cargador de arranque
  • opcionalmente, algunos datos para el cargador de arranque

Para Windows, el nombre de ruta UEFI estándar para el proceso de arranque de Windows será \EFI\Microsoft\Boot\bootmgfw.efi, y el nombre descriptivo será " Windows Administrador de arranque ". Los datos opcionales parecen contener una referencia GUID a algo dentro del archivo de configuración BCD del cargador de arranque de Windows.

Para Ubuntu, la ruta debe ser \EFI\Ubuntu\grubx64.efi si no «No se necesita compatibilidad con Arranque seguro, o \EFI\Ubuntu\shimx64.efi si se utiliza la corrección de Arranque seguro. El nombre descriptivo es simplemente " ubuntu " y los datos opcionales no se utilizan.

En Ubuntu, estos UEFI La configuración de arranque de la NVRAM se puede ver con el comando sudo efibootmgr -v; en Windows, puede iniciar un símbolo del sistema como administrador y luego usar el comando bcdedit /enum firmware para ver la configuración.

La especificación UEFI tiene una convención estándar de que cada proveedor debe colocar el cargador de arranque para un sistema operativo instalado permanentemente dentro de la ruta \EFI\<vendor name> en el ESP, por lo que tener varios cargadores de arranque UEFI coexistiendo en el mismo ESP es realmente compatible y debería facilitar las cosas que con el BIOS clásico que tenía un solo registro de arranque maestro por disco.

/boot/grub/x86_64-efi/grub.efi: un archivo temporal para grub-install

Cuando se usa grub-install, primero usará la utilidad grub-mkimage para crear una Imagen principal de GRUB : en un sistema UEFI, este archivo se guardará en /boot/grub/x86_64-efi/grub.efi y / o .../core.efi antes se copiará en la partición del sistema EFI y se agregará a la configuración de arranque UEFI NVRAM mediante grub-install.La copia en /boot/grub/x86_64-efi/*.efi no se utilizará en absoluto en el proceso de arranque, pero podría ser útil si el ESP se daña por cualquier motivo.

Nota: En Debian / Ubuntu, la imagen principal de GRUB generada incluirá una referencia UUID incorporada a cualquier sistema de archivos que contenga el /boot, por lo que no podrá hacer una copia de /boot/grub/x86_64-efi/grub.efi o grubx64.efi de el ESP y lo trasplantará a un medio extraíble: simplemente intentará encontrar el UUID único de su /boot sistema de archivos y pasará al modo de rescate si no lo encuentra. Si mal no recuerdo, GRUB de RedHat / CentOS / Fedora debería ser más adecuado para trasplantarlo a medios extraíbles.

Arranque seguro: shimx64.efi y las razones para ello

El arranque seguro requiere que un cargador de arranque esté firmado por un certificado que se incluye en la variable NVRAM de arranque seguro del sistema db, o en el SHA256 del cargador de arranque hash debe estar incluido en la lista blanca en la misma variable NVRAM. Un hash SHA256 solo coincidirá con una versión específica de un cargador de arranque en particular, por lo que las actualizaciones no serán posibles a menos que la variable de firmware también se actualice. Por lo tanto, los certificados son el camino a seguir.

Desafortunadamente, muchos proveedores de sistemas solo incluirá algunos certificados de arranque seguro en sus productos: a menudo, solo el certificado del proveedor (para actualizaciones de firmware y depuración de hardware / herramientas de configuración OEM) y certificados de arranque seguro de Microsoft. Algunos sistemas permitirán editar la lista de arranque seguro certificados a través de la configuración del firmware (= " configuración del BIOS "), pero otros no lo hicieron. Por lo tanto, se necesitaba una solución independiente.

Microsoft ofrece un servicio de firma de cargador de arranque UEFI para cualquier persona, pero al menos inicialmente el tiempo de respuesta para la firma fue bastante largo, por lo que el requisito de firmar cada versión de GRUB directamente habría causado retrasos inaceptables en las actualizaciones del cargador de arranque. Para resolver el problema, se desarrolló el cargador de arranque shim: es básicamente el programa UEFI razonable más simple que agregará uno o más certificados a la lista de arranque seguro aceptado. Se espera que la simplicidad reduzca la necesidad de actualizar el shim, por lo que el Las distribuciones del sistema operativo de origen (Linux y otros) pueden obtener su versión del shim firmada por Microsoft solo una vez y luego firmar cualquier versión de GRUB con sus propios certificados, cuya parte pública está incrustada en el shim y permite que Secure Boot acepte la distribución » s de GRUB.

Comentarios

  • Gracias por la respuesta. Por cierto, AFAIK bootmgfw.efi es ' nt Windows bootloader, es ' s Windows Boot Manager, que llama al gestor de arranque de Windows \Windows\System32\winload.efi. Además, ¿a qué te refieres con NVRAM? CMOS?
  • Traté de no ser demasiado detallado y parece que simplifiqué demasiado el problema del " Windows bootloader " . Y sí, por NVRAM me refiero al almacenamiento no volátil que contiene la configuración del firmware, que en las PC clásicas también se conocía como memoria CMOS, pero en los sistemas modernos en realidad puede usar alguna tecnología distinta a CMOS (Semiconductor de óxido de metal complementario).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *