# Gummiboot (Español)

Artículos relacionados

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

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

- http://freedesktop.org/wiki/Software/gummiboot/

Category:

- Boot loaders (Español)