GRUB2

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page GRUB2 and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎日本語 • ‎한국어 • ‎polski • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎

GRUB2 (GRand Unified Bootloader versión 2) es un reemplazo del cargador de arranque GRUB original, ahora denominado "GRUB Legacy". GRUB2 tiene una base de código totalmente independiente respecto a GRUB Legacy y presenta una nueva sintaxis tipo intérprete de órdenes para características avanzadas similares a los guiones.

Para una primera aproximación, vea GRUB2 Quick Start.

Si se va a realizar la migración desde GRUB Legacy a GRUB2, leer la migración de GRUB2.

Instalación

El paquete sys-boot/grub viene integrado con ambas versiones. Tanto grub-0.97 (GRUB Legacy) como grub-2.00 se pueden instalar conjuntamente en el sistema, sin embargo, solo una de las versiones de GRUB se puede instalar a la vez en el Registro Maestro de Arranque (Master Boot Record o MBR) de un disco duro.

Requisitos previos

Para controlar en qué plataformas se instalará GRUB2, definir la variable GRUB_PLATFORMS en make.conf. La arquitectura amd64 incluye un perfil por defecto que funciona en la mayoría de sistemas.

ARCHIVO /etc/portage/make.confEjemplo de configuración de la variable GRUB_PLATFORMS para plataformas EMU, EFI y PC
GRUB_PLATFORMS="emu efi-32 efi-64 pc"

Las siguientes plataformas son compatibles dependiendo de la CPU de destino:

Target
Platform i386 ia64 mips mipsel powerpc spac64 x86_64
arc No No No Yes No No No
coreboot Yes No No No No No 32-bit
efi Yes Yes No No No No Yes
emu Yes Yes Yes Yes Yes Yes Yes
ieee1275 Yes No No No Yes Yes 32-bit
loongson No No No Yes No No No
multiboot Yes No No No No No 32-bit
qemu Yes No No No No No 32-bit
qemu-mips No No Yes No No No No
pc Yes No No No No No 32-bit
Nota
Cada vez que se ajusten los valores de la variable GRUB_PLATFORMS, se necesita hacer emerge de nuevo de GRUB2 para construir el binario modificado. Asegúrese de utilizar las opciones --newuse --deep tal y como se muestra en la sección sobre emerge más abajo.

Los perfiles amd64 habilitan el soporte por defecto para la funcionalidad (U)EFI. Cuando se utiliza un sistema basado en BIOS, definir la variable GRUB_PLATFORMS a pc para evitar dependencias no necesarias.

Ajustes USE

USE flags for sys-boot/grub GNU GRUB boot loader

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces global
device-mapper Enable support for device-mapper from sys-fs/lvm2 local
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally global
efiemu Build and install the efiemu runtimes local
fonts Build and install fonts for the gfxterm module local
libzfs Enable support for sys-fs/zfs local
mount Build and install the grub-mount utility local
multislot Allow concurrent installation of sys-boot/grub SLOT 0 and sys-boot/grub SLOT 2 by renaming all programs. local
nls Add Native Language Support (using gettext - GNU locale utilities) global
sdl Add support for Simple Direct Layer (media library) global
static !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically global
test Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore global
themes Build and install GRUB themes (starfield) local
truetype Build and install grub-mkfont conversion utility local

Emerge

Para instalar GRUB2 utilice la sintaxis normal de emerge:

root #emerge --ask --newuse --deep sys-boot/grub:2

Software adicional

Opcionalmente, puede instalar la utilidad os-prober (proporcionada por el paquete sys-boot/os-prober) para que GRUB2 explore la presencia de otros sistemas operativos al ejecutar la orden grub-mkconfig. En la mayoría de los casos, esto permitirá a GRUB2 detectar automáticamente otros sistemas operativos incluyendo Windows 7, 8.1, 10, otras distribuciones de Linux, etc.

root #emerge --ask --newuse sys-boot/os-prober

