bootctl - manual de referencia, opciones, ejemplos de comandos


NOMBRE

bootctl - Controle la configuración de arranque del firmware EFI y administre el cargador de arranque

SINOPSIS

bootctl [OPTIONS...] {COMMAND}

DESCRIPCIÓN

bootctl puede verificar el firmware EFI y el estado del cargador de arranque, enumerar y administrar los cargadores de arranque disponibles y las entradas del cargador de arranque, e instalar, actualizar o eliminar el systemd-boot(7) cargador de arranque en el sistema actual.

COMANDOS GENÉRICOS DEL CARGADOR DE ARRANQUE/FIRMWARE EFI

Estos comandos están disponibles en cualquier sistema EFI, independientemente del cargador de arranque utilizado.

status

Muestra información breve sobre el firmware del sistema, el cargador de arranque que se usó para arrancar el sistema, los cargadores de arranque disponibles actualmente en el ESP, los cargadores de arranque enumerados en la lista de firmwares de los cargadores de arranque y la entrada predeterminada actual del cargador de arranque. Si no se especifica ningún comando, este es el valor predeterminado implícito.

Consulte el siguiente ejemplo para obtener detalles de la salida.

reboot-to-firmware [BOOL]

Consulte o configure el indicador "Reiniciar en configuración de firmware" del firmware de EFI. Toma un argumento booleano que controla si mostrar la configuración del firmware en el próximo reinicio del sistema. Si se omite el argumento, muestra el estado actual de la bandera o si la bandera es compatible. Esto controla el mismo indicador que systemctl reboot --firmware-setup, pero tiene un nivel más bajo y permite establecer el indicador independientemente de solicitar un reinicio.

Sugerencia: use systemctl reboot --firmware-setup para reiniciar en la configuración del firmware una vez. Ver systemctl(1) para más detalles.

systemd-efi-options [STRING]

Cuando se llama sin el argumento opcional, imprime el valor actual de la variable EFI "SystemdOptions". Cuando se llama con un argumento, establece la variable en ese valor. Consulte systemd(1) para conocer el significado de esa variable.

COMANDOS DE ESPECIFICACIÓN DEL CARGADOR DE ARRANQUE

Estos comandos están disponibles para todos los cargadores de arranque que implementan la Especificación del cargador de arranque[1], como systemd-boot.

list

Muestra todas las entradas disponibles del cargador de arranque que implementan la Especificación del cargador de arranque[1], así como cualquier otra entrada descubierta o generada automáticamente por un cargador de arranque que implemente la Interfaz del cargador de arranque[2 ]. La salida JSON se puede solicitar con --json=.

Consulte el siguiente ejemplo para obtener detalles de la salida.

unlink ID

Elimina una entrada del cargador de arranque, incluidos los archivos a los que hace referencia. Toma una sola cadena de ID de entrada del cargador de arranque o un patrón global como argumento. Los archivos a los que se hace referencia, como kernel o initrd, solo se eliminan si ninguna otra entrada hace referencia a ellos.

cleanup

Elimina archivos de las particiones ESP y XBOOTLDR que pertenecen al token de entrada pero que no se mencionan en ninguna entrada del cargador de arranque.

COMANDOS DE LA INTERFAZ DEL CARGADOR DE ARRANQUE

Estos comandos están disponibles para todos los cargadores de arranque que implementan la Especificación del cargador de arranque[1] y la Interfaz del cargador de arranque[2], como systemd-boot.

set-default ID, set-oneshot ID

Establece la entrada predeterminada del cargador de arranque. Toma una sola cadena de ID de entrada del cargador de arranque o un patrón global como argumento. El comando set-oneshot establecerá la entrada predeterminada solo para el siguiente inicio, set-default la establecerá de forma persistente para todos los inicios futuros.

La lista bootctl se puede usar para enumerar las entradas disponibles del cargador de arranque y sus ID.

