Comprender el firmware UEFI y las utilidades de Linux para administrarlo puede ahorrarle mucho tiempo y problemas.
Esta será mi última incursión en el firmware UEFI durante bastante tiempo. Para aquellos que ya están cansados de mis escritos al respecto, me disculpo de antemano; Para aquellos que han pedido más, aquí está.
Para el resto de ustedes, espero que puedan encontrar algunos consejos y trucos interesantes y útiles en la siguiente información.
CONFIGURACIÓN DE FIRMWARE UEFI
Ha habido varias preguntas y comentarios en mis publicaciones anteriores sobre el arranque UEFI. Permítanme comenzar con una descripción de lo que hago con la configuración del BIOS en todas las computadoras portátiles que tengo con el firmware UEFI.
Si bien existen diferencias significativas en las características específicas de las utilidades de configuración del BIOS entre los fabricantes de computadoras portátiles, hay algunas cosas críticas que son comunes a todas ellas. Una de esas cosas es la elección entre los modos de arranque UEFI o Legacy. En cada sistema que tengo (o he tenido), hay tres posibilidades:
- Arranque seguro UEFI: este es casi siempre el modo predeterminado en una computadora portátil nueva. Requiere que todos y cada uno de los objetos de arranque y el firmware estén firmados con un certificado SSL reconocido. El propósito declarado de este tipo de arranque es protegerlo contra el arranque o el uso de imágenes de firmware que hayan sido modificadas maliciosamente. Como he dicho muchas veces, mi opinión personal es que esta es una solución muy complicada para un problema prácticamente inexistente.
- Arranque UEFI (Arranque seguro deshabilitado): todos los sistemas que he usado que tienen firmware UEFI han tenido la posibilidad de deshabilitar el Arranque seguro, pero aún usan el arranque EFI. Al hacer esto, obtienes los beneficios del nuevo diseño de firmware sobre el antiguo (muy antiguo) firmware de BIOS y, por supuesto, la nueva estructura de administración de configuración de arranque, como describí en la publicación anterior. Esta es la forma en que tengo todos mis sistemas de firmware UEFI configurados, y es lo que recomiendo a otros que piden mi opinión.
- Arranque heredado: esto devuelve efectivamente el sistema a la configuración anterior de BIOS / MBR. En mi opinión (y experiencia), el mayor problema con esto es que vuelve a usar la configuración “mágica” de Master Boot Record, que es mucho menos flexible y mucho menos robusta, especialmente para sistemas de arranque múltiple.
CUANDO LA CONFIGURACIÓN DE ARRANQUE UEFI FALLA, CAMBIA O SE PIERDE
Frecuentemente escucho de personas que han instalado Linux como segundo sistema operativo en una computadora portátil Windows con firmware UEFI, y una de las tres cosas ha sucedido:
- Después de que la instalación aparentemente se completa con éxito, la computadora portátil se reinicia y Windows comienza sin signos de que se haya instalado Linux.
- Linux se ha instalado y arrancado con éxito, y el mundo parece ser un lugar maravilloso, pero algún tiempo después, generalmente cuando se instalan las actualizaciones de Windows o se instala una actualización de firmware de la computadora portátil, vuelve a arrancar Windows nuevamente.
- Linux se ha instalado, como en el punto anterior, pero de repente, sin instalar, cambiar o actualizar nada, vuelve a arrancar Windows. Este es en realidad una variante del punto anterior, pero es particularmente desconcertante porque literalmente no hizo nada, simplemente apagó la computadora portátil y, en algún momento, la volvió a encender. En algunos casos, esto va acompañado de un mensaje sobre Windows “reparando la configuración de inicio” por usted, pero a menudo ni siquiera eso.
Como mencioné cuando esto se describió en un comentario en mi publicación anterior, lo que casi siempre sucedió en los tres casos es que la lista de prioridad de arranque UEFI ha sido modificada o “restablecida” por algo, sin su conocimiento o permiso. La gente tiende a suponer que su instalación de Linux se ha borrado o ya no está disponible, pero generalmente ese no es el caso. Lo primero que debe hacer cuando esto sucede es recordar los invaluables consejos de Douglas Adams: ¡no se asuste!
Cuando esto sucede, lo más probable es que pueda recuperarse utilizando algunas o todas las siguientes acciones:
- Primero, verifique si realmente es solo que la secuencia de arranque ha cambiado. Una forma de hacerlo es presionar la tecla “Boot Select” mientras se inicia el sistema. Por supuesto, esto requiere que usted sepa (o pueda descubrir) qué clave es esa, porque es diferente para casi todos los fabricantes, y a veces incluso es diferente para varios sistemas del mismo fabricante. Sí, eso es frustrante. Los que conozco de la cabeza son F12 para Acer, F9 para HP y ESC para ASUS. Solía ser F5 para IBM Thinkpads muy antiguos, pero no sé si eso sigue siendo cierto desde que Lenovo se hizo cargo de Thinkpads de IBM. Cualquiera que sepa con certeza cuál es esta clave para otros fabricantes es bienvenido a publicar esa información en los comentarios. Gracias.
- Si puede presionar la tecla Boot Select, se le presentará la lista de inicio, y si Linux aparece en esa lista, entonces probablemente esté en buena forma y podrá recuperar la configuración de inicio que desee. Debes tener una mente abierta cuando leas esta lista, solo porque hayas instalado la distribución de Linux “xyzzy” (Debian, Mint, Ubuntu, lo que sea), no significa que aparecerá en la lista de arranque con exactamente ese nombre. Lo creas o no, mi laptop HP recientemente adquirida insiste en llamar a una de las instalaciones de Linux “Linpus”. (Sí, sé qué es Linpus Linux, y no, nunca lo he instalado en ese HP o en ningún otro sistema en los últimos 5 años o más). De todos modos, si hay una entrada de Linux en el menú Boot Select, adelante, iníciela y asegúrese de que su sistema Linux se active normalmente. Si lo hace, usted ‘ aún no está fuera de peligro porque aún necesita corregir la lista de prioridades de arranque (como se describe en el siguiente punto), pero al menos sabe que no ha perdido su instalación de Linux. Si no arranca Linux … bueno, tal vez el peor escenario realmente ha sucedido, y la actualización de Windows, o la Recuperación de Windows, o alguna otra utilidad “útil” ha borrado su sistema Linux y restaurado Windows a todo el disco. En este caso, no puedo ofrecerte mucho más que simpatía, porque he estado allí. La utilidad ha borrado su sistema Linux y ha restaurado Windows a todo el disco. En este caso, no puedo ofrecerte mucho más que simpatía, porque he estado allí. La utilidad ha borrado su sistema Linux y ha restaurado Windows a todo el disco. En este caso, no puedo ofrecerte mucho más que simpatía, porque he estado allí.
- Otra alternativa es presionar la tecla de configuración del BIOS mientras se inicia el sistema. Esto suele ser F2, pero también puede ser otra cosa: a menudo se indica en la parte inferior de la pantalla de inicio con algo como “Presione F2 para configuración”. Una vez más, la utilidad de configuración de BIOS de cada fabricante es diferente, por lo que no puedo dar instrucciones específicas aquí. Buscar arranqueen el menú de nivel superior, y allí debería encontrar una lista ordenada por prioridad de objetos de arranque. Esto debería incluir Windows y (con suerte) su sistema Linux, junto con varias cosas como unidades USB, arranque de red y algunos sistemas aún enumeran disquetes. Si está en este punto porque su sistema está arrancando misteriosamente Windows en lugar de Linux, lo que debe hacer es mover la línea de Linux al principio de la lista. Esto puede involucrar las teclas F5 / F6 para mover elementos hacia arriba / abajo de la lista, o puede requerir seleccionar la lista y avanzar un nivel más en la configuración del BIOS para reordenar las cosas. Cualquiera que sea el procedimiento, una vez que ubique a Linux en la parte superior de la lista, su problema debería solucionarse, así que guarde y salga e intente arrancar nuevamente.
- Hay otra forma de mostrar y modificar la lista de arranque EFI, utilizando las utilidades de Linux, que describiré a continuación. Este solía ser mi “procedimiento de reparación”, porque como la mayoría de las utilidades de Linux es potente y flexible, pero cada vez más sistemas tienen firmware que ignora los cambios que haces de esta manera o restaura la configuración de arranque anterior la próxima vez. El sistema se reinicia. Más sobre este comando a continuación.
LINUX EFI BOOT MANAGEMENT UTILITIES
Linux incluye varias utilidades específicamente para administrar la configuración de arranque de EFI y, por supuesto, para arrancar el sistema. Estos son comandos administrativos, por lo que solo se pueden ejecutar como root o con “sudo”.
- efibootmgr: Esta es la utilidad a la que me refería en el último punto anterior. Se puede usar para mostrar la configuración de arranque EFI actual y para agregar, modificar o eliminar elementos en la lista de prioridades de arranque. Si se encuentra en la situación que mencioné anteriormente, donde su computadora cambió repentinamente de arrancar Linux a arrancar Windows, y puede volver a abrir Linux a través de la tecla Boot Select, entonces puede usar efibootmgr para ver qué ha sucedido con el secuencia de inicio. Un ejemplo simplificado de dicha lista de arranque podría verse así:
# efibootmgr
Arranque actual: 0000
Tiempo de espera: 0
Orden de arranque: 0001,0000,0002
Boot0000 * openSUSE Tumbleweed
Boot0001 * Windows
Boot0002 * openpensuse-secureboot
Esto muestra que openSUSE Linux y Windows están instalados, y openSUSE tiene dos imágenes de arranque, una firmada para su uso cuando UEFI Secure Boot está habilitado y otra que no está firmada. Desafortunadamente, el BootOrder muestra que este sistema arrancará Windows de manera predeterminada, por lo que durante un inicio normal nunca se sabrá que se instaló Linux.
- Puede cambiar la prioridad de arranque utilizando la opción “-n” con efibootmgr, por lo que en este caso simple para hacer que openSUSE sea el arranque predeterminado, el comando sería:
# efibootmgr -n 0000,0002,0001
- Sin embargo, tenga en cuenta que esto podría no funcionar, aunque haya confirmado que el cambio se realizó correctamente imprimiendo nuevamente la lista de arranque. Como dije anteriormente, la tendencia actual en el firmware UEFI es que cualquier cambio que no se realice utilizando la utilidad de configuración del BIOS se descarta en el próximo arranque.
- Gparted (o cualquiera de una variedad de otras utilidades de administración de discos de Linux): las utilidades de administración de discos son cruciales para su comprensión y administración de los sistemas de arranque múltiple UEFI. La captura de pantalla que se muestra aquí es de mi computadora portátil HP, que tiene varias distribuciones de Linux diferentes instaladas, pero no Windows (aunque hay un par de pequeñas particiones de reliquias que aún no he limpiado). Lo importante a tener en cuenta aquí es que la primera partición es una partición de arranque EFI (esta es la que fue creada originalmente por Windows preinstalado), y la partición 11 también es una partición de arranque EFI, que creé para facilitar la instalación tanto de Linux Mint como de Ubuntu en este sistema.
- Aunque los instaladores de Linux son capaces de encargarse de la partición del disco durante la instalación, prefiero usar gparted para hacerlo yo mismo antes de ejecutar el instalador, generalmente iniciando un dispositivo USB Live para una distribución que incluye gparted. Eso me permite crear el número y el tamaño de las particiones que quiero, y es particularmente importante si estoy instalando una distribución para la que planeo usar una partición de arranque EFI separada.
- grub2 y utilidades asociadas: grub2 es el gestor de arranque que viene con casi todas las distribuciones actuales de Linux. Las utilidades de administración de grub2 se utilizan durante la instalación para identificar todos los sistemas operativos instalados y crear un archivo de configuración de arranque. Las últimas versiones son sorprendentemente buenas en esto.
- grub.cfg: este es el archivo de configuración de arranque. Es un archivo de “texto sin formato”, lo que significa que puede leerlo para ver qué se ha configurado en su computadora, pero no se recomienda modificarlo porque este archivo a menudo se sobrescribirá automáticamente con una nueva versión durante la instalación de varios actualizaciones (kernel de Linux, archivos de soporte de arranque y demás). Si lo miras, verás que usa dos mecanismos diferentes para arrancar un sistema operativo; para sistemas Linux usa linuxefi (y probablemente initrdefi ), mientras que para Windows usa chainloader. Mencioné en una publicación anterior que al menos explicaría brevemente la forma en que uso grub2 en los sistemas de arranque múltiple EFI; eso es todo. Si tiene suficiente experiencia, confianza y cuidado para modificar grub.cfg usted mismo, puede cambiar los comandos linuxefi / initrdefi para otras distribuciones de Linux a chainloader. Puede ver la razón de esto si observa detenidamente el archivo grub.cfg generado automáticamente; los comandos de linuxefi incluyen el nombre explícito del archivo de imagen del kernel, que generalmente también incluye el número de versión del kernel. Eso significa que si actualiza una de las otras distribuciones y la versión del kernel cambia, el grub.cfg generado automáticamente no podrá iniciar esa distribución. Si usa chainloader para arrancar las otras distribuciones de Linux, vuelve a pasar por el proceso de arranque de EFI y usa los archivos de configuración de arranque para la distribución que está arrancando, y estos se actualizan como parte del proceso de actualización de Linux, por lo que siempre funcionará no importa cuánto o cuántas veces se haya actualizado la distribución.
- Menos mal, eso es bastante difícil de digerir, así que déjenme decirlo nuevamente, esto es absolutamente opcional, y no se recomienda a menos que tenga mucha experiencia y mucho cuidado. Si lo hace, asegúrese de conservar una copia del nuevo archivo grub.cfg, ya que se sobrescribirá en la próxima actualización, y tendrá que corregirlo nuevamente. Solo soy yo un terco viejo geek, así que si no lo entiendes o no crees que valga la pena, también está bien.
- grub2-mkconfig: esta es la utilidad de Linux que realmente escanea el disco y crea el archivo grub.cfg. Una buena noticia es que, en las versiones actuales de Linux, esta utilidad hará lo correcto y la colocará en el lugar correcto cuando la ejecute con solo el nombre del disco en la línea de comandos; no requiere información sobre las distribuciones, versiones, particiones o cualquier otra cosa, lo resuelve todo por sí solo. Entonces, si hay algún problema con su archivo de configuración de arranque, simplemente ejecute “sudo grub2-mkconfig / dev / sdX”, donde “X” se reemplaza por su nombre de disco, y creará un nuevo archivo de configuración. Además, si solo desea crear un archivo de configuración que pueda ver por alguna razón, puede usar “sudo grub2-mkconfig -o grub.new”.
En resumen, creo que debería quedar claro por lo que se ha dicho anteriormente que uno de los problemas más difíciles al tratar con los sistemas de firmware UEFI y Linux es la variación entre las diferentes implementaciones de UEFI. Por supuesto, todos implementan la misma funcionalidad en términos de arranque de la computadora, pero la forma en que se administran, las herramientas que se utilizan para administrarlas, especialmente el software de configuración del BIOS, son muy diferentes. Por lo tanto, a veces tiene que sentirse bien, solo teniendo en cuenta su objetivo y buscando la ruta correcta para alcanzar ese objetivo, y al mismo tiempo la forma en que interactúan con las herramientas de administración UEFI de Linux, hasta el nivel de si ni siquiera aceptan y retienen los cambios realizados por las herramientas de Linux, hacen de esta un área difícil y complicada.
Espero haber proporcionado suficiente información y ejemplos en esta publicación para ayudar a otros a encontrar una manera de tratar con UEFI y Linux con éxito.