Las instalaciones de GRUB2 (y opcionalmente sys-boot/os-prober) no activan automáticamente el cargador de arranque. Esta acción solo instala el software en el sistema operativo, pero para instalar el cargador de arranque para el propio sistema (para usarlo para arrancar el sistema), deben realizarse algunos pasos adicionales, que se tratan en la sección Configuración.

Configuración

Hay dos aspectos importantes ha tener en cuenta en la configuración de GRUB2:

  1. La instalación del software GRUB2 como cargador de arranque del sistema.
  2. La configuración del propio cargador de arranque GRUB2.

La instalación del software GRUB2 es específico según el tipo de sistema, y se trata en instalar el cargador de arranque. Primero trataremos la configuración del propio cargador de arranque.

Fichero principal de configuración

El guión grub-mkconfig se utiliza para generar un fichero de configuración de grub. Este utiliza los guiones contenidos en /etc/grub.d/* junto con el fichero de configuración /etc/default/grub para generar el fichero /boot/grub/grub.cfg final —el único fichero de configuración utilizado por el propio GRUB2—.

Fichero Formato ¿Recomendada su edición? Descripción
/usr/sbin/grub-mkconfig Guión de intérprete de órdenes POSIX No Se instala como parte del paquete sys-boot/grub:2. Lance este guión para generar /boot/grub/grub.cfg una vez se hayan configurados los ficheros descritos abajo.
/boot/grub/grub.cfg Guión de intérprete de órdenes GRUB2 No El fichero generado por grub-mkconfig. El guión intérprete incluido en GRUB2 evalúa este fichero y no soporta necesariamente todas las órdenes o sintaxis POSIX. Lea la referencia sobre los guiones en el manual de GRUB para conocer las características soportadas. Tenga en cuenta que las modificaciones a este fichero no serán persistentes hasta la próxima vez que se lance grub-mkconfig.
/etc/grub.d/* Guiones de intérprete de órdenes POSIX Maybe Cada guión en /etc/grub.d/* con el bit de ejecución activado se evalúa en secuencia y su salida estándar se concatena para formar el fichero final /boot/grub/grub.cfg (o el fichero que se haya indicado a grub-mkconfig a través de la opción -o). Estos guiones utilizan el intérprete de órdenes actual del sistema y por tanto puede utilizar cualquier sintaxis soportada. Idealmente deberían ser guiones compatibles POSIX y el guión de salida debe ser compatible con el intérprete GRUB2. Puede ser necesario deshabilitar o añadir guiones. Por ejemplo, para añadir entradas de menú que no se pueden generar de forma automática.
/boot/grub/custom.cfg Guión de GRUB2 shell Maybe El guión /etc/grub.d/41_custom referenciará a este fichero para su lectura en el inicio si éste existe. Este fichero ofrece un lugar en el que se pueden añadir entradas adicionales u órdenes y no requiere la regeneración del fichero principal grub.cfg.
/etc/default/grub Guión de intérprete de órdenes POSIX Yes En la mayoría de los casos, este es el único fichero que se debe modificar de forma directa. Se utiliza principalmente para asignar variables utilizadas en los guiones de /etc/grub.d para generar un fichero de configuración que funcione. Lea el artículo sobre GRUB2 variables de configuración o la referencia oficial para conocer las variables soportadas.

GRUB2 no requiere, a priori, intervención manual para configurar las opciones de arranque (como es el caso de cargadores de arranque tales como GRUB Legacy y LILO). En su lugar, puede generar su fichero de configuración (/boot/grub/grub.cfg) utilizando la orden grub2-mkconfig. Esta utilidad usa los guiones que residen en el directorio /etc/grub.d/ y los ajustes realizados en el fichero /etc/default/grub.

Advertencia
La utilidad grub-mkconfig no funciona correctamente cuando se utiliza RAID por software. Es necesaria una configuración manual de los guiones ubicados en /etc/grub.d/, ya que, de lo contrario, después de la instalación, el sistema queda en un estado tal que no puede arrancar.

Después de realizar uno o varios ajustes en la configuración, debe ejecutar la utilidad grub-mkconfig con la opción -o para que apunte al fichero de salida situado en /boot/grub/grub.cfg (esta es la ubicación de salida por defecto de GRUB2):

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.3.0-gentoo
done

Cada vez que la utilidad grub-mkconfig es invocada, se genera una nueva configuración del fichero.

Advertencia
Si grub-mkconfig no informa haber encontrado alguna entrada, entonces no habrá entradas en el menú. En este caso, GRUB2 ofrecerá selecciones sin arranque cuando reinicie el sistema, que puede abocar a una situación difícil de resolver. Por tanto, asegúrese de que la salida es satisfactoria antes de reiniciar el sistema.

Definir los parámetros de la configuración

Las siguientes variables en /etc/default/grub son algunas de las más comunes de definir para controlar cómo funcionará GRUB2:

Variable Explicación Valor por defecto
GRUB_DEFAULT Define la entrada del menú seleccionada por defecto en el arranque. Puede ser un índice numérico, un título de menú, o «rescatar». Predeterminado para detectar la primera entrada.
GRUB_TIMEOUT Indica la demora (en segundos) antes de arrancar la entrada predeterminada del menú. Establezca 0 para arrancar inmediatamente o -1 para esperar indefinidamente. El valor por defecto es 5 segundos.
GRUB_CMDLINE_LINUX Parámetros que se pasan a la línea de órdenes del núcleo para todas las entradas del menú de Linux. Por ejemplo, para dar soporte a la hibernación, los usuarios tendrán que añadir GRUB_CMDLINE_LINUX="resume=/dev/sdXY" donde /dev/sdXY será la partición swap.
GRUB_CMDLINE_LINUX_DEFAULT Parámetros que se pasan a la línea de órdenes del núcleo para las entradas del menú de Linux no recuperables.
GRUB_DEVICE Es el dispositivo root de inicio (es decir, el parámetro root= del núcleo). Ajuste esta opción para anular la detección automática del dispositivo root realizada por la orden grub-mkconfig. Por ejemplo, GRUB_DEVICE=/dev/ram0 obligará a que root=/dev/ram0 sea utilizado en la línea de órdenes del núcleo.

Para obtener una lista más completa, consulte la subpágina de las variables de configuración de GRUB2.

Después de modificar los parámetros, genere el fichero de configuración de GRUB2 con grub-mkconfig.

Activar o desactivar los guiones de configuración

El directorio /etc/grub.d/ contiene los guiones que grub-mkconfig utiliza para generar un fichero grub.cfg. Por defecto, el contenido de este directorio debe ser similar al siguiente:

user $ls /etc/grub.d/
00_header  10_linux  20_linux_xen  30_os-prober  40_custom  41_custom README

GRUB2 utilizará todos los guiones instalados que estén marcados como ejecutables (que, por defecto, lo están todos). Para desactivar cualquiera de los scripts, simplemente quite el bit de ejecución de los permisos del fichero del script, utilizando la orden chmod. En el siguiente ejemplo, cada script, salvo 00_header y 10_linux, serán desactivados:

root #chmod -x /etc/grub.d/{20_linux_xen,30_os-prober,40_custom,41_custom}

Después de modificar los guiones (o quitar el bit de ejecución), genere el fichero de configuración GRUB2 utilizando grub-mkconfig.

Manipular los guiones de configuración

Algunas de las características o funcionalidades de GRUB2 solo es posible desarrollarlas mediante la modificación de los guiones de configuración. Por ejemplo, para permitir el arranque dual con FreeBSD, es necesario realizar las siguientes modificaciones.

Cambiar el guión /etc/grub.d/40_custom como sigue:

ARCHIVO /etc/grub.d/40_customAñadir una entrada para arranque dual
menuentry "FreeBSD" --class freebsd --class bsd --class os {
 insmod ufs2
 insmod bsd
 set root=(hd0,1)
 kfreebsd /boot/kernel/kernel
 kfreebsd_loadenv /boot/device.hints
 set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
 set kFreeBSD.vfs.root.mountfrom.options=rw
 set kFreeBSD.hw.psm.synaptics_support=1
}

/dev/sda1 o (hd0,1) es la partición en la que reside FreeBSD. Si se utilizó la instalación normal de UFS para la partición de FreeBSD, entonces /dev/sda1 será un contenedor (algo así como una partición lógica). Este comprende la partición de intercambio y la raíz. Verifique con ls -la /etc/grub.d/40_custom que el guión 40_custom es ejecutable. Si el bit de ejecución no está establecido, entonces, configúrelo con la orden chmod u+x 40_custom.

Nota
Los usuarios familiarizados con la numeración de particiones que realiza GRUB Legacy deberían tener en cuenta que los números de particiones en GRUB2 comienzan por 1 no por 0.

A continuación, instale GRUB2 con la orden grub-install y actualice el fichero de configuración de GRUB2:

root #grub-install /dev/sda
root #grub-mkconfig -o /boot/grub/grub.cfg

Instalar el cargador de arranque

La instalación de GRUB2 como cargador de arranque del sistema dependerá de cómo se pretende arrancar el sistema (a través de BIOS o UEFI) y de cómo está particionado el disco en el que se va a instalar el cargador (con un esquema de particionado MBR o GPT).

Este artículo trata las siguientes situaciones:

Seleccione las instrucciones de instalación adecuadas para su sistema.

BIOS con MBR

Nota
Cuando se tiene pensado configurar el sistema para un arranque dual con Microsoft Windows, asegúrese de que el propio sistema no tenga un firmware UEFI. En estos casos, aún cuando dichos sistemas se inicien en la modalidad 'legacy BIOS' , Microsoft Windows se negará a arrancar.

Asegúrese de que la ubicación del directorio /boot está disponible —si este directorio utiliza una partición separada, asegúrese de que se monta—:

root #mount /boot

Ejecute la orden grub-install para copiar los ficheros relevantes a /boot/grub. En la plataforma PC, esta orden también instala una imagen de arranque en el Master Boot Record (MBR) o en el sector de arranque de una partición. Si todo va bien, después de ejecutar la orden grub-install se obtendrá una salida como esta:

root #grub-install /dev/sda
Installation finished. No error reported.

grub-install acepta una opción --target para definir la arquitectura de la CPU y la plataforma del sistema. Si no se especifica, grub-install intentará adivinar los valores adecuados; en un sistema amd64/x86 usará i386-pc por defecto. grub-install también acepta una opción --boot-directory que le dice al instalador de GRUB2 en qué directorio debe buscar los ficheros de arranque de grub2. Por defecto, será el directorio /boot presente, pero dicha opción es útil cuando se está tratando de mover una partición root.

Particionar para BIOS con MBR

Asegúrese de dejar suficiente espacio libre antes de la primera partición. Inicie la primera partición en el sector 2048, dejando, al menos, 1 MiB de espacio en el disco para el registro de arranque maestro (MBR). Se recomienda (aunque no es obligatorio) crear una partición adicional para GRUB llamada BIOS boot partition. Esta partición solo necesita ser definida, pero no formateada. Esto es necesario solamente si el sistema es posteriormente migrado a una tabla de particiones GPT. Cuando nos mantenemos con MBR, no es necesario.


Si el usuario está siguiendo las instrucciones de instalación de Gentoo, esta partición BIOS boot partition ya estará disponible.

BIOS con GPT

Nota
Cuando se tiene pensado configurar el sistema para un arranque dual con Microsoft Windows, asegúrese de que el propio sistema no tenga un firmware UEFI. Aún cuando dichos sistemas se inicien en la modalidad 'legacy BIOS' , Microsoft Windows se negará a arrancar. Además, los sistemas Microsoft Windows anteriores no tienen soporte para GPT. En estos casos es posible utilizar un enfoque MBR-GPT híbrido, ver Hybrid partition table.

Si una partición /boot es necesaria, comience por el montaje de la partición /boot:

root #mount /boot

Si todo va bien, después de ejecutar la orden grub-install se obtendrá una salida como esta:

root #grub-install /dev/sda
Installation finished. No error reported.

grub-install acepta una opción --target para definir la arquitectura de la CPU y la plataforma del sistema. Si no se especifica, grub-install intentará adivinar los valores adecuados; en un sistema amd64/x86 usará i386-pc por defecto. grub-install también acepta una opción --boot-directory que le dice al instalador de GRUB2 en qué directorio debe buscar los ficheros de arranque del GRUB2. Por defecto, será el directorio /boot presente, pero es útil cuando se trata de mover una partición root.

Particionar para BIOS con GPT

Cuando una tabla de particiones GPT está presente en el sistema, una pequeña partición llamada BIOS boot partition (con tipo EF02, que es diferente de la partición EFI System Partition (ESP) que tiene el tipo EF00) tendrá que estar disponible. 1 MiB será suficiente para que funcione, pero 2-4 MiB es una opción segura. Esta partición BIOS boot partition sostendrá la etapa 2 del cargador de arranque. BIOS boot partition no necesita ser formateada con un sistema de ficheros; la orden grub2-install sobrescribe cualquier sistema de ficheros preexistente con el suyo propio.

Importante
La partición de arranque de la BIOS («BIOS boot partition») no es la misma partición que se monta, comúnmente, en /boot. La partición /boot y la partición de arranque de la BIOS son diferentes particiones y deben manejarse por separado. La partición de arranque de la BIOS no se monta con regularidad en el sistema (es decir, no debe ser definida en /etc/fstab). La partición /boot se puede montar con regularidad, sin problemas, por lo que puede estar presente en el fichero /etc/fstab.

Para configurar una partición como BIOS boot partition utilice la herramienta de línea de órdenes parted (sys-block/parted) escribiendo lo que sigue (cambie 1 por el número que corresponda a su partición, la cual se marcará como BIOS boot partition):

(parted)set 1 bios_grub on

Con la utilidad cgdisk del paquete sys-apps/gptfdisk, esto se logra estableciendo el tipo de partición como 0xEF02 y etiquetándola como gptbios.

No se necesita una partición del sistema EFI, pero sería prudente asegurarse de que la partición de arranque BIOS es lo suficientemente grande como para ser convertida en una de ellas, dado que la placa base del sistema puede actualizarse posteriormente a una placa UEFI.

La salida de abajo resulta de pulsar la tecla p con la utilidad gdisk en un disco particionado con GPT, válido tanto para una BIOS boot partition [0xEF02], como para una partición EFI [0xEF00]:

root #gdisk /dev/sdc
GPT fdisk (gdisk) version 0.8.1
 
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
 
Found valid GPT with protective MBR; using GPT.
 
Command (? for help): p
Disk /dev/sdc: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): AA369F4D-37A4-4C0D-A357-DC24B99A6337
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
 
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       828377087   395.0 GiB   8E00  Linux LVM
   2       828377088       891291647   30.0 GiB    0700  Microsoft basic data
   3       891291648       975177727   40.0 GiB    0700  Microsoft basic data
   4       975177728       976754687   770.0 MiB   8300  Linux filesystem
   5       976754688       976756735   1024.0 KiB  EF02  BIOS boot partition
   6       976756736       976773134   8.0 MiB     EF00  EFI System
 
Command (? for help): 
Nota
El prefijo hexadecimal 0x no necesita ser introducido para GPT cuando se utiliza fdisk.

Utilizando la misma configuración, la utilidad parted proporciona una salida con una sintaxis un poco diferente:

root #parted /dev/sdc
GNU Parted 3.0
Using /dev/sdc
(parted) print
...
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number  Start   End    Size    File system  Name                  Flags
 1      1049kB  424GB  424GB                Linux LVM             lvm
 2      424GB   456GB  32.2GB               Microsoft basic data
 3      456GB   499GB  42.9GB               Microsoft basic data
 4      499GB   500GB  807MB   ext2         Linux filesystem
 5      500GB   500GB  1049kB               BIOS boot partition   bios_grub
 6      500GB   500GB  8396kB               EFI System            boot
  
(parted)

Crear particiones con gdisk es sencillo para los usuarios que ya están familiarizados con la utilidad de particionado fdisk. Después de iniciar gdisk, escriba n (para nueva) en el menú principal, proporcione los sectores de inicio y fin (si es necesario) y, a continuación, establezca el tipo de partición EF00 para una EFI system partition.

Los usuarios que han seguido las instrucciones de instalación de Gentoo ya tendrán el diseño de las particiones adecuado para este propósito.

UEFI con GPT

Asegúrese de que la ubicación del directorio /boot está disponible —si este directorio utiliza una partición separada, asegúrese de que se monta—:

root #mount /boot

Ejecute la orden grub-install para copiar los ficheros relevantes a /boot/grub. Esto debería instalar GRUB2 en /boot/grub, copiar la imagen del núcleo a /boot/efi/EFI/gentoo/grubx64.efi, y llamar a efibootmgr para añadir una entrada de arranque.

root #grub-install --efi-directory=/boot/efi
Installation finished. No error reported.

La órden anterior asume que una Partición EFI del sistema (ESP) vfat está montada en /boot/efi. Si la ESP está montada directamente en /boot, use --efi-directory=/boot.

grub-install también acepta la opción --target para definir la arquitectura de la CPU y el sistema de la plataforma. Si no se especifica, grub-install intentará encontrar los valores adecuados; en un sistema AMD64 iniciado con UEFI usará por defecto x86_64-efi. grub-install también acepta la opción --boot-directory para decirle al instalador de GRUB2 en que directorio debe buscar los archivos de arranque de GRUB2. Por defecto es /boot pero es útil cuando se intenta mover una partición raíz.

Particionar para UEFI con GPT

Para arrancar UEFI GPT con GRUB2, el sistema debe tener una partición EFI dedicada que contenga un sistema de ficheros FAT.

La partición EFI puede reemplazar una partición /boot que se tenga, por ejemplo, en /dev/sda1, con una partición /boot/efi en /dev/sda1. Esto quiere decir que un escenario de arranque UEFI exitoso con GRUB2 puede operar con dos particiones en total (tres si se necesita una partición swap): una partición raíz y una partición EFI. Utilizando esta configuración, la carpeta /boot se encontrará ubicada en la partición root / (en /boot) y la partición EFI montada en la carpeta boot (en /boot/efi). Para más aclaración, véase el ejemplo del fichero /etc/fstab siguiente.

ARCHIVO /etc/fstabEjemplo de un fichero /etc/fstab que funciona con UEFI con una partición de intercambio:
/dev/sda1		/boot/efi	vfat		noauto,noatime	1 2
/dev/sda2		none		swap		sw		0 0
/dev/sda3		/		ext4		noatime		0 1

Cree una partición de 100 MB para /boot/efi, la cual debe proporcionar suficiente espacio para alojar múltiples ficheros

  • .efi (lo más probable es que no se necesiten varias entradas, la mayoría de los sistemas solo utilizará una).

Cree la partición utilizando la herramienta elegida de particionado. Las herramientas gdisk (sys-apps/gptfdisk) y parted (sys-block/parted) encajan muy bien para este propósito. Cuando se utiliza la utilidad gdisk, asegúrese de marcar la partición con el tipo EF00.

Proceda a crear un sistema de ficheros FAT en la partición del sistema EFI mediante mkfs.fat y añádala a /etc/fstab siguiendo el ejemplo siguiente:

root #mkfs.fat -F 32 -n efi-boot /dev/sda1
root #mkdir /boot/efi
ARCHIVO /etc/fstabAñadir entrada de montaje de /boot/efi
/dev/sda1		/boot/efi	vfat		noauto,noatime	1 2
root #mount /boot/efi
Nota
La siguiente opción es útil para establecer la variable GRUB_PLATFORMS en /etc/portage/make.conf. Ayudará a GRUB2 a determinar qué opciones utilizar a la hora de detectar el objetivo EFI adecuado. Para los sistemas UEFI de 32 bits utilice efi-32. Para 64-bit utilice efi-64.
Importante
Con el fin de realizar una correcta instalación de GRUB2, el directorio EFI debe estar montado y el módulo del núcleo efivars debe estar cargado antes de ejecutar la orden grub-install para que esta se complete con éxito.

Alternativa: utilizar la ubicación del firmware de UEFI

Si el firmware UEFI del sistema no puede encontrar el fichero del cargador de arranque EFI de GRUB2, utilizar la ubicación del cargador de arranque por defecto debería proporcionar una solución funcional. Esto elude el menú de arranque gestionado por efibootmgr y, por lo tanto, ofrece una funcionalidad reducida, pero es menos propenso a errores. De no hacerlo así, compruebe que la partición EFI se monta en /boot/efi y luego copie el fichero grubx64.efi, que se encuentra en /boot/efi/EFI/gentoo/grubx64.efi, a /boot/efi/EFI/BOOT/BOOTX64.EFI. Este ejemplo es para un sistema EFI de 64-bit, ajústelo en consecuencia para los sistemas de EFI 32 bits.

Características extendidas

GRUB2 tiene muchas características que lo convierten en un poderoso cargador de arranque. Es compatible con:

  • Arranque desde plataformas UEFI.
  • Arranque desde unidades particionadas con GPT sin necesidad de un MBR híbrido (el MBR híbrido puede activarse, según sea necesario, para proporcionar compatibilidad o portabilidad).
  • Arranque desde una partición /boot formateada con btrfs.
  • Arranque desde un grupo ZFS.
  • Arranque directamente desde un conjunto RAID btrfs sin necesitar un initramfs para configurar montaje temprano.
  • Arranque directamente desde volúmenes lógicos (como LVM2).
  • Arranque con soporte para DM-RAID (RAID 0, 1, 4, 5, 6, 9 y 10).
  • Arranque desde dispositivos cifrados (LUKS).

Algunas características se explican con más detalle a continuación.

Cargar en cadena

GRUB2 fue construido con un modo de carga en cadena (chainload) verdaderamente mejorado en comparación con su predecesor GRUB Legacy. Para enlazar con otro cargador de arranque, utilice la opción chainloader.

ARCHIVO /etc/grub.d/40_customEncadenar la carga de otro gestor de arranque
menuentry "Ejemplo de Super Cargador de Arranque Personalizado" {
     insmod part_msdos
     insmod chain
     chainloader (hd1,1)+1
}

Para obtener más información sobre la carga en cadena, consulte la subpágina Chainloading.

Utilizar framebuffer de pantalla

Para que GRUB2 utilice un framebuffer de pantalla gráfica, vuelva a ejecutar emerge de GRUB con el ajuste truetype de USE activado. Esto instalará una tipografía True Type por defecto, así como una utilidad de conversión del tipo de letra.

root #emerge --ask --newuse sys-boot/grub:2

Proceda a configurar el fichero de configuración por defecto de GRUB2 ubicado en /etc/default/grub. Por ejemplo:

ARCHIVO /etc/default/grubAjustes relacionados con framebuffer
# Ajustar resolución y profundidad del color
GRUB_GFXMODE=1366x768x32
 
# Mantener resolución cuando se carga el núcleo
GRUB_GFXPAYLOAD_LINUX=keep
 
# Definir una imagen de fondo
GRUB_BACKGROUND="/boot/grub/bg.png"
 
# Utilizar una tipografía personalizada, convertida con la utilidad grub-mkfont
GRUB_FONT="/boot/grub/fonts/roboto.pf2"

Con el fin de averiguar qué modos de visualización soporta la tarjeta gráfica del sistema, utilice las siguientes órdenes en la shell de GRUB2:

(grub)insmod all_video
(grub)videoinfo

Solución de problemas

La mayoría de los problemas se pueden resolver al asegurar un esquema de particionado correcto. Mantenga suficiente espacio disponible antes de la primera partición del disco, u, opcionalmente, asegúrese de que la BIOS boot partition está disponible. Compruebe también que /boot/grub/grub.cfg se generó correctamente con grub-mkconfig, o genere uno con una entrada de menú personalizada.

Para obtener más información sobre soluciones de problemas de GRUB2, consulte el articulo Troubleshooting.

Firmware de la placa base que no encuentra el fichero .EFI

Algunos fabricantes de placas base parece que soportan únicamente una localización para el fichero .EFI en el sistema de particiones EFI (ESP). Si este es el caso, simplemente mueva el fichero por defecto de GRUB a la localización /efi/boot/. En primer lugar, asegúrese de que el ESP está montado. Suponiendo que el ESP está montado en /boot/efi (tal y como se sugiere en el manual), lance:

root #mkdir -p /boot/efi/efi/boot
root #cp /boot/efi/efi/gentoo/grubx64.efi /boot/efi/efi/boot/bootx64.efi

Esto debería ayudar al firmware de la placa base a cargar el ejecutable de GRUB. Reinicie el sistema para ver si ahora el firmware carga GRUB correctamente.

os-prober y UEFI en una jaula chroot

La utilidad sys-boot/os-prober se utiliza para descubrir instalaciones alternativas como Microsoft Windows. Para que funcione correctamente necesita acceso a la información desde el entorno vivo de udev para comprobar la existencia de una partición de sistema EFI.

Lanzar estas órdenes en el entorno del anfitrión para ofrecer los ficheros necesarios (el ejemplo muestra Gentoo montado en /mnt/gentoo al igula que en el manual):

root #mkdir -p /mnt/gentoo/run/udev
root #mount -o bind /run/udev /mnt/gentoo/run/udev
root #mount --make-rslave /mnt/gentoo/run/udev

Instalar un nuevo núcleo

Cada vez que se instala un nuevo núcleo se debe reconfigurar GRUB2 para que lo reconozca. Esto se puede realizar utilizando grub-mkconfig tal y como se muestra abajo o se puede realizar de forma manual.

Nota
Asegúrese de que la partición /boot está montada antes de abordar este paso.
root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-3.3.8-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.3.8-gentoo
Found linux image: /boot/kernel-3.2.12-gentoo
Found initrd image: /boot/initramfs-genkernel-x86_64-3.2.12-gentoo
done

Se debe recordar que GRUB2 únicamente necesita ser reconfigurado no reinstalado en el Registro Principal de Arranque (Master Boot Record o MBR). Por el contrario, cuando se actualiza el propio GRUB2 se debe reinstalar en el disco de arranque sin embargo normalmente no necesita ser reconfigurado.

Véase también

Hay algunos recursos específicos de grub2 disponibles:

  • En Chainloading se describe el uso de GRUB2 para arrancar otros cargadores de arranque. Es importante leer esto para los sistemas de arranque dual, o cuando GRUB2 necesita ser configurado para arrancar ficheros ISO.
  • En Advanced storage están documentados los pasos necesarios sobre cómo instalar y utilizar GRUB2 en situaciones de almacenamiento más avanzados, tales como RAID por software, volúmenes lógicos o sistemas de ficheros cifrados.
  • En Configuration variables se documenta una lista exhaustiva de las variables de configuración de grub2, como las usadas por /etc/default/grub.
  • En Troubleshooting se presenta una lista de errores comunes de grub2 (con sus soluciones).
  • En Hybrid partition table se documenta el uso de una configuración mixta MBR/GPT, así como la forma de utilizar dicho esquema de partición híbrida con GRUB2.

Recursos externos

Para más información, vea: