Linux en UEFI: ¿cómo reiniciar en la pantalla de configuración de UEFI como Windows 8?

33

makeuseof.com explica que el hardware certificado de Windows 8 tiene una nueva forma de ingresar a la pantalla de configuración de UEFI (equivalente a BIOS). Desde Cómo acceder al BIOS en una computadora con Windows 8 :

Ya no presionamos una tecla determinada durante el proceso de inicio para revelar el BIOS; en cambio, una opción para acceder al BIOS se encuentra en el menú de opciones de inicio de Windows 8 ... Si solo está aquí para acceder al BIOS UEFI de su computadora, haga clic en el mosaico de resolución de problemas.

El desarrollador principal de Secure Boot para Linux dice que los sistemas operativos alternativos no pueden asumir que la antigua forma continuará funcionando . Entonces, ¿Linux también tiene una nueva forma de ingresar a la configuración de UEFI?

Tengo una placa base ASUS. Sugiere que una versión actualizada del firmware contiene una opción de arranque rápido . La otra cara es que la opción podría hacer aún más difícil "revelar el BIOS" de lo que ya es.

No me importa jugar. Solo si se sabe que esta es una mala idea, no quiero pasar por el riesgo de una actualización de firmware por nada (y tal vez tenga que sacar el caso, restablecer la configuración y configurarlos de nuevo).


Alternativamente, ¿cómo se maneja esto para los usuarios de Windows 7? Si seleccionan de manera optimista la opción de inicio rápido, ¿cómo obtienen acceso a la configuración "BIOS" nuevamente cuando la necesitan?

sourcejedi
fuente
Maldición. Ahora desearía no haber elegido Asus en lugar de Gigabyte para mi nueva actualización
kluka
Use cualquier configuración que funcione para Windows 7, que serán los valores predeterminados, y estará bien :). Debe haber una forma estándar de hacerlo en UEFI, simplemente no lo he encontrado en ningún lado. Incluso el firmware original sin ninguna opción de arranque rápido es bastante ágil, así que no me arrepiento. Estamos viendo una característica específica de UEFI; Todavía no confiaría en Gigabyte para obtener EFI correctamente. Yo estoy trabajando en torno a cuestiones con 1) los puertos USB3 y 2) un teclado USB, que juntos es un poco decepcionante en principio. OTOH, el LED de prueba de memoria me fue útil cuando mi nueva RAM falló después de una semana.
sourcejedi
1
Uno de los problemas con UEFI es que, a pesar de un documento de especificación de 2.000 páginas, NO hay estandarización de los problemas de la interfaz de usuario. Los desarrolladores de firmware son libres de dar a los usuarios acceso a sus utilidades de configuración de cualquier forma que consideren deseable.
Rod Smith
El artículo dice que Windows 8 finalmente les da a los usuarios acceso a la utilidad de configuración habitual de una manera estándar. Entonces, la certificación de Windows debe especificar un método para respaldar esto. Esperemos que sea parte de UEFI, no una extensión de MS no documentada. Tenga en cuenta que esto NO es una pregunta sobre "Arranque seguro". La pregunta asume que ya he logrado instalar y arrancar Linux.
sourcejedi
Personalmente estoy ejecutando Windows 8 en mi tarjeta madre ASRock Z77 Pro3, recientemente implementando esta opción de "arranque ultrarrápido" en la configuración de UEFI. ASRock me proporciona una utilidad que se encuentra en mi barra de bandeja, que puedo presionar para acceder a la configuración de UEFI. Una eliminación de CMOS restablecerá la opción de inicio rápido, por lo que siempre puede intentarlo. Mi vBIOS no permite esta configuración, porque no tiene soporte GOP, por lo que no he tenido la oportunidad de probarlo. No tengo un software similar para Linux, solo Windows 8.
Steen Schütt

Respuestas:

39

En las distribuciones modernas de Linux que usan systemd, puede ir directamente al menú de configuración de Firmware usando:

systemctl reboot --firmware-setup

Documentación: https://www.freedesktop.org/software/systemd/man/systemctl.html#--firmware-setup

Lekensteyn
fuente
1
Ja, ese documento es un poco conciso. Se ve bien, no es específico de un administrador de arranque determinado. Es una pena que no haya una herramienta independiente, pero no tengo nada en contra de systemd. github.com/systemd/systemd/blob/…
sourcejedi
1
Vea también esta respuesta de Unix.SE. Tenga mucho cuidado con el uso efivar, de alguna manera logré eliminar la 8be4df61-93ca-11d2-aa0d-00e098032b8c-OsIndicationsvariable, posiblemente pasando datos vacíos al efivarprograma. Ahora tengo que encontrar una manera de recrear este archivo, sin él el systemctl reboot --firmware-setupprograma ya no funciona.
Lekensteyn
Lamento escuchar tus problemas. Obtuve la impresión de que la variable a 0 estaría bien (de este comentario github.com/systemd/systemd/blob/… ), aunque el mismo código sugiere que a systemd no le importaría si se eliminara la variable.
sourcejedi
1
Esto parece volver a crear la variable, pero de alguna manera se pierde después de un reinicio: printf '\7\0\0\0''\0\0\0\0\0\0\0\0' > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c(basado en firmware.intel.com/blog/accessing-uefi-variables-linux y los contenidos anteriores que volqué). Tenga en cuenta que rm ...necesita chattr -i ...antes de que pueda eliminarlo (medida de seguridad sobre rm -rf /).
Lekensteyn
1
@sourcejedi Arch Linux viene con systemd 230. Finalmente logré recuperar mi variable. Por alguna razón, la creación de la variable a través de efivars resultó en OsIndications-89efde67-ffcd-12de-ab01-01efff012389un GUID diferente. Una vez que inicié en UEFI Shell , setvar OsIndications -nv -bs -rt =0000000000000000invoqué el comando para establecer la variable OsIndication en un almacenamiento no volátil para el servicio de arranque y el acceso en tiempo de ejecución a la secuencia hexadecimal que representa un número de 64 bits (0).
Lekensteyn
4

No estoy seguro de cómo exactamente Windows 8 hace esto, pero puedo adivinar que aprovecha las variables UEFI utilizadas para las opciones de arranque.

Puede usar efibootmgr para determinar el significado de las diversas variables de arranque. En mi sistema, Boot0000 es Configuración, por lo que el uso efibootmgr -n 0debería hacer que el sistema se inicie en la configuración en el próximo inicio.

Tim Hoppen
fuente
Gracias. Ahora he intentado el arranque UEFI en mi BIOS actual. Boot0000 parece estar ocupado por una de las entradas de arranque normales. (También me di cuenta de que leí mal las notas de la versión, y no hay razón para esperar que la versión más nueva sea más rápida. Oh, bueno :).
sourcejedi
@sourcejedi El firmware, su opción de arranque rápido, en realidad puede arrancar más rápido 1 o 2 segundos, el arranque ultrarrápido nuevamente puede reducir otros 1 a 2 segundos: unix.stackexchange.com/questions/149761/…
Pro Backup
3

He intentado el arranque EFI con Ubuntu 12.04, y encontré una respuesta a mi propia pregunta.

(No he actualizado mi firmware. Originalmente leí mal las notas de la versión, probablemente no sería más rápido).

Entrar en la configuración del firmware desde el menú de arranque de grub-efi

efibootmgrno parece admitir el reinicio de la configuración del firmware para mí. Pero grub-efi sí. Es capaz de crear una entrada para la configuración del firmware en el menú de arranque de GRUB.

Puede ingresar al menú de inicio de GRUB manteniendo presionada la tecla Mayús "al principio del proceso de inicio". Lo presiono hacia abajo inmediatamente después de que la luz NumLock se enciende en el teclado, y eso funciona para mí.

Si tienes curiosidad, también miré el comando: es "fwsetup". Es decir, puede ingresar al menú de GRUB, seguir las instrucciones en pantalla para cambiar a la línea de comando, luego escribir "fwsetup" y presionar regresar.

Si realiza una instalación EFI desde cero, creo que el elemento del menú se creará automáticamente. No lo instalé como EFI, lo que significaba que tenía que patearlo (ver abajo, paso 4).

¿Conversión de arranque BIOS-GPT a arranque UEFI-GPT sin grabar un CD de arranque EFI?

EDITAR: esta sección puede funcionar en algunos sistemas. Sin embargo, ahora creo que se basa en un comportamiento adicional que no forma parte del estándar UEFI. Algún día averiguaré qué está pasando aquí.

Estaba convirtiendo una instalación existente a EFI, sin un CD de arranque habilitado para EFI. Algunas personas piensan que esto no es posible. Es cierto que hay un par de mensajes de advertencia confusos. Eché un vistazo a lo que estaba pasando. Si actualmente puede ingresar a la configuración del firmware, entonces no está tan mal.

La parte difícil es que probablemente todavía estés usando una tabla de partición MBR, y es casi seguro que necesites convertirla a GPT. No voy a cubrir la conversión de MBR a GPT. Particionar siempre es un poco peligroso. gdiskpuede convertir, pero hay bastantes bits complicados. No los he enumerado todos aquí. Pero por un lado, es probable que necesite reducir la última partición, para hacer espacio para el GPT de fin de disco. No puede hacer eso si la partición está montada, por lo que querrá usar un CD de arranque. (También organicé la conversión, asegurándome de poder arrancar desde BIOS-GPT antes de probar UEFI-GPT, lo que implicaba tener que crear otro tipo de partición de arranque).

Asumiendo que tienes GPT configurado:

  1. Instalar grub-efi. Esto eliminó grub-pc y evitó que funcionara. (¡Grub-efi en realidad todavía funcionó después de que lo quité!). Fedora parece un poco diferente; Solo he intentado esto en Ubuntu. Durante la instalación, verá errores acerca de no poder acceder a las variables de EFI, lo que se debe a que EFI no arrancó.
  2. Apagar.
  3. Encendido. ¡Asegúrese de arrancar a través de EFI! Esta es la parte preocupante y dependiente del sistema. Mi sistema pasó por defecto al inicio de MBR para empezar, así que vi un error aterrador de GRUB, pero era del viejo grub-pc. En mi sistema, era fácil ingresar a la pantalla de configuración del firmware en este punto (ver más abajo) y cambiar la prioridad de arranque a "ubuntu" (que era la entrada para arrancar mi sistema operativo a través de EFI).
  4. Ahora puede rehacer la instalación de grub ( grub-installo grub2-installen Fedora), y no mostrará ningún error. Y ahora , ejecutar update-grub(o grub2-mkconfig -o /boot/grub/grub.cfgen Fedora) creará el elemento del menú para ingresar a la configuración del firmware.

Entrar en el menú de configuración / arranque del firmware en mi sistema ASUS

DESCARGO DE RESPONSABILIDAD: este no es el último firmware / placa. Su sistema ASUS puede actuar de manera diferente al mío.

Mi firmware actual de ASUS se da cuenta cuando la "configuración de arranque" ha cambiado, por ejemplo, cuando instalé grub-efi. Hay un texto que dice que ha cambiado si observa la pantalla inicial "Configuración EZ". Y, cuando detecta dicho cambio, hace que sea más fácil ingresar a la pantalla de configuración. Lo que hace es mostrar la pantalla de bienvenida con "presione DEL para ingresar a la configuración" durante unos segundos. (Si ha habilitado la opción de "inicio rápido", normalmente omite la pantalla de inicio).

Creo que también es posible activar la pantalla de inicio apagando el sistema y desconectándolo durante un minuto más o menos, antes de reiniciar.

En mi firmware actual, puedo ingresar a la configuración del firmware presionando la tecla DEL durante el arranque, incluso sin la pantalla de inicio. Sin embargo , esto está condicionado a habilitar el soporte del teclado en el firmware.

Es posible cambiar el firmware para no buscar teclados durante el arranque, lo que se supone que acelera las cosas. Supongo que este es el próximo experimento para probar, ¡ahora tengo más confianza en estas cosas de EFI! (Es posible que también elimine la compatibilidad con el teclado en el menú de inicio de GRUB. Pero aún así debería poder usar grub-set-default, para que GRUB inicie la entrada fwsetup y se recupere de esa manera).

sourcejedi
fuente
0

Sobre la base de la respuesta de @ Lekensteyn, hice un acceso directo a la interfaz de usuario (en el menú Administración si su entorno todavía tiene uno de esos). Útil si su teclado nunca parece funcionar hasta después de POST.

/usr/share/applications/uefi-reboot.desktop

[Desktop Entry]
Name=UEFI Firmware Setup (Reboot)
Comment=Access the motherboard configuration utility
Exec=systemctl reboot --firmware-setup
Icon=system-restart
Terminal=false
Type=Application
Categories=System;Settings;
krispy
fuente