Además, el ID de entrada del cargador de arranque se puede especificar como uno de: @default, @oneshot o @current, que corresponden al actual la entrada del cargador de arranque predeterminado para todos los arranques futuros, la entrada del cargador de arranque predeterminado actual para el próximo arranque y la entrada del cargador de arranque actualmente arrancado. Estos ID especiales se resuelven en los valores actuales de las variables EFI LoaderEntryDefault, LoaderEntryOneShot y LoaderEntrySelected; consulte Especificación del cargador de arranque [1] para más detalles. Estos ID especiales son principalmente útiles como una forma rápida de hacer que la entrada del cargador de arranque actualmente arrancada sea la opción predeterminada, o para actualizar la entrada del cargador de arranque predeterminado para el próximo arranque a la entrada del cargador de arranque predeterminado para todos los arranques futuros, pero se pueden usar también para otras operaciones.

Si se establece en @saved, la entrada elegida se guardará como una variable EFI en cada inicio y se seleccionará automáticamente la próxima vez que se inicie el cargador de inicio.

Cuando se especifica una cadena vacía ("") como ID, la variable EFI correspondiente se desactivará.

Sugerencia: use systemctl reboot --boot-loader-entry=ID para reiniciar en una entrada de inicio específica y systemctl reboot --boot-loader-menu=<tiempo de espera para reiniciar en el menú del cargador de arranque una vez. Ver systemctl(1) para más detalles.

set-timeout TIMEOUT, set-timeout-oneshot TIMEOUT

Establece el tiempo de espera del menú del cargador de arranque en segundos. El comando set-timeout-oneshot establecerá el tiempo de espera solo para el siguiente arranque. Consulte systemd.time(7) para obtener detalles sobre la sintaxis de los intervalos de tiempo.

Si se establece en menu-hidden o 0, no se muestra ningún menú y la entrada predeterminada se iniciará inmediatamente, mientras se establece en menu-force desactiva el tiempo de espera mientras muestra siempre el menú. Cuando se especifica una cadena vacía (""), el gestor de arranque volverá a su tiempo de espera de menú predeterminado.

COMANDOS SYSTEMD-BOOT

Estos comandos administran el cargador de arranque EFI systemd-boot y no funcionan junto con otros cargadores de arranque.

install

Instala systemd-boot en la partición del sistema EFI. Se almacenará una copia de systemd-boot como cargador predeterminado/de reserva de EFI en ESP/EFI/BOOT/BOOT*.EFI. Luego, el cargador de arranque se agrega a la parte superior de la lista de cargadores de arranque del firmware.

update

Actualiza todas las versiones instaladas de systemd-boot(7), si la versión disponible es más reciente que la versión instalada en la partición del sistema EFI. Esto también incluye el cargador predeterminado/de reserva de EFI en ESP/EFI/BOOT/BOOT*.EFI. El cargador de arranque se agrega al final de la lista de cargadores de arranque del firmware si falta.

remove

Elimina todas las versiones instaladas de systemd-boot de la partición del sistema EFI y la lista de cargadores de arranque de firmware.

is-installed

Comprueba si systemd-boot está instalado en el ESP. Tenga en cuenta que un solo ESP puede albergar varios cargadores de arranque; por lo tanto, esto verifica si systemd-boot es uno (de posiblemente muchos) cargadores de arranque instalados, y no si es el predeterminado ni si está registrado en alguna variable EFI.

random-seed

Genera una semilla aleatoria y la almacena en la partición del sistema EFI, para que la use el cargador de arranque systemd-boot. Además, genera un token de sistema aleatorio y lo almacena de forma persistente como una variable EFI, si no se ha configurado antes. Si el cargador de arranque encuentra la semilla aleatoria en el ESP y el token del sistema en la variable EFI, derivará una semilla aleatoria para pasar al sistema operativo y una nueva semilla para almacenar en el ESP a partir de la combinación de ambos. La semilla aleatoria que se pasa al sistema operativo se acredita al grupo de entropía de los núcleos por parte del administrador del sistema durante el inicio temprano, y permite que el espacio de usuario se inicie con un grupo de entropía completamente inicializado desde el principio. Consulte también systemd-boot-random-seed.service(8).

Consulte Semillas aleatorias[3] para obtener más información.

COMANDOS DE IMAGEN DEL KERNEL

kernel-identify kernel

