systemd-boot (Español)
Artículos relacionados
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 del kernel de Linux, Shell UEFI, GRUB, el Windows Boot Manager, y similares.
Contents
Instalación
Arranque EFI
- Asegúrese de que ha arrancado en modo UEFI.
- Verifique que las variables EFI son accesibles.
- Monte la EFI System Partition (ESP) correctamente. En este artículo se utiliza
esp
para indicar su punto de montaje. - Si la partición ESP no utiliza la partición /boot deberá copiar el kernel e initramfs a aquella en la que esté la ESP.
- Escriba la siguiente órden para instalar systemd-boot:
# bootctl --path=esp install
Se copiará el binario systemd-boot a la partición EFI System Partition (esp/EFI/systemd/systemd-bootx64.efi
yesp/EFI/Boot/BOOTX64.EFI
—ambos idénticos— en sistemas x64) y añadirá el propio systemd-boot como aplicación EFI por defecto (entrada de arranque por defecto) cargada por el gestor de arranque EFI. - Por último, debe configurar el gestor de arranque para que funcione correctamente.
Arranque Legacy
También puede instalar con éxito systemd-boot si arranca con un sistema operativo antiguo. Sin embargo, esto requiere que más tarde se le diga a su firmware que lance el archivo EFI de systemd-boot en el arranque:
- que, o bien tiene una shell EFI trabajando en algún lugar;
- o la interfaz de su firmware le proporciona una forma de establecer adecuadamente el archivo EFI que se cargará en el arranque.
Si puede hacerlo, la instalación es fácil: entre en la shell EFI o en la interfaz de configuración del firmware y cambie los archivos EFI por defecto del equipo por esp/EFI/systemd/systemd-bootx64.efi
(systemd-bootia32.efi
en sistemas i686).
Actualizar
systemd-boot (man bootctl
, man systemd-efi-boot-generator
) asume que EFI System Partition se monta en /boot
. A diferencia del anterior paquete separado gummiboot, que se actualizaba automáticamente en cada nueva versión del paquete con un script post_install
, las actualizaciones de las nuevas versiones de systemd-boot ahora son manejadas manualmente por el usuario:
# bootctl update
Si la ESP no está montada en /boot
, la opción --path=
puede pasar la ruta. Por ejemplo:
# bootctl --path=esp update
Configuración
Configuración básica
La configuración básica se coloca en esp/loader/loader.conf
, con tres posibles opciones de configuración:
-
default
– entrada por defecto para seleccionar (sin el sufijo.conf
); se puede utilizar un comodín comoarch-*
-
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 de espacio durante el arranque.
-
editor
- si se quiere activar el editor de los parámetros del kernel o no.1
(por defecto) es para activar,0
es para desactivar. Dado que el usuario puede añadirinit=/bin/bash
para puentear la contraseña de root y acceder como tal, se recomienda encarecidamente establecer esta opción en0
.
Ejemplo:
esp/loader/loader.conf
default arch timeout 4 editor 0
Añadir entradas de arranque
bootctl buscará los elementos para el menú de arranque en esp/loader/entries/*.conf
—cada archivo encontrado debe contener exactamente una entrada de arranque—. 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 comolinux
(véase a continuación) son necesarios.
-
options
– opciones de línea de órdenes para pasar al programa EFI. Opcional, pero es necesario al menosinitrd=ruta-a-efi
yroot=dev
para arrancar Linux.
Para Linux, puede especificar linux ruta-a-vmlinuz
y initrd ruta-a-initramfs
; esto se traducirá automáticamente en ruta a efi
y options initrd=ruta
—esta sintaxis solo es apoyada por eficacia y no altera su función—.
Instalaciones de root estándar
He aquí un ejemplo de entrada para una partición raíz sin LVM o LUKS:
esp/loader/entries/arch.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
Note que, en el ejemplo anterior, PARTUUID
/PARTLABEL
identifica una partición GPT, y difiere de UUID
/LABEL
, que identifica un sistema de archivos. El uso de PARTUUID
/PARTLABEL
es ventajoso porque es invariable (es decir, que no cambia) si vuelve a formatear la partición con otro sistema de archivos, o si el mapeado de /dev/sd*
cambia por cualquier razón. También es útil si no se tiene un sistema de archivos en la partición (o utiliza LUKS, que no soporta LABEL
s).
Instalaciones de root sobre LVM
Este es un ejemplo para una partición root utilizando la gestión de volúmenes lógicos (LVM):
esp/loader/entries/arch-lvm.conf
title Arch Linux (LVM) linux /vmlinuz-linux initrd /initramfs-linux.img options root=/dev/mapper/<GrupodeVolúmenes-VolumenLógico> rw
Sustituya <GrupodeVolúmenes-VolumenLógico>
con los nombres reales del Grupo de Volúmenes y del Volumen Lógico (por ejemplo root=/dev/mapper/volgroup00-lvolroot
). Alternativamente, también es posible utilizar una UUID en su lugar:
.... options root=UUID=<identificador UUID> rw
Advierta que root=UUID=
es usado en lugar de root=PARTUUID=
, que es utilizado para las particiones Root sin LVM o LUKS.
Instalaciones de root cifrado
Este es un ejemplo de un archivo de configuración para una partición root cifrada (DM-Crypt / LUKS):
esp/loader/entries/arch-encrypted.conf
title Arch Linux Encrypted linux /vmlinuz-linux initrd /initramfs-linux.img options cryptdevice=UUID=<UUID>:<nombre-dispositivo-mapeado> root=/dev/mapper/<nombre-dispositivo-mapeado> quiet rw
En este ejemplo se utiliza el identificador UUID; pero podría remplazar el UUID con el identificador PARTUUID
, si lo desea. También puede remplazar la ruta /dev
con el UUID propio. El nombre-dispositivo-mapeado
será el que quiera ponerle. Vea Dm-crypt/System configuration#Boot loader.
Si está utilizando LVM, su línea cryptdevice se verá así:
esp/loader/entries/arch-encrypted-lvm.conf
title Arch Linux Encrypted LVM linux /vmlinuz-linux initrd /initramfs-linux.img options cryptdevice=UUID=<UUID>:GrupodeVolúmenes root=/dev/mapper/GrupodeVolúmenes-VolumenLógicoRoot quiet rw
También se pueden añadir otros programas tales como \EFI\arch\grub.efi
.
Instalaciones de root sobre subvolumen btrfs
Si se arranca un subvolumen btrfs como root, modifique la línea options
con rootflags=subvol=<root subvolume>
. En el siguiente ejemplo, la raíz se ha montado como un subvolumen btrfs llamado «ROOT» (por ejemplo, mount -o subvol=ROOT /dev/sdxY /mnt
):
esp/loader/entries/arch-btrfs-subvol.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw rootflags=subvol=ROOT
Si no se hace según se ha indicado, dará como resultado el siguiente mensaje de error: ERROR: Root device mounted successfully, but /sbin/init does not exist.
Shells EFI u otras aplicaciones de EFI
En el caso de que haya instalado shells de EFI u otras aplicaciones EFI dentro de la ESP, puede utilizar los siguientes fragmentos:
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
Soporte para hibernación
Véase Suspend and hibernate.
Teclas dentro del 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 EFI -
1-9
- número de entrada
Solución de problemas
Entrada manual utilizando efibootmgr
Si la orden bootctl install
cfalla, 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.
El menú no aparece después de actualizar Windows
Véase UEFI#Windows changes boot order.