systemd-boot (Español)

From ArchWiki
(Redirected from Gummiboot (Español))
Jump to: navigation, search

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 (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), 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 LABELs).

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

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

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