Toma una imagen del núcleo como argumento. Comprueba qué tipo de núcleo es la imagen. Devuelve uno de "uki", "pe" y "desconocido".

kernel-inspect kernel

Toma una imagen del núcleo como argumento. Imprime detalles sobre la imagen.

OPCIONES

Se entienden las siguientes opciones:

--esp-path=

Ruta a la partición del sistema EFI (ESP). Si no se especifica, /efi/, /boot/ y /boot/efi/ se comprueban alternativamente. Se recomienda montar el ESP en /efi/, si es posible.

--boot-path=

Ruta a la partición del cargador de arranque extendido, como se define en la Especificación del cargador de arranque[1]. Si no se especifica, se marca /boot/. Se recomienda montar la partición del cargador de arranque extendido en /boot/, si es posible.

--root=root

Toma una ruta de directorio como argumento. Todas las rutas tendrán el prefijo de la ruta alternativa root dada, incluidas las rutas de búsqueda de configuración.

--image=image

Toma una ruta a un archivo de imagen de disco o un nodo de dispositivo de bloque. Si se especifica, todas las operaciones se aplican al sistema de archivos en la imagen de disco indicada. Esta opción es similar a --root=, pero funciona en sistemas de archivos almacenados en imágenes de disco o dispositivos de bloque. La imagen del disco debe contener solo un sistema de archivos o un conjunto de sistemas de archivos dentro de una tabla de particiones GPT, siguiendo la Especificación de particiones detectables[4]. Para obtener más información sobre las imágenes de disco admitidas, consulte el conmutador del mismo nombre de systemd-nspawn(1).

--install-source=

Al instalar archivos binarios con --root= o --image=, selecciona de dónde obtenerlos. Toma uno de "auto" (el valor predeterminado), "imagen" o "host". Con "automático", los archivos binarios se seleccionarán del directorio o la imagen especificados y, si no se encuentran, se seleccionarán del host. Con "imagen" o "host" no se realizará una búsqueda alternativa si los archivos binarios no se encuentran en la fuente seleccionada.

-p, --print-esp-path

Esta opción modifica el comportamiento de status. Solo imprime la ruta a la partición del sistema EFI (ESP) en la salida estándar y sale.

-x, --print-boot-path

Esta opción modifica el comportamiento de status. Solo imprime la ruta a la partición del cargador de arranque extendido, si existe, y la ruta al ESP, de lo contrario, a la salida y salida estándar. Este comando es útil para determinar dónde colocar las entradas del cargador de arranque, ya que se colocan preferiblemente en la partición del cargador de arranque extendido si existe y en el ESP de lo contrario.

Las entradas del tipo #1 de la especificación del cargador de arranque generalmente deben colocarse en el directorio "$ (bootctl -x)/loader/entries/". La existencia de ese directorio también se puede usar como indicación de que el soporte de entrada del cargador de arranque está disponible en el sistema. Del mismo modo, las entradas del Tipo de especificación del cargador de arranque n.º 2 deben colocarse en el directorio "$ (bootctl -x)/EFI/Linux/".

Tenga en cuenta que esta opción (similar a la opción --print-booth-path mencionada anteriormente), está disponible independientemente del gestor de arranque utilizado, es decir, también sin que systemd-boot esté instalado

--no-variables

No toque la lista del cargador de arranque de firmware almacenada en las variables EFI.

--graceful

Ignore el error cuando no se pueda encontrar la partición del sistema EFI, cuando no se puedan escribir las variables EFI o cuando ya esté instalado un cargador de arranque diferente o más nuevo. Actualmente solo se aplica a los verbos is-installed, update y random-seed.

-q, --quiet

Suprima la impresión de los resultados de varios comandos y también las sugerencias acerca de que ESP no está disponible.

--make-entry-directory=yes|no

Controla la creación y eliminación del directorio de entrada Especificación del cargador de arranque[1] Tipo n.º 1 en el sistema de archivos que contiene recursos como kernel e imágenes initrd durante la instalación y eliminación , respectivamente. El directorio lleva el nombre del token de entrada, como se especifica con el parámetro --entry-token= descrito a continuación, y se coloca inmediatamente debajo del directorio raíz $BOOT (es decir, debajo del sistema de archivos devuelto por la opción --print-boot-path, consulte más arriba). El valor predeterminado es "no".

