arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
273 lines (182 loc) • 16.4 kB
Markdown
Artículos relacionados
* [Arch boot process (Español)](/index.php/Arch_boot_process_(Espa%C3%B1ol) "Arch boot process (Español)")
* [Boot loaders (Español)](/index.php/Boot_loaders_(Espa%C3%B1ol) "Boot loaders (Español)")
* [Secure Boot](/index.php/Secure_Boot "Secure Boot")
* [Unified Extensible Firmware Interface (Español)](/index.php/Unified_Extensible_Firmware_Interface_(Espa%C3%B1ol) "Unified Extensible Firmware Interface (Español)")
**Estado de la traducción:** este artículo es una versión traducida de [Systemd-boot](/index.php/Systemd-boot "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](https://wiki.archlinux.org/index.php?title=Systemd-boot&diff=0&oldid=448431).
**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](https://www.archlinux.org/packages/?name=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](/index.php/EFISTUB "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](https://bugs.archlinux.org/task/33745), debe utilizar un gestor de arranque que no utilice EFISTUB, como [GRUB](/index.php/GRUB "GRUB"), [Syslinux](/index.php/Syslinux "Syslinux") o cualquier otro [gestor de arranque](/index.php/Boot_loader "Boot loader") que no dependa exclusivamente de [UEFI](/index.php/UEFI "UEFI").
## Contents
* [1 Instalación](#Instalaci.C3.B3n)
* [1.1 Arranque EFI](#Arranque_EFI)
* [1.2 Arranque Legacy](#Arranque_Legacy)
* [1.3 Actualizar](#Actualizar)
* [2 Configuración](#Configuraci.C3.B3n)
* [2.1 Configuración básica](#Configuraci.C3.B3n_b.C3.A1sica)
* [2.2 Añadir entradas de arranque](#A.C3.B1adir_entradas_de_arranque)
* [2.2.1 Instalaciones de root estándar](#Instalaciones_de_root_est.C3.A1ndar)
* [2.2.2 Instalaciones de root sobre LVM](#Instalaciones_de_root_sobre_LVM)
* [2.2.3 Instalaciones de root cifrado](#Instalaciones_de_root_cifrado)
* [2.2.4 Instalaciones de root sobre subvolumen btrfs](#Instalaciones_de_root_sobre_subvolumen_btrfs)
* [2.2.5 Shells EFI u otras aplicaciones de EFI](#Shells_EFI_u_otras_aplicaciones_de_EFI)
* [2.3 Soporte para hibernación](#Soporte_para_hibernaci.C3.B3n)
* [3 Teclas dentro del menú de arranque](#Teclas_dentro_del_men.C3.BA_de_arranque)
* [4 Solución de problemas](#Soluci.C3.B3n_de_problemas)
* [4.1 Entrada manual utilizando efibootmgr](#Entrada_manual_utilizando_efibootmgr)
* [4.2 El menú no aparece después de actualizar Windows](#El_men.C3.BA_no_aparece_despu.C3.A9s_de_actualizar_Windows)
* [5 Véase también](#V.C3.A9ase_tambi.C3.A9n)
## Instalación
### Arranque EFI
1. Asegúrese de que ha arrancado en modo UEFI.
2. Verifique que [las variables EFI son accesibles](/index.php/Unified_Extensible_Firmware_Interface#Requirements_for_UEFI_variable_support "Unified Extensible Firmware Interface").
3. Monte la [EFI system partition](/index.php/EFI_system_partition "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](#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](/index.php/EFISTUB#Using_systemd "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](#Configuraci.C3.B3n) 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* ([bootctl(1)](https://jlk.fjfi.cvut.cz/arch/manpages/man/bootctl.1)) 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](/index.php/REFInd "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](/index.php/Dual_boot_with_Windows#Fast_Start-Up "Dual boot with Windows").
* Recuerde que debe cargar el [microcode](/index.php/Microcode "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/sd*xY*`, 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)](/index.php/LVM "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](/index.php/Dm-crypt "Dm-crypt")):
`*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](/index.php/Dm-crypt/System_configuration#Boot_loader "Dm-crypt/System configuration").
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](/index.php/Btrfs "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](/index.php/Suspend_and_hibernate "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](https://www.archlinux.org/packages/?name=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](/index.php/EFI_system_partition "EFI system partition").
### El menú no aparece después de actualizar Windows
Véase [UEFI#Windows changes boot order](/index.php/UEFI#Windows_changes_boot_order "UEFI").
## Véase también
* [http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/](http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/)