Systemd-boot (Español)

From ArchWiki
Revision as of 09:25, 4 December 2014 by Pedro (talk | contribs) (Nueva traducción al español)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

De la página principal de gummiboot:

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.

Es fácil de configurar, pero solo puede iniciar ejecutables EFI, EFISTUB del kernel de Linux , Shell UEFI, grub.efi, y similares.

Advertencia: gummiboot 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 (Español), Syslinux (Español) o ELILO.
Nota: En todo el artículo, $esp hace referencia al punto de montaje de la EFI System Partition conocida como ESP.

Instalación

En primer lugar, asegúrese de que arranca en modo UEFI para que las variables EFI estén accesibles, que la partición del sistema EFI se monta correctamente y que su kernel e initramfs se copian en ESP, ya que, de otro modo, gummiboot no cargará los binarios EFI ubicados en otras particiones. Es altamente recomendable montar ESP en /boot si utiliza gummiboot.

Después, instale el paquete gummiboot disponible en los repositorios oficiales.

Por último, escriba la orden siguiente para copiar el binario gummiboot a la partición del sistema EFI y así añadir gummiboot como la aplicación por defecto EFI (entrada de inicio por defecto) para que se cargue por el EFI Boot Manager. Si no ha arrancado en modo UEFI y las variables EFI no están accesibles, la entrada de arranque creada fallará. Sin embargo, todavía podrá ser capaz de arrancar gummiboot copiando el binario gummiboot a la ubicación del binario EFI por defecto en su ESP ($esp/EFI/boot/bootx64.efi en sistemas x64) a menos que una aplicación EFI que no sea gummiboot ya está presente con el mismo nombre de archivo.

# gummiboot --path=$esp install

Actualización

gummiboot asume que EFI System Partition se monta en /boot, en cuyo caso, cada vez que una nueva versión gummiboot esté disponible, la orden gummiboot --path=$esp update será llamada automáticamente por el método post_install del script de instalación. Si la ESP no está montada en /boot, tendrá que ajustar manualmente esta orden.

Configuración

Configuración básica

La configuración básica se mantiene en $esp/loader/loader.conf, con solo dos 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.

Ejemplo:

$esp/loader/loader.conf
default  arch
timeout  4

Tenga en cuenta que ambas opciones se pueden cambiar en el mismo menú de arranque, que se almacenará como variables de EFI.

Nota: Si no se ha configurado ningún tiempo de espera y no se pulsa ninguna tecla durante el arranque, la entrada por defecto se ejecutará de inmediato.

Añadir entradas de arranque

gummiboot busca los items 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—.

Puede encontrar la PARTUUID de sus dispositivos con la orden blkid -s PARTUUID -o value /dev/sdxx (/dev/sdxx debe ser su partición raíz y no $esp)

Una entrada de ejemplo para Arch Linux:

$esp/loader/entries/arch.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw

Tenga en cuenta que, en el ejemplo anterior, PARTUUID/PARTLABEL identifica una partición de una tabla de particionado GPT, y difiere de la UUID/LABEL, que identifica un sistema de archivos. Utilizar PARTUUID/PARTLABEL es ventajoso porque es invariante si reformatea la partición con otro sistema de archivos o el mapeado /dev/sd* cambia por alguna razón. También es útil si la partición en cuestión no tiene un sistema de archivos (o se utiliza LUKS, que no admite etiquetas).

Un ejemplo de entrada para la raiz (root) encriptada (dm-crypt con LUKS)

$esp/loader/entries/arch-encrypted.conf
title          Arch Linux (Encrypted)
linux          /ruta/a/vmlinuz-linux
options        initrd=/ruta/a/initramfs-linux.img cryptdevice=UUID=<UUID>:luks-<UUID> root=UUID=<luks-UUID> rw

En el ejemplo de cifrado, advierta que initrd está en options —esto no parece ser discrecional en este momento—. También tenga en cuenta que en este ejemplo se utiliza UUID. PARTUUID debe ser capaz de reemplazar UUID, si así se desea.

También puede agregar otros programas EFI como \EFI\arch\grub.efi.

Nota: gummiboot comprobará automáticamente «Windows Boot Manager» (\EFI\Microsoft\Boot\Bootmgfw.efi), «EFI Shell» (\shellx64.efi) y «EFI Default Loader» (\EFI\Boot\bootx64.efi), y mostrará las entradas para ellos si están presentes, por lo que no tiene que crear manualmente las entradas para los mismos. Sin embargo, no autodetecta otras aplicaciones EFI (a diferencia de rEFInd), por lo que para arrancar el kernel, deben crearse manualmente las entradas de configuración como se mencionó anteriormente.

Añadir seguridad

Hay que señalar que los parámetros de la línea de órdenes del kernel se pueden editar desde el menú del gestor de arranque de gummiboot (ver #Teclas) pulsando e. Esto supone un importante problema de seguridad, ya que si se redefine el argumento del kernel init= con init=/bin/bash por ejemplo, esto va a hacer que la máquina arranque directamente como root sin pedir ninguna contraseña, puenteandose fácilmente la contraseña de root que haya sido definida previamente. gummiboot actualmente no tiene una función para configurar contraseñas y no tiene capacidad para prevenir los cambios de los parámetros del kernel, por tanto, es necesario asegurarse de establecer una contraseña a nivel de hardware (UEFI/BIOS) que impida que el equipo arranque si no se ha introducido la contraseña correcta.

Dado que la seguridad es de varios niveles y el acceso físico ya rompe cualquier sistema de seguridad, tal vez el cifrado de su disco con dm-crypt sería muy útil, sobre todo si el equipo es un portátil. Pero esto es un problema de otro tema, que no concierne a gummiboot.

Soporte para hibernación

Remítase al artículo Suspend and hibernate, especialmente a ejemplo para gummiboot.

Dentro del menú de arranque

Teclas

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 gummiboot 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 usando efibootmgr

Si la orden gummiboot install falla, puede crear una entrada de arranque EFI manualmente con la utilidad efibootmgr:

# efibootmgr -c -d /dev/sdX -p Y -l /EFI/gummiboot/gummibootx64.efi -L "Gummiboot"

Donde /dev/sdXY es la partición Efisys.

El menú no aparece después de la actualización de Windows

Por ejemplo, si se ha actualizado de Windows 8 a Windows 8.1, y ya no se ve un menú de arranque después de la actualización (es decir, Windows se inicia de inmediato):

  • Asegúrese de que Secure Boot (en la configuración de la BIOS) y Fast Startup (valor de la opción de energía de Windows) están desactivados.
  • Asegúrese de que su BIOS prefiere Linux Boot Manager antes que Windows Boot Manager (dependiendo de su BIOS, esto podría aparecer bajo una configuración de Hard Disk Drive Priority).

Referencias