--entry-token=

Controla cómo nombrar e identificar las entradas del cargador de arranque para la instalación de este sistema operativo. Se acepta durante la instalación y toma uno de "auto", "machine-id", "os-id", "os-image-id" o una cadena arbitraria con el prefijo "literal:" como argumento .

Si se establece en id. de máquina, las entradas reciben el nombre del ID de máquina del sistema en ejecución (por ejemplo, "b0e793a9baf14b5fa13ecbe84ff637ac"). Consulte machine-id(5) para obtener detalles sobre el concepto y archivo de ID de máquina.

Si se establece en os-id, las entradas reciben el nombre del ID del sistema operativo del sistema en ejecución, es decir, el campo ID= de os-release( 5) (por ejemplo, "fedora"). Del mismo modo, si se establece en os-image-id, las entradas reciben el nombre del ID de imagen del sistema operativo del sistema en ejecución, es decir, el campo IMAGE_ID= de os-release (por ejemplo, " vendedorx-sistema-de-cajero").

Si se establece en auto (predeterminado), se leerá el archivo /etc/kernel/entry-token, si existe, y se usará el valor almacenado. De lo contrario, si se inicializa la ID de la máquina local, se utiliza. De lo contrario, se usará IMAGE_ID= de os-release, si está configurado. De lo contrario, se usará ID= de os-release, si está configurado.

A menos que se establezca en "machine-id", o cuando se use --make-entry-directory=yes, la cadena de token seleccionada se escribe en un archivo /etc/kernel/entry-token, para garantizar que se utilizará para entradas futuras. Este archivo también es leído por kernel-install(8), para identificar bajo qué nombre generar entradas del gestor de arranque para kernels recién instalados, o para determinar los nombres de entrada para eliminar los antiguos.

Por lo general, es preferible usar la ID de la máquina para nombrar las entradas, sin embargo, hay casos en los que usar los otros identificadores es una buena opción. Específicamente: si los datos de identificación que conlleva la ID de la máquina no se almacenarán en la partición (sin cifrar) $BOOT, o si la ID se generará en el primer arranque y no se conoce cuando se preparan las entradas . Tenga en cuenta que el uso de la ID de la máquina tiene la ventaja de que varias instalaciones paralelas del mismo sistema operativo pueden coexistir en el mismo medio y pueden actualizar sus entradas del cargador de arranque de forma independiente. Cuando se utiliza otro identificador (como el ID del sistema operativo o el ID de la imagen del sistema operativo), las instalaciones paralelas del mismo sistema operativo intentarán utilizar el mismo nombre de entrada. Para admitir instalaciones paralelas, el instalador debe usar un token de entrada diferente al agregar una segunda instalación.

--all-architectures

Instale archivos binarios para todas las arquitecturas EFI admitidas (esto implica --no-variables).

--efi-boot-option-description=

Por lo general, es preferible usar el nombre de entrada predeterminado "Linux Boot Manager", ya que solo se debe usar un cargador de arranque instalado en una única partición ESP para iniciar cualquier número de instalaciones del sistema operativo que se encuentren en los diversos discos instalados en el sistema. Específicamente, las distribuciones no deberían usar este indicador para instalar una entrada de marca en la lista de opciones de arranque. Sin embargo, en situaciones con varios discos, cada uno con su propia partición ESP, puede resultar beneficioso facilitar la identificación del gestor de arranque que se utiliza en el menú de opciones de arranque del firmware.

--dry-run

Ejecución en seco para --unlink y --cleanup.

En el modo de ejecución en seco, las operaciones de desvinculación y limpieza solo imprimen los archivos que se eliminarían sin eliminarlos realmente.

--no-pager

No canalice la salida a un buscapersonas.

--json=MODE

Muestra la salida formateada como JSON. Espera uno de "corto" (para la salida más corta posible sin espacios en blanco redundantes ni saltos de línea), "bonito" (para una versión bonita de lo mismo, con sangría y saltos de línea) o "apagado" (para desactivar la salida JSON, el valor por defecto).

