Difference between revisions of "Systemd-boot (Español)"

From ArchWiki
Jump to navigation Jump to search
(flagged broken section links (interactive))
(Tag: wiki-scripts)
(artículo actualizado)
Line 6: Line 6:
 
[[ru:Systemd-boot]]
 
[[ru:Systemd-boot]]
 
[[zh-hans:Systemd-boot]]
 
[[zh-hans:Systemd-boot]]
{{TranslationStatus (Español)|Systemd-boot|2016-09-19|448431}}
+
{{TranslationStatus (Español)|systemd-boot|2018-12-20|553630}}
 
{{Related articles start (Español)}}
 
{{Related articles start (Español)}}
 
{{Related|Arch boot process (Español)}}
 
{{Related|Arch boot process (Español)}}
{{Related|Boot loaders (Español)}}
 
 
{{Related|Secure Boot}}
 
{{Related|Secure Boot}}
 
{{Related|Unified Extensible Firmware Interface (Español)}}
 
{{Related|Unified Extensible Firmware Interface (Español)}}
 
{{Related articles end}}
 
{{Related articles end}}
  
'''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 {{pkg|systemd}}, que se instala en un sistema Arch de forma predeterminada.
+
'''systemd-boot''', anteriormente llamado '''gummiboot''', es un sencillo [[Arch boot process (Español)#Gestor de arranque|gestor de arranque]] UEFI que ejecuta imágenes EFI configuradas. La entrada predeterminada es seleccionada por un patrón configurado ([[wikipedia:es:Glob (informática)|glob]]) o un menú en pantalla. Se incluye en el paquete {{pkg|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.
+
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.
  
{{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 {{Bug|33745}}, debe utilizar un gestor de arranque que no utilice EFISTUB, como [[GRUB]], [[Syslinux]] o cualquier otro [[Boot loader|gestor de arranque]] que no dependa exclusivamente de [[UEFI]].}}
+
== Instalación ==
  
== 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 [[Unified Extensible Firmware Interface (Español)#UEFI variables|variables UEFI]] son accesibles. Esto se puede verificar ejecutando la orden {{ic|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 {{ic|/boot}}. Si la ESP '''no''' está montada en {{ic|/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.
 +
 
 +
{{ic|''esp''}}se usará a lo largo de esta página para indicar el punto de montaje ESP, es decir, {{ic|/boot}}.
  
=== Arranque EFI ===
+
Con la ESP montada en {{ic|''esp''}}, utilice {{man|1|bootctl}} 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 {{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} y {{ic|''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''»).
  
# Asegúrese de que ha arrancado en modo UEFI.
+
Luego, vaya a la sección  [[#Configuración]] para agregar entradas de arranque para que ''systemd-boot'' funcione correctamente en el momento del arranque.
# Verifique que [[Unified_Extensible_Firmware_Interface#Requirements_for_UEFI_variable_support|las variables EFI son accesibles]].
 
# Monte la [[EFI system partition]] (ESP) correctamente. En este artículo se utiliza {{ic|''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 {{ic|/boot}}. Vea [[#Actualizar]] para obtener más información y trabajar sobre ello, en el caso de que desee separar {{ic|/boot}} de ESP.}}
 
# 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 (Español)#Utilizar systemd|EFISTUB]]{{Broken section link}} para conocer algunas unidades de systemd que se pueden adaptar. Si la partición efi utiliza automount, necesita añadir {{ic|vfat}} a un archivo en {{ic|/etc/modules-load.d/}} para asegurarse de que el kernel que se está ejecutando ha cargado el módulo {{ic|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 {{ic|/boot/efi}} hasta el reinicio.}}
 
# Escriba la siguiente órden para instalar ''systemd-boot'': {{bc|1=# bootctl --path=''esp'' install}} Se copiará el binario ''systemd-boot'' a la partición EFI System Partition ({{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} y {{ic|''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.
 
# Por último, debe [[#Configuración|configurar]] el gestor de arranque para que funcione correctamente.
 
  
=== Arranque Legacy ===
+
=== Actualizar el gestor de arranque EFI ===
  
{{Advertencia |Este no es el proceso recomendado.}}
+
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.
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 {{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} ({{ic|systemd-bootia32.efi}} en sistemas i686).
 
  
=== Actualizar ===
+
==== Actualización manual ====
  
''systemd-boot'' ({{man|1|bootctl}}) asume que EFI System Partition se monta en {{ic|/boot}}. A diferencia del anterior paquete separado ''gummiboot'', que se actualizaba automáticamente en cada nueva versión del paquete con un script {{ic|post_install}}, las actualizaciones de las nuevas versiones de ''systemd-boot'' ahora son manejadas manualmente por el usuario:
+
''systemd-boot'' pueden ser actualizado por ''systemd-boot''. Si el parámetro {{ic|path}} no se especifica, {{ic|/efi}}, {{ic|/boot}}, y {{ic|/boot/efi}} se verifican a su vez.
  
 
  # bootctl update
 
  # bootctl update
  
Si la ESP no está montada en {{ic|/boot}}, la opción {{ic|1=--path=}} puede pasar la ruta. Por ejemplo:  
+
Si la ESP está montada en una ubicación diferente, la opción {{ic|1=--path=}} puede pasar la ruta apropiada. Por ejemplo:  
  
 
  # bootctl --path=''esp'' update
 
  # 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 {{ic|1=bootctl --path=''esp'' install}}.}}
+
{{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 {{ic|1=bootctl --path=''esp'' install}}.}}
 +
 
 +
==== Actualización automática ====
 +
 
 +
El paquete {{AUR|systemd-boot-pacman-hook}} proporciona un [[Pacman hook|hook de pacman]] para automatizar el proceso de actualización. Al [[Install (Español)|instalar]] el paquete, este agregará un hook que se ejecutará cada vez que se actualice el paquete {{Pkg|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 {{ic|/etc/pacman.d/hooks/}}:
 +
 
 +
{{hc|/etc/pacman.d/hooks/systemd-boot.hook|2=
 +
[Trigger]
 +
Type = Package
 +
Operation = Upgrade
 +
Target = systemd
 +
 
 +
[Action]
 +
Description = Updating systemd-boot
 +
When = PostTransaction
 +
Exec = /usr/bin/bootctl update
 +
}}
  
 
== Configuración ==
 
== Configuración ==
  
=== Configuración básica===
+
=== Configurar el cargador ===
  
La configuración básica se coloca en {{ic|''esp''/loader/loader.conf}}, con tres posibles opciones de configuración:
+
La configuración del cargador se coloca en {{ic|''esp''/loader/loader.conf}}, y está compuesto por las siguientes opciones:
  
* {{ic|default}} entrada por defecto para seleccionar (sin el sufijo {{ic|.conf}}); se puede utilizar un comodín como {{ic|arch-*}}
+
* {{ic|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 {{ic|arch-*}};
  
* {{ic|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.
+
* {{ic|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 {{ic|espaciadora}} (aunque también funcionan la mayoría de las otras teclas) durante el arranque;
  
* {{ic|editor}} - si se quiere activar el editor de los parámetros del kernel o no. {{ic|1}} (por defecto) es para activar, {{ic|0}} es para desactivar. Dado que el usuario puede añadir {{ic|1=init=/bin/bash}} para puentear la contraseña de root y acceder como tal, se recomienda encarecidamente establecer esta opción en {{ic|0}}.
+
* {{ic|editor}} si se quiere activar el editor de los parámetros del kernel o no. {{ic|yes}} (por defecto) es para activar, {{ic|no}} es para desactivar. Dado que el usuario puede añadir {{ic|1=init=/bin/bash}} para puentear la contraseña de root y acceder como tal, se recomienda encarecidamente establecer esta opción en {{ic|no}};
  
Ejemplo:
+
* {{ic|auto-entries}} —  muestra entradas automáticas para Windows, EFI Shell y Default Loader si se configura en {{ic|1}} (default), {{ic|0}} para ocultar;
  
 +
* {{ic|auto-firmware}} — muestra la entrada para reiniciar en las configuraciones de firmware UEFI si está configurado en {{ic|1}} (default), {{ic|0}} para ocultar;
 +
 +
* {{ic|console-mode}} — cambia el modo de consola UEFI: {{ic|0}} para 80x25, {{ic|1}} para 80x50, {{ic|2}} y superior para modos no estándar proporcionado por el firmware del dispositivo, si existe, {{ic|auto}} selecciona un modo adecuado automáticamente, {{ic|max}} para el modo más alto disponible, {{ic|keep}} (default)  para el modo de firmware seleccionado.
 +
 +
Consulte el [https://www.freedesktop.org/software/systemd/man/loader.conf.html manual de loader.conf] para ver la lista completa de opciones.
 +
 +
He aquí un ejemplo de configuración del cargador:
 
{{hc|''esp''/loader/loader.conf|
 
{{hc|''esp''/loader/loader.conf|
 
default  arch
 
default  arch
 
timeout  4
 
timeout  4
editor  0
+
console-mode max
 +
editor  no
 
}}
 
}}
  
{{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|
 +
* {{ic|default}} y {{ic|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 {{ic|/usr/share/systemd/bootctl/loader.conf}}.}}
  
{{Sugerencia|Un ejemplo de archivo de configuración básico puede encontralo en {{ic|/usr/share/systemd/bootctl}}.}}
+
=== Añadir entradas al cargador ===
  
=== Añadir entradas de arranque ===
+
''bootctl'' busca elementos del menú de arranque en {{ic|''esp''/loader/entries/*.conf}} —cada archivo encontrado debe contener exactamente un cargador—. Las opciones posibles son:
  
{{Nota|
+
* {{ic|title}} — nombre del sistema operativo. '''Necesario.'''
* ''bootctl'' buscará automáticamente para "'''Windows Boot Manager'''" ({{ic|\EFI\Microsoft\Boot\Bootmgfw.efi}}), "'''EFI Shell'''" ({{ic|\shellx64.efi}}) y "'''EFI Default Loader'''" ({{ic|\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 [[Dual boot with Windows#Fast_Start-Up|Fast Start-Up]].
 
* Recuerde que debe cargar el [[microcode]] de intel con {{ic|initrd}} si procede.
 
* Puede encontrar el identificador {{ic|PARTUUID}} de la partición root con la orden {{ic|1=blkid -s PARTUUID -o value /dev/sd''xY''}}, donde {{ic|''x''}} es la letra del dispositivo, y {{ic|''Y''}} es el número de la partición. Esto solo es necesario para la partición raíz, no para {{ic|''esp''}}.}}
 
  
''bootctl'' buscará los elementos para el menú de arranque en {{ic|''esp''/loader/entries/*.conf}} —cada archivo encontrado debe contener exactamente una entrada de arranque—. Las opciones posibles son:
+
* {{ic|version}} — versión del kernel, que se muestra solamente cuando existan varias entradas con el mismo título. Opcional.
  
* {{ic|title}} – nombre del sistema operativo. '''Necesario.'''
+
* {{ic|machine-id}} — identificador de la máquina desde {{ic|/etc/machine-id}}, que se muestra solamente cuando existan varias entradas con la misma versión y título. Opcional.
  
* {{ic|version}} – versión del kernel, que se muestra solamente cuando existan varias entradas con el mismo título. Opcional.
+
* {{ic|efi}} — programas EFI a iniciar, que se encuentren en la ESP ({{ic|esp}}); por ejemplo, {{ic|/vmlinuz-linux}}. '''Tanto''' este parámetro como {{ic|linux}} (véase a continuación) son '''necesarios.'''
  
* {{ic|machine-id}} – identificador de la máquina desde {{ic|/etc/machine-id}}, que se muestra solamente cuando existan varias entradas con la misma versión y título. Opcional.
+
* {{ic|options}} — opciones de línea de órdenes para pasar al programa EFI o los [[kernel parameters (Español)|parámetros del kernel]]. Opcional, pero es necesario al menos {{ic|1=initrd=''ruta-a-efi''}} y {{ic|1=root=''dev''}} para arrancar Linux.
  
* {{ic|efi}} – programas EFI a iniciar, que se encuentren en la ESP ({{ic|esp}}); por ejemplo, {{ic|/vmlinuz-linux}}. Tanto este como {{ic|linux}} (véase a continuación) son '''necesarios.'''
+
Para el arranque de Linux, también puede usar, en lugar de {{ic|efi}} y {{ic|options}}, la siguiente sintaxis:
 +
* {{ic|linux}} y {{ic|initrd}} seguidos de la ruta relativa de los archivos correspondientes en el ESP; por ejemplo {{ic|/vmlinuz-linux}}; esto se traducirá automáticamente a {{ic|efi ''path''}} y {{ic|1=options initrd=''path''}} —esta sintaxis solo se admite por comodidad y no tiene diferencias en la función—.
  
* {{ic|options}} – opciones de línea de órdenes para pasar al programa EFI. Opcional, pero es necesario al menos {{ic|1=initrd=''ruta-a-efi''}} y {{ic|1=root=''dev''}} para arrancar Linux.
+
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:
 +
{{hc|''esp''/loader/entries/arch.conf|2=
 +
title  Arch Linux
 +
linux  /vmlinuz-linux
 +
initrd  /intel-ucode.img
 +
initrd  /initramfs-linux.img
 +
options root=LABEL=''arch_os'' rw}}
  
Para Linux, puede especificar {{ic|linux ''ruta-a-vmlinuz''}} y {{ic|initrd ''ruta-a-initramfs''}}; esto se traducirá automáticamente en {{ic| ''ruta'' a efi}} y {{ic|1=options initrd=''ruta''}} —esta sintaxis solo es apoyada por eficacia y no altera su función—.  
+
''bootctl'' buscará automáticamente para «'''Windows Boot Manager'''» ({{ic|\EFI\Microsoft\Boot\Bootmgfw.efi}}), «'''EFI Shell'''» ({{ic|\shellx64.efi}}) y «'''EFI Default Loader'''» ({{ic|\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.
  
==== Instalaciones de root estándar ====
+
{{Nota|
 
+
* Si realiza un arranque dual con Windows, se recomienda encarecidamente que desactive la opción predeterminada [[Dual boot with Windows#Fast_Start-Up|Fast Start-Up]].
He aquí un ejemplo de entrada para una partición raíz sin LVM o LUKS:
+
* Recuerde cargar el ''microcódigo'' de Intel con {{ic|initrd}} si procede, se proporciona un ejemplo en [[Microcode#systemd-boot]].
 +
* La partición raíz se puede identificar con su  {{ic|LABEL}} o {{ic|PARTUUID}}. Este último se puede encontrar con la orden {{ic|1=blkid -s PARTUUID -o value /dev/sd''xY''}}, donde {{ic|''x''}} es la letra del dispositivo y {{ic|''Y''}} es el número de partición. Esto es necesario solo para identificar la partición raíz, no la partición {{ic|''esp''}}.
 +
}}
  
{{hc|''esp''/loader/entries/arch.conf|2=
+
{{Sugerencia|
title          Arch Linux
+
*  Las entradas de arranque disponibles que se han configurado pueden enumerarse con la orden {{ic|bootctl list}}.
linux          /vmlinuz-linux
+
* Un archivo de entrada de ejemplo se encuentra en {{ic|/usr/share/systemd/bootctl/arch.conf}}.
initrd        /initramfs-linux.img
+
* Los [[kernel parameters (Español)]] para escenarios como [[LVM (Español)]] o [[dm-crypt (Español)]] se pueden encontrar en sus páginas respectivas.
options        root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
 
 
}}
 
}}
  
Note que, en el ejemplo anterior, {{ic|PARTUUID}}/{{ic|PARTLABEL}} identifica una partición GPT, y difiere de {{ic|UUID}}/{{ic|LABEL}}, que identifica un sistema de archivos. El uso de {{ic|PARTUUID}}/{{ic|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 {{ic|/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 {{ic|LABEL}}s).
+
==== Intérpretes de órdenes de EFI y otras aplicaciones EFI ====
  
{{Sugerencia|Puede encontrar un archivo de ejemplo en {{ic|/usr/share/systemd/bootctl}}.}}
+
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:
  
==== Instalaciones de root sobre LVM ====
+
{{Nota|el parámetro de ruta del archivo para la línea {{ic|efi}} es relativo a su punto de montaje ''esp''. Si está montada en {{ic|/boot}} y los archivos binarios de EFI residen en {{ic|/boot/EFI/xx.efi}} y {{ic|/boot/yy.efi}}, entonces especifique los parámetros como {{ic|efi/EFI/xx.efi}} y {{ic|efi/yy.efi}} respectivamente.}}
  
{{Advertencia|''systemd-boot'' no puede ser utilizado sin un sistema de archivos {{ic|/boot}} separado fuera de LVM.}}
+
Ejemplos de entradas para los cargadores del intérprete de órdenes de UEFI personalizadas:
  
Este es un ejemplo para una partición root utilizando la [[LVM|gestión de volúmenes lógicos (LVM)]]:
+
{{hc|''esp''/loader/entries/uefi-shell-v1-x86_64.conf|
 +
title  UEFI Shell x86_64 v1
 +
efi    /EFI/shellx64_v1.efi
 +
}}
  
{{hc|''esp''/loader/entries/arch-lvm.conf|2=
+
{{hc|''esp''/loader/entries/uefi-shell-v2-x86_64.conf|
title         Arch Linux (LVM)
+
title   UEFI Shell x86_64 v2
linux          /vmlinuz-linux
+
efi    /EFI/shellx64_v2.efi
initrd        /initramfs-linux.img
 
options        root=/dev/mapper/<GrupodeVolúmenes-VolumenLógico> rw
 
 
}}
 
}}
  
Sustituya {{ic|<GrupodeVolúmenes-VolumenLógico>}} con los nombres reales del Grupo de Volúmenes y del Volumen Lógico (por ejemplo {{ic|1=root=/dev/mapper/volgroup00-lvolroot}}). Alternativamente, también es posible utilizar una UUID en su lugar:
+
=== Arrancar con la configuración del firmware de EFI ===
....
 
options  root=UUID=<identificador UUID> rw
 
  
Advierta que {{ic|1=root='''UUID'''=}} es usado en lugar de {{ic|1=root='''PARTUUID'''=}}, que es utilizado para las particiones Root sin LVM o LUKS.
+
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».
  
==== Instalaciones de root cifrado ====
+
=== Preparar los kernels para /EFI/Linux ===
  
Este es un ejemplo de un archivo de configuración para una partición root cifrada ([[Dm-crypt|DM-Crypt / LUKS]]):
+
''/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 {{ic|/etc/os-release}} en un solo archivo . Este archivo se puede firmar fácilmente para «secure boot».
  
{{hc|''esp''/loader/entries/arch-encrypted.conf|2=
+
{{Nota|{{ic|systemd-boot}} requiere que el archivo {{ic|os-release}} contenga bien {{ic|VERSION_ID}} o bien {{ic|BUILD_ID}} para generar una ID y agregar automáticamente la entrada, que el archivo {{ic|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.}}
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 {{ic|PARTUUID}}, si lo desea. También puede remplazar la ruta {{ic|/dev}} con el UUID propio. El {{ic|nombre-dispositivo-mapeado}} será el que quiera ponerle. Vea [[Dm-crypt/System configuration#Boot loader]].
+
Coloque la línea de órdenes del kernel que desea usar en un archivo y cree un archivo de agrupación como este:
  
Si está utilizando LVM, su línea cryptdevice se verá así:
+
{{hc|Kernel packaging command:|2=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"}}
  
{{hc|''esp''/loader/entries/arch-encrypted-lvm.conf|2=
+
Opcionalmente firme el archivo {{ic|''linux''.efi}} producido anteriormente.
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 {{ic|\EFI\arch\grub.efi}}.
+
Copie {{ic|''linux''.efi}} en {{ic|''esp''/EFI/Linux}}.
  
==== Instalaciones de root sobre subvolumen btrfs ====
+
=== Proporcionar soporte para hibernación ===
  
Si se arranca un subvolumen [[btrfs]] como root, modifique la línea {{ic|options}} con {{ic|rootflags<nowiki>=</nowiki>subvol<nowiki>=</nowiki><root subvolume>}}. En el siguiente ejemplo, la raíz se ha montado como un subvolumen btrfs llamado «ROOT» (por ejemplo, {{ic|mount -o subvol<nowiki>=</nowiki>ROOT /dev/sdxY /mnt}}):
+
Véase [[Suspend and hibernate]].
 
 
{{hc|''esp''/loader/entries/arch-btrfs-subvol.conf|2=
 
title          Arch Linux
 
linux          /vmlinuz-linux
 
initrd        /initramfs-linux.img
 
options        root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw rootflags<nowiki>=</nowiki>subvol<nowiki>=</nowiki>ROOT
 
}}
 
 
 
Si no se hace según se ha indicado, dará como resultado el siguiente mensaje de error: {{ic|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:
 
  
{{hc|''esp''/loader/entries/uefi-shell-v1-x86_64.conf|2=
+
=== Proteger con contraseña el editor de parámetros del kernel ===
title  UEFI Shell x86_64 v1
 
efi    /EFI/shellx64_v1.efi
 
}}
 
  
{{hc|''esp''/loader/entries/uefi-shell-v2-x86_64.conf|2=
+
Alternativamente, puede instalar {{AUR|systemd-boot-password}} que admite {{ic|password}} como opción de configuración básica. Utilice {{ic|sbpctl generate}} para generar un valor para esta opción.
title  UEFI Shell x86_64 v2
 
efi    /EFI/shellx64_v2.efi
 
}}
 
  
{{Expansion|Add example on how to boot into EFI firmware setup.}}
+
Instale ''systemd-boot-password'' con la siguiente orden:
  
=== Soporte para hibernación ===
+
{{bc|1=# sbpctl install ''esp''}}
  
Véase [[Suspend and hibernate]].
+
Con el editor activado, se le solicitará su contraseña antes de poder editar los parámetros del kernel.
  
== Teclas dentro del menú de arranque ==
+
== Teclas utilizadas en el menú de arranque ==
  
 
Las siguientes teclas se utilizan dentro del menú:
 
Las siguientes teclas se utilizan dentro del menú:
Line 208: Line 211:
 
* {{ic|w}} - Windows
 
* {{ic|w}} - Windows
 
* {{ic|a}} - OS X
 
* {{ic|a}} - OS X
* {{ic|s}} - Shell EFI
+
* {{ic|s}} - Shell de EFI
 
* {{ic|1-9}} - número de entrada
 
* {{ic|1-9}} - número de entrada
  
 
== Solución de problemas ==
 
== Solución de problemas ==
  
=== Entrada manual utilizando efibootmgr ===
+
=== 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 {{ic|''esp''/EFI/systemd/systemd-bootx64.efi}} (o {{ic|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 {{ic|bootctl install}} falla, puede crear una entrada de arranque EFI manualmente con la utilidad {{Pkg|efibootmgr}}:
  
Si la orden {{ic|bootctl install}} cfalla, puede crear una entrada de arranque EFI manualmente con la utilidad {{Pkg|efibootmgr}}:
+
# efibootmgr -c -d /dev/sdX -p Y -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"
  
# efibootmgr -c -d /dev/sdX -p Y -l /EFI/systemd/systemd-bootx64.efi -L "Linux Boot Manager"
+
Donde {{ic|/dev/sdXY}} es la [[EFI system partition (Español)]].
  
Donde {{ic|/dev/sdXY}} es la [[EFI system partition]].
+
{{Nota|la ruta a la imagen EFI debe usar la barra invertida ({{ic|\}}) como separador.}}
  
 
=== El menú no aparece después de actualizar Windows ===
 
=== El menú no aparece después de actualizar Windows ===
Line 228: Line 245:
  
 
* http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
 
* http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
 +
* https://github.com/systemd/systemd/tree/master/src/boot/efi

Revision as of 21:45, 20 December 2018

Estado de la traducción
Este artículo es una traducción de systemd-boot, revisada por última vez el 2018-12-20. Si advierte que la versión inglesa ha cambiado puede ayudar a actualizar la traducción, bien por usted mismo o bien avisando al equipo de traducción.

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

espse 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-hookAUR 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 el manual de loader.conf 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 Fast Start-Up.
  • Recuerde cargar el microcódigo de Intel con initrd si procede, se proporciona un ejemplo en Microcode#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/sdxY, 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 Suspend and hibernate.

Proteger con contraseña el editor de parámetros del kernel

Alternativamente, puede instalar systemd-boot-passwordAUR 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