systemd-boot (Español) - ArchWiki

# systemd-boot (Español)

Artículos relacionados

- Arch boot process (Español)
- Boot loaders (Español)
- Secure Boot
- Unified Extensible Firmware Interface (Español)

Estado de la traducción: este artículo es una versión traducida de Systemd-boot. Fecha de la última traducción/revisión: 2016-09-19. Puedes ayudar a actualizar la traducción, si adviertes que la versión inglesa ha cambiado: ver cambios.

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.

Advertencia: systemd-boot simplemente ofrece un menú de arranque para los EFISTUB del kernel. En caso de tener problemas al arrancar el kernel con EFISTUB como en FS#33745, debe utilizar un gestor de arranque que no utilice EFISTUB, como GRUB, Syslinux o cualquier otro gestor de arranque que no dependa exclusivamente de UEFI.

## Instalación

### Arranque EFI

1. Asegúrese de que ha arrancado en modo UEFI.
2. Verifique que las variables EFI son accesibles.
3. Monte la EFI System Partition (ESP) correctamente. En este artículo se utiliza `esp` para indicar su punto de montaje.
   Nota: systemd-boot no puede cargar archivos binarios de EFI desde otras particiones. Por ello se recomienda montar la ESP en `/boot`. Vea #Actualizar para obtener más información y trabajar sobre ello, en el caso de que desee separar `/boot` de ESP.
4. 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.
   Nota: Para obtener una forma de mantener actualizado automáticamente el kernel en la ESP, eche un vistazo al artículo EFISTUB para conocer algunas unidades de systemd que se pueden adaptar. Si la partición efi utiliza automount, necesita añadir `vfat` a un archivo en `/etc/modules-load.d/` para asegurarse de que el kernel que se está ejecutando ha cargado el módulo `vfat` en el arranque, antes de que ocurra cualquier actualización del kernel que podría remplazar el módulo por la versión actualmente en ejecución, haciendo imposible el montaje de `/boot/efi` hasta el reinicio.
5. 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` y `esp/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.
6. Por último, debe configurar el gestor de arranque para que funcione correctamente.

### Arranque Legacy

Advertencia: Este no es el proceso recomendado.

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.

Nota: Por ejemplo, en la serie Latitude de Dell, la interfaz de firmware proporciona todo lo necesario para la configuración de arranque EFI y la shell EFI no será capaz de escribir en la ROM del ordenador.

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

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`.

## 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 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 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ñadir `init=/bin/bash` para puentear la contraseña de root y acceder como tal, se recomienda encarecidamente establecer esta opción en `0`.

Ejemplo:

    esp/loader/loader.conf

    default  arch
    timeout  4
    editor   0

Nota: Tenga en cuenta que las dos primeras opciones se pueden cambiar en el mismo menú de arranque, que se almacenará como variables de EFI.
Sugerencia: Un ejemplo de archivo de configuración básico puede encontralo en `/usr/share/systemd/bootctl`.

### Añadir entradas de arranque

Nota:

- 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 detectarse, las entradas también se generarán automáticamente para ellos. Sin embargo, no se autodetectan otras aplicaciones EFI (a diferencia de rEFInd), por lo que para arrancar el kernel, deben ser creadas entradas de configuración manuales.
- Si tiene un arranque dual con Windows, se recomienda encarecidamente desactivar la opción por defecto Fast Start-Up.
- Recuerde que debe cargar el microcode de intel con `initrd` si procede.
- Puede encontrar el identificador `PARTUUID` de la partición root con la orden `blkid -s PARTUUID -o value /dev/sdxY`, donde `x` es la letra del dispositivo, y `Y` es el número de la partición. Esto solo es necesario para la partición raíz, no para `esp`.

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 como `linux` (véase a continuación) son necesarios.

- `options` – opciones de línea de órdenes para pasar al programa EFI. Opcional, pero es necesario al menos `initrd=ruta-a-efi` y `root=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).

Sugerencia: Puede encontrar un archivo de ejemplo en `/usr/share/systemd/bootctl`.

#### Instalaciones de root sobre LVM

Advertencia: systemd-boot no puede ser utilizado sin un sistema de archivos `/boot` separado fuera de 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

This article or section needs expansion.

Reason: Add example on how to boot into EFI firmware setup. (Discuss in Talk:Systemd-boot (Español)#)

### 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.

## Véase también

- http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/

Category:

- Boot loaders (Español)

Hidden category:

- Pages or sections flagged with Template:Expansion