-h, --help

Imprima un breve texto de ayuda y salga.

--version

Imprima una cadena de versión corta y salga.

ARCHIVOS .EFI FIRMADOS

bootctl instalar y actualizar buscará un archivo systemd-boot que termine con el sufijo ".efi.signed" primero, y cópielo en lugar del archivo ".efi" normal. Esto permite que las distribuciones o los usuarios finales proporcionen imágenes firmadas para UEFI SecureBoot.

ESTADO DE SALIDA

En caso de éxito, se devuelve 0, de lo contrario, un código de error distinto de cero.

AMBIENTE

Si se establece $SYSTEMD_RELAX_ESP_CHECKS=1, las comprobaciones de validación del ESP se relajan y la ruta especificada con --esp-path= puede hacer referencia a cualquier tipo de sistema de archivos en cualquier tipo de partición.

De manera similar, $SYSTEMD_RELAX_XBOOTLDR_CHECKS=1 desactiva algunas comprobaciones de validación para la partición del cargador de arranque extendido.

EJEMPLOS

Ejemplo 1. Salida de estado y lista

$ bootctl status
System:
     Firmware: UEFI 2.40 (firmware-version)  ← firmware vendor and version
  Secure Boot: disabled (setup)              ← Secure Boot status
 TPM2 Support: yes
 Boot into FW: supported                     ← does the firmware support booting into itself

Current Boot Loader:                         ← details about sd-boot or another boot loader
      Product: systemd-boot version            implementing the Boot Loader Interface[2]
     Features: ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✓ Load drop-in drivers
               ✓ Boot loader sets ESP information
          ESP: /dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000
         File: └─/EFI/systemd/systemd-bootx64.efi

Random Seed:                                 ← random seed used for entropy in early boot
 Passed to OS: yes
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 251
         File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 251

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0001
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/...
         File: └─/EFI/systemd/systemd-bootx64.efi

        Title: Fedora
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/...
         File: └─/EFI/fedora/shimx64.efi

        Title: Linux-Firmware-Updater
           ID: 0x0002
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/...
         File: └─/EFI/fedora/fwupdx64.efi

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000)

Default Boot Loader Entry:
         type: Boot Loader Specification Type #1 (.conf)
        title: Fedora Linux 36 (Workstation Edition)
           id: ...
       source: /boot/efi/loader/entries/entry-token-kernel-version.conf
      version: kernel-version
   machine-id: ...
        linux: /entry-token/kernel-version/linux
       initrd: /entry-token/kernel-version/initrd
      options: root=...
$ bootctl list
Boot Loader Entries:
         type: Boot Loader Specification Type #1 (.conf)
        title: Fedora Linux 36 (Workstation Edition) (default) (selected)
           id: ...
       source: /boot/efi/loader/entries/entry-token-kernel-version.conf
      version: kernel-version
   machine-id: ...
        linux: /entry-token/kernel-version/linux
       initrd: /entry-token/kernel-version/initrd
      options: root=...

         type: Boot Loader Specification Type #2 (.efi)
        title: Fedora Linux 35 (Workstation Edition)
           id: ...
       source: /boot/efi/EFI/Linux/fedora-kernel-version.efi
      version: kernel-version
   machine-id: ...
        linux: /EFI/Linux/fedora-kernel-version.efi
      options: root=...

         type: Automatic
        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

En la lista, "(predeterminado)" especifica la entrada que se utilizará de forma predeterminada y "(seleccionado)" especifica la entrada que se seleccionó la última vez (es decir, que se está ejecutando actualmente).

VER TAMBIÉN

systemd-boot(7), Boot Loader Specification[1], Boot Loader Interface[2], systemd-boot-random-seed.service(8)

NOTAS

  1. Especificación del cargador de arranque: https://uapi-group.org/specifications/specs/boot_loader_specification

  2. Interfaz del cargador de arranque: https://systemd.io/BOOT_LOADER_INTERFACE

  3. Semillas aleatorias: https://systemd.io/RANDOM_SEEDS

  4. Especificación de particiones detectables: https://uapi-group.org/specifications/specs/discoverable_partitions_specification