fbpx GRUB 2 en Linux: Configurar y Recuperar el Gestor de Arranque | Certificação Linux

Cómo Configurar, Recuperar y Personalizar GRUB 2 en Linux

📅 07/03/2019 ⏱ 8 min ✍️ Uira Ribeiro
Linuxcomandoscómo-hacer
Cómo Configurar, Recuperar y Personalizar GRUB 2 en Linux
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

El Grand Unified Boot Loader - Grub 2 es el sistema de arranque predeterminado de Ubuntu desde la versión 9.10 y de otras distribuciones con versiones más recientes, especialmente en el Kernel 2.6 y 3.x. Conoce el poderoso GRUB 2.

El Grub 2 fue reescrito completamente con el objetivo de permitir gran flexibilidad y ganancia de rendimiento. Entre las diversas mejoras, las principales son:

  • Soporte para script con expresiones condicionales y funciones;
  • Carga de módulos de forma dinámica;
  • Modo de Emergencia (Rescue Mode);
  • Menús Personalizados;
  • Soporte para temas;
  • Soporte para menú gráfico con pantalla "splash";
  • Carga de imágenes ISO de Live CDs;
  • Nueva estructura del archivo de configuración;
  • Soporte para plataforma no x86 (ej: PowerPC);
  • Soporte universal para UUIDs (Universally Unique IDentifier) – identificador usado en sistemas distribuidos.

Actualización del Grub 1 al Grub 2

La actualización del Grub 1 al Grub 2 es relativamente fácil. Primero se debe instalar el paquete del Grub 2 con el comando:

# sudo apt-get install grub-pc

Después de instalado, el Grub 2 presentará un menú de prueba, con las imágenes de kernel encontradas y aún posibilita que el menú sea editado.

Una vez definido el menú, el Grub2 puede ser instalado de forma definitiva con el comando:

# sudo upgrade-from-grub-legacy /boot/grub/grub.cfg

Principales Cambios del Grub 1 al Grub 2

Es importante que sepa cuáles son los cambios importantes del Grub 1 al Grub 2, a saber:

  • El archivo /boot/grub/menu.lst fue reemplazado por /boot/grub/grub.cfg;
  • El principal archivo de configuración es /etc/default/grub;
  • El sistema de numeración de las particiones fue alterado;
  • Las búsquedas por otros sistemas operativos se hacen de forma automática cada vez que se ejecuta update-grub y se colocan en el menú;

Los cambios en la configuración no tienen efecto hasta que se ejecuta el comando update-grub.

Normalmente el /boot/grub/grub.cfg no debe ser editado manualmente pues es regrabado en actualizaciones del paquete del Grub 2, cuando un kernel es agregado o removido, o el usuario acciona el comando update-grub. Este comando rehace el menú de carga a partir de otros archivos de configuración y regraba el /boot/grub/grub.cfg.

Crear una configuración predeterminada en grub

El utilitario grub-mkconfig también puede ser utilizado para crear una configuración para el Grub:

# grub-mkconfig -o /boot/grub/grub.cfg

El principal archivo de configuración de la presentación del menú se encuentra ubicado en /etc/default/grub.

Archivo /etc/default/grub

Este archivo contiene las principales informaciónes para que el Grub 2 pueda montar el menú. Define cuál será la opción predeterminada del menú, los tiempos de espera por una acción del usuario, si el menú será presentado en modo gráfico o modo texto, entre otras opciones.

Ejemplo de /etc/default/grub:

GRUB_DEFAULT=0

#GRUB_SAVEDEFAULT = true

#GRUB_HIDDEN_TIMEOUT=0

GRUB_HIDDEN_TIMEOUT_QUIET=true

GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR='lsb_release -i -s 2> /dev/null || echo Debian'

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX=""

#GRUB_TERMINAL=console

#GRUB_GFXMODE=640x480

#GRUB_DISABLE_LINUX_RECOVERY="true"

#GRUB_INIT_TUNE="480 440 1"

Archivo de Configuración del grub

Vea el comentario de opción del grub:

GRUB_DEFAULT

Define cuál será la opción predeterminada del menú del Grub. El parámetro GRUB_DEFAULT puede asumir un valor numérico, el nombre de la opción en el menú o la palabra "saved".

Si el valor es numérico indica la posición del menú en /boot/grub/grub.cfg. Puede indicar también el nombre del menú "Ubuntu 2.6.31".

Si el valor es "saved", el predeterminado será definido por el comando grub-set-default o grub-reboot.

GRUB_SAVEDEFAULT

Si este parámetro es "true", le dice al Grub que la opción predeterminada del menú será siempre el último sistema operativo seleccionado en el menú.  

GRUB_HIDDEN_TIMEOUT

