Después de pasar horas depurando un problema en el que systemd-boot
comenzaba a omitir su menú de inicio y, en general, ignoraba su archivo de configuración /loader/loader.conf
(en la partición EFI), descubrí que puedo invocar el menú de inicio presionando alguna tecla al inicio, y que el El problema es causado por cierta variable EFI que aparentemente creé sin darme cuenta. (No sé cómo sucedió esto, pero el problema apareció poco después de reinstalar Ubuntu 18.04.1 en una partición).
En particular, descubrí que tenía la variable LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
configurada de 0
alguna manera, lo que anulaba el tiempo de espera definido en /loader/loader.conf
, y también tenía la variable LoaderEntryDefault-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
definida, que anulaba la entrada de menú predeterminada establecida en /loader/loader.conf
.
Ver la parte inferior de"Administrador de arranque UEFI systemd-boot"página en freedesktop.org para obtener la lista de variables EFI utilizadas por systemd-boot
. Sus valores se pueden inspeccionar con, por ejemplo
cat /sys/firmware/efi/efivars/LoaderConfigTimeout-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
Después de que hice que apareciera el menú de inicio presionando alguna tecla, y luego presioné ddos veces para configurar y desarmar una nueva entrada predeterminada, esto eliminó mi LoaderEntryDefault-...
variable. Sin embargo, todavía estoy atrapado LoaderConfigTimeout-...
. Sé que puedo cambiar el tiempo de espera usando las teclas t T( Shift-t) en el menú, lo que lo modifica LoaderConfigTimeout-...
, pero quiero eliminarlo por completo, para que la configuración se pueda /loader/loader.conf
usar nuevamente.
¿Cuál es la forma correcta y segura de modificar y desarmar variables EFI, como LoaderConfigTimeout-...
?
Respuesta1
En systemd-boot, presione ShiftTo Num -suficientes veces para que la configuración llegue a cero, y una vez más para desarmarla por completo eliminando la variable.
En Linux, primero utilícelo chattr -i
en el archivo /sys/… para eliminar la protección aplicada por el kernel y luego utilícelo rm
para eliminar la variable por completo.
En UEFI Shell, use dmpstore -d <name>
(con opcional -guid <guid>
) para eliminar una variable (consulte la documentación enEspecificación de carcasa UEFI 2.0, página 113).