systemd-boot (Español)

Esta traducción de
systemd-boot
fue revisada el
2018-12-20
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
Artículos relacionados
Arch boot process (Español)
Secure Boot
Unified Extensible Firmware Interface (Español)
systemd-boot
, anteriormente llamado
gummiboot
, es un sencillo
gestor de arranque
UEFI que ejecuta imágenes EFI configuradas. La entrada predeterminada es seleccionada por un patrón configurado (
glob
) o un menú en pantalla. Se incluye en el paquete
systemd
, que se instala en un sistema Arch de forma predeterminada.
Es fácil de configurar, pero solo puede iniciar ejecutables EFI, tales como
EFISTUB (Español)
del kernel de Linux, Intérprete de órdenes de UEFI, GRUB o Windows Boot Manager.
Instalación
Instalar el gestor de arranque EFI
Para instalar el gestor de arranque EFI
systemd-boot
primero asegúrese de que el sistema haya arrancado en modo UEFI y que las
variables de UEFI
son accesibles. Esto se puede verificar ejecutando la orden
efivar --list
.
Cabe señalar que
systemd-boot
solo puede cargar el kernel
EFISTUB
desde la
EFI system partition (Español)
(ESP). Para mantener el kernel actualizado, es más sencillo y, por lo tanto, mas
recomendable
montar la ESP en
/boot
. Si la ESP
no
está montada en
/boot
, los archivos kernel y de initramfs deben copiarse en dicha ESP. Consulte
EFI system partition (Español)#Puntos de montaje alternativos
para más detalles.
esp
se usará a lo largo de esta página para indicar el punto de montaje ESP, es decir,
/boot
.
Con la ESP montada en
esp
, utilice
bootctl(1)
para instalar
systemd-boot
en la partición del sistema EFI ejecutando:
# bootctl --path=
esp
install
Esto copiará el cargador de arranque
systemd-boot
a la partición EFI: en un sistema de arquitectura x64 los dos binarios idénticos
esp
/EFI/systemd/systemd-bootx64.efi
y
esp
/EFI/BOOT/BOOTX64.EFI
se transferirán a la ESP. A continuación, establecerá
systemd-boot
como la aplicación EFI predeterminada (entrada de arranque predeterminada) cargada por el gestor de arranque EFI («
EFI Boot Manager
»).
Luego, vaya a la sección
#Configuración
para agregar entradas de arranque para que
systemd-boot
funcione correctamente en el momento del arranque.
Actualizar el gestor de arranque EFI
Siempre que haya una nueva versión de
systemd-boot
, el gestor de arranque debe ser actualizado por el usuario. Esto se puede realizar bien manualmente o bien la actualización se puede activar automáticamente utilizando los hooks de pacman. Los dos enfoques se describen a continuación.
Actualización manual
systemd-boot
pueden ser actualizado por
systemd-boot
. Si el parámetro
path
no se especifica,
/efi
,
/boot
, y
/boot/efi
se verifican a su vez.
# bootctl update
Si la ESP está montada en una ubicación diferente, la opción
--path=
puede pasar la ruta apropiada. Por ejemplo:
# bootctl --path=
esp
update
Nota
Esta es también la orden a utilizar cuando se migra de
gummiboot
, antes de eliminar el paquete. Si, no obstante, dicho paquete ya se eliminó, ejecute
bootctl --path=
esp
install
.
Actualización automática
El paquete
systemd-boot-pacman-hook
AUR
proporciona un
hook de pacman
para automatizar el proceso de actualización. Al
instalar
el paquete, este agregará un hook que se ejecutará cada vez que se actualice el paquete
systemd
.
En otro caso, para replicar lo que hace el paquete
systemd-boot-pacman-hook
sin instalarlo, coloque el siguiente hook de pacman en el directorio
/etc/pacman.d/hooks/
:
/etc/pacman.d/hooks/systemd-boot.hook
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd

[Action]
Description = Updating systemd-boot
When = PostTransaction
Exec = /usr/bin/bootctl update
Configuración
Configurar el cargador
La configuración del cargador se coloca en
esp
/loader/loader.conf
, y está compuesto por las siguientes opciones:
default
— entrada por defecto para seleccionar como se define
#Añadir entradas al cargador
; se da sin el sufijo
.conf
y se puede utilizar un comodín como
arch-*
;
timeout
— tiempo de espera del menú, en segundos. Si este no se ha establecido, el menú solo se muestra cuando se mantiene pulsada la tecla
espaciadora
(aunque también funcionan la mayoría de las otras teclas) durante el arranque;
editor
— si se quiere activar el editor de los parámetros del kernel o no.
yes
(por defecto) es para activar,
no
es para desactivar. Dado que el usuario puede añadir
init=/bin/bash
para puentear la contraseña de root y acceder como tal, se recomienda encarecidamente establecer esta opción en
no
;
auto-entries
—  muestra entradas automáticas para Windows, EFI Shell y Default Loader si se configura en
1
(default),
0
para ocultar;
auto-firmware
— muestra la entrada para reiniciar en las configuraciones de firmware UEFI si está configurado en
1
(default),
0
para ocultar;
console-mode
— cambia el modo de consola UEFI:
0
para 80x25,
1
para 80x50,
2
y superior para modos no estándar proporcionado por el firmware del dispositivo, si existe,
auto
selecciona un modo adecuado automáticamente,
max
para el modo más alto disponible,
keep
(default)  para el modo de firmware seleccionado.
Consulte
loader.conf(5) § OPTIONS
para ver la lista completa de opciones.
He aquí un ejemplo de configuración del cargador:
esp
/loader/loader.conf
default  arch
timeout  4
console-mode max
editor   no
Sugerencia
default
y
timeout
se pueden cambiar en el menú de inicio y los cambios se almacenarán como variables EFI, sobrescribiendo estas opciones.
Un archivo básico de configuración del cargador se encuentra en
/usr/share/systemd/bootctl/loader.conf
.
Añadir entradas al cargador
bootctl
busca elementos del menú de arranque en
esp
/loader/entries/*.conf
—cada archivo encontrado debe contener exactamente un cargador—. Las opciones posibles son:
title
— nombre del sistema operativo.
Necesario.
version
— versión del kernel, que se muestra solamente cuando existan varias entradas con el mismo título. Opcional.
machine-id
— identificador de la máquina desde
/etc/machine-id
, que se muestra solamente cuando existan varias entradas con la misma versión y título. Opcional.
efi
— programas EFI a iniciar, que se encuentren en la ESP (
esp
); por ejemplo,
/vmlinuz-linux
.
Tanto
este parámetro como
linux
(véase a continuación) son
necesarios.
options
— opciones de línea de órdenes para pasar al programa EFI o los
parámetros del kernel
. Opcional, pero es necesario al menos
initrd=
ruta-a-efi
y
root=
dev
para arrancar Linux.
Para el arranque de Linux, también puede usar, en lugar de
efi
y
options
, la siguiente sintaxis:
linux
y
initrd
seguidos de la ruta relativa de los archivos correspondientes en el ESP; por ejemplo
/vmlinuz-linux
; esto se traducirá automáticamente a
efi
path
y
options initrd=
path
—esta sintaxis solo se admite por comodidad y no tiene diferencias en la función—.
Un ejemplo de un archivo de carga para iniciar Arch desde una partición con la etiqueta
arch_os
y cargar el
microcode (Español)
de la CPU de Intel sería:
esp
/loader/entries/arch.conf
title   Arch Linux
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options root=LABEL=
arch_os
rw
bootctl
buscará automáticamente para «
Windows Boot Manager
» (
\EFI\Microsoft\Boot\Bootmgfw.efi
), «
EFI Shell
» (
\shellx64.efi
) y «
EFI Default Loader
» (
\EFI\Boot\bootx64.efi
). En caso de detectarlas, las entradas también se generarán automáticamente para ellos. Sin embargo, no autodetecta otras aplicaciones EFI (a diferencia de lo que hace
rEFInd
), por lo que para arrancar el kernel, deben ser creadas entradas de configuración manualmente.
Nota
Si realiza un arranque dual con Windows, se recomienda encarecidamente que desactive la opción predeterminada [[[Dual boot with Windows#Fast Startup and hibernation|Fast Start-Up]].
Recuerde cargar el
microcódigo
de Intel con
initrd
si procede, se proporciona un ejemplo en
Microcode (Español)#systemd-boot
.
La partición raíz se puede identificar con su
LABEL
o
PARTUUID
. Este último se puede encontrar con la orden
blkid -s PARTUUID -o value /dev/sd
xY
, donde
x
es la letra del dispositivo y
Y
es el número de partición. Esto es necesario solo para identificar la partición raíz, no la partición
esp
.
Sugerencia
Las entradas de arranque disponibles que se han configurado pueden enumerarse con la orden
bootctl list
.
Un archivo de entrada de ejemplo se encuentra en
/usr/share/systemd/bootctl/arch.conf
.
Los
kernel parameters (Español)
para escenarios como
LVM (Español)
o
dm-crypt (Español)
se pueden encontrar en sus páginas respectivas.
Intérpretes de órdenes de EFI y otras aplicaciones EFI
En el caso de que haya instalado instérpretes de órdenes de EFI u otras aplicaciones EFI dentro de la partición ESP, puede utilizar los siguientes fragmentos:
Nota
El parámetro de ruta del archivo para la línea
efi
es relativo a su punto de montaje
esp
. Si está montada en
/boot
y los archivos binarios de EFI residen en
/boot/EFI/xx.efi
y
/boot/yy.efi
, entonces especifique los parámetros como
efi/EFI/xx.efi
y
efi/yy.efi
respectivamente.
Ejemplos de entradas para los cargadores del intérprete de órdenes de UEFI personalizadas:
esp
/loader/entries/uefi-shell-v1-x86_64.conf
title   UEFI Shell x86_64 v1
efi     /EFI/shellx64_v1.efi
esp
/loader/entries/uefi-shell-v2-x86_64.conf
title   UEFI Shell x86_64 v2
efi     /EFI/shellx64_v2.efi
Arrancar con la configuración del firmware de EFI
La mayoría de los firmware del sistema configurado para el inicio de EFI agregarán sus propias entradas
efibootmgr
para arrancar en la «Configuración del Firmware de UEFI».
Preparar los kernels para /EFI/Linux
/EFI/Linux
busca archivos del kernel especialmente preparados, que agrupan el kernel, el disco RAM de inicio (initrd), la línea de órdenes del kernel y
/etc/os-release
en un solo archivo . Este archivo se puede firmar fácilmente para «secure boot».
Nota
systemd-boot
requiere que el archivo
os-release
contenga bien
VERSION_ID
o bien
BUILD_ID
para generar una ID y agregar automáticamente la entrada, que el archivo
os-release
de Arch no hace. Mantenga su propia copia con uno de ellos o haga que su script de agrupación lo genere automáticamente.
Coloque la línea de órdenes del kernel que desea usar en un archivo y cree un archivo de agrupación como este:
Kernel packaging command:
objcopy \
    --add-section .osrel="/usr/lib/os-release" --change-section-vma .osrel=0x20000 \
    --add-section .cmdline="kernel-command-line.txt" --change-section-vma .cmdline=0x30000 \
    --add-section .linux="vmlinuz-file" --change-section-vma .linux=0x40000 \
    --add-section .initrd="initrd-file" --change-section-vma .initrd=0x3000000 \
    "/usr/lib/systemd/boot/efi/linuxx64.efi.stub" "
linux
.efi"
Opcionalmente firme el archivo
linux
.efi
producido anteriormente.
Copie
linux
.efi
en
esp
/EFI/Linux
.
Proporcionar soporte para hibernación
Véase
Suspender e hibernar
.
Proteger con contraseña el editor de parámetros del kernel
Alternativamente, puede instalar
systemd-boot-password
AUR
que admite
password
como opción de configuración básica. Utilice
sbpctl generate
para generar un valor para esta opción.
Instale
systemd-boot-password
con la siguiente orden:
# sbpctl install
esp
Con el editor activado, se le solicitará su contraseña antes de poder editar los parámetros del kernel.
Teclas utilizadas en el menú de arranque
Las siguientes teclas se utilizan dentro del menú:
Arriba/Abajo
- selecciona la entrada
Intro
- arranca la entrada seleccionada
d
- selecciona la entrada por defecto para arrancar (almacenado en una variable de EFI no volátil)
-/T
- disminuye el tiempo de espera (almacenado en una variable de EFI no volátil)
+/t
- aumenta el tiempo de espera (almacenado en una variable de EFI no volátil)
e
- edita la línea de órdenes del kernel
v
- muestra la versión de systemd-boot y de UEFI
Q
- sale
P
- imprime la configuración actual
h/?
- ayuda
Las siguientes teclas son de acceso rápido, de modo que cuando se pulsan dentro del menú o durante el arranque, inician directamente una entrada específica:
l
- Linux
w
- Windows
a
- OS X
s
- Shell de EFI
1-9
- número de entrada
Solución de problemas
Instalación después de arrancar en modo BIOS
Advertencia
Esto no es recomendable.
Si se inicia en el modo BIOS, aún puede instalar
systemd-boot
, sin embargo, este proceso requiere que le diga al firmware que inicie el archivo EFI de
systemd-boot
en el arranque, lo cual se puede hacer generalmente de dos maneras:
tiene un intérprete de órdenes de EFI en funcionamiento en otro lugar;
su interfaz de firmware proporciona una forma de configurar correctamente el archivo EFI que debe cargarse en el momento del arranque.
Si puede hacerlo, la instalación es más fácil: ingrese en el intérprete de órdenes de EFI o en la interfaz de configuración de su firmware y cambie el archivo EFI predeterminado de su equipo a
esp
/EFI/systemd/systemd-bootx64.efi
(o
systemd-bootia32.efi
dependiendo de si el firmware de su sistema es de 32 bits).
Nota
La interfaz de firmware de la serie Latitude de Dell proporciona todo lo que necesita para configurar el arranque EFI, pero el intérprete de órdenes de EFI no podrá escribir en la ROM del equipo.
Crear entrada manual utilizando efibootmgr
Si la orden
bootctl install
falla, puede crear una entrada de arranque EFI manualmente con la utilidad
efibootmgr
:
# efibootmgr -c -d /dev/sdX -p Y -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"
Donde
/dev/sdXY
es la
EFI system partition (Español)
.
Nota
La ruta a la imagen EFI debe usar la barra invertida (
\
) como separador.
El menú no aparece después de actualizar Windows
Véase
UEFI#Windows changes boot order
.
Véase también
https://systemd.io/BOOT/
https://github.com/systemd/systemd/tree/master/src/boot/efi
[
enlace roto
2024-12-15]