Este parámetro define el tiempo en segundos que el Grub esperará por una acción del usuario hasta que la opción predeterminada del menú sea elegida de forma automática. Ningún menú será presentado, a menos que el usuario oprima alguna tecla (generalmente ESC).

Si es igual a cero, el sistema operativo predeterminado cargará de forma automática sin esperar por ninguna intervención.

GRUB_HIDDEN_TIMEOUT_QUIET

Cuando esta opción es "true", ningún contador de tiempo será presentado. Si es "false", un contador decreciente será presentado con el tiempo definido en GRUB_HIDDEN_TIMEOUT.

GRUB_TIMEOUT

Esta opción solamente será efectiva si la directiva GRUB_HIDDEN_TIMEOUT está comentada, o si está activa, cuando el usuario presione alguna tecla durante el tiempo de espera del GRUB_HIDDEN_TIMEOUT.

El GRUB_TIMEOUT define el tiempo de espera del menú hasta que el usuario haga su elección. De lo contrario, ejecutará la opción predeterminada.

Si el valor es -1, el Grub esperará por el usuario indefinidamente.

GRUB_DISTRIBUTOR

Determina la descripción del sistema que será usada en el menú. Si nada es definido, el Grub utilizará el predeterminado del sistema, que generalmente es definido por el comando:

# lsb_release -i -s 2> /dev/null || echo Debian

 SUSE LINUX

GRUB_CMDLINE_LINUX_DEFAULT

Esta directiva pasa parámetros al Kernel durante la carga normal del sistema.

GRUB_CMDLINE_LINUX

Esta directiva pasa parámetros al Kernel durante la carga del sistema, tanto para carga normal del kernel o en modo "recovery".

GRUB_TERMINAL

Esta opción, si está descomentada, deshabilita el menú en modo gráfico.

GRUB_GFXMODE

Define la resolución de la terminal gráfica del menú.

GRUB_DISABLE_LINUX_RECOVERY

Deshabilita el modo de emergencia del Kernel si es igual a "true".

GRUB_INIT_TUNE

Define un "sonido" que el grub hará antes de presentar el menú. El formato es [tono de la nota] [duración].

Ejemplo: Tema de Contactos inmediatos de Tercer Grado:GRUB_INIT_TUNE="480 900 2 1000 2 800 2 400 2 600 3"

El directorio /etc/grub.d

Los scripts de este directorio se leen durante la llamada del comando update-grub y sus instrucciones se incorporan en el archivo /boot/grub/grub.cfg.

El orden de los elementos en el menú del grub se determina por el orden de los scripts en este directorio. Los archivos se leen de acuerdo con el numeral que precede su nombre, en orden creciente.

00_header

Configura los parámetros iniciales, como el modo gráfico, opción del menú predeterminado. Estas configuraciones generalmente se importan del /etc/default/grub.

05_debian_theme

Configura la pantalla de fondo, colores del texto, etc.

10_hurd

Utilizado para localizar Kernels Hurd. No es utilizado en la mayoría de las distribuciones.

10_linux

Identifica los Kernels en el dispositivo raíz y crea los elementos del menú. Todas las imágenes de kernel existentes en /boot serán colocadas en el menú.

20_memtest86+

Busca la imagen en /boot/memtest86+.bin usada para prueba de memoria. Para eliminar este elemento, es necesario eliminar la imagen del directorio /boot.

30_os-prober

Este script busca Linux y otros sistemas operativos existentes en el disco y crea los elementos del menú. Las variables en este archivo determinan cómo aparecerán los nombres en el menú.

40_custom

Permite agregar entradas personalizadas en el menú del grub.

Las configuraciones generalmente se hacen en el archivo /etc/default/grub.
No es común editar directamente los scripts del directorio /etc/grub.d.
Cualquier alteración hecha en /boot/grub/grub.cfg se reescribe cuando se ejecuta el comando update-grub.

Secuencia de Carga del Sistema

El grub2 se ejecuta antes de cualquier sistema operativo. Generalmente realizará la carga directa del sistema operativo definiéndolo como predeterminado o si hay solo un sistema operativo presente.

Si hay más de un sistema operativo, presentará el menú para elección.

El tiempo predeterminado de espera del menú es de 10s. Si el usuario no hace nada, iniciará la carga de la opción predeterminada del menú.

El conteo del tiempo puede pausarse si se presiona cualquier tecla. El usuario puede forzar la presentación del menú presionando la tecla SHIFT durante la carga del grub2.

Nombres de las Particiones en Grub 2

El sistema de nombrar las particiones en grub2 se simplificó en relación al grub1. El conteo de los dispositivos permanece iniciando desde cero.

Un dispositivo sda será nombrado como hd0, así como un dispositivo sdb será llamado hd1. Sin embargo las particiones siguen la numeración "normal", de manera que la partición sda5 será nombrada como hd0,5 y sda3 será hd0,3.

Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.

¿Te gustó? Comparte

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp