Personalizar el menú de arranque GRUB2 en Linux

CompTIABeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, aprenderás a personalizar el menú de arranque GRUB2 en un entorno Linux. GRUB2 (GRand Unified Bootloader) es el primer programa que se ejecuta al iniciar tu computadora y es el responsable de cargar el kernel de Linux. Obtendrás experiencia práctica trabajando con su archivo de configuración principal, /etc/default/grub, para modificar la experiencia de inicio según tus necesidades.

Comenzarás accediendo e inspeccionando la configuración predeterminada de GRUB2. A continuación, modificarás parámetros clave como GRUB_TIMEOUT para cambiar cuánto tiempo se muestra el menú de arranque y GRUB_DEFAULT para establecer la entrada de inicio predeterminada. Para concluir la práctica, aplicarás estos cambios generando un nuevo archivo de configuración de GRUB2 con el comando grub2-mkconfig y aprenderás a verificar que tus personalizaciones estén configuradas correctamente.

Nota: Dado que este es un entorno virtual de LabEx temporal y desechable, no podemos realizar un reinicio real del sistema para ver los cambios del menú de arranque en acción. En su lugar, aprenderás a verificar los cambios de configuración examinando los archivos de GRUB2 generados, lo cual es una habilidad igualmente importante para que los administradores de sistemas validen sus configuraciones antes de reiniciar sistemas en producción.

Esta es una Práctica Guiada, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que esta es una práctica de nivel principiante con una tasa de finalización del 98%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Acceder al archivo de configuración predeterminado de GRUB2 /etc/default/grub

En este paso, aprenderás a acceder y visualizar el archivo de configuración principal de GRUB2. GRUB2 (GRand Unified Bootloader, versión 2) es el gestor de arranque predeterminado para la mayoría de las distribuciones modernas de Linux. Es el primer programa que se ejecuta al encender el equipo, y su función es cargar el kernel de Linux en la memoria para luego iniciar el sistema operativo.

El archivo de configuración principal con el que trabajarás para personalizar el comportamiento de GRUB2 se encuentra en /etc/default/grub. Este archivo contiene pares clave-valor que controlan ajustes como el tiempo de espera del menú, el sistema operativo predeterminado para arrancar y parámetros adicionales del kernel.

Antes de realizar cualquier cambio, es fundamental inspeccionar la configuración actual. Dado que /etc/default/grub es un archivo del sistema que pertenece al usuario root, debes usar el comando sudo para acceder a él. Utilizaremos el comando cat para mostrar su contenido en la terminal.

Ejecuta el siguiente comando para ver el contenido del archivo de configuración predeterminado de GRUB2:

sudo cat /etc/default/grub

Verás una salida similar a la siguiente. Los valores exactos pueden variar ligeramente dependiendo de la configuración de tu sistema.

GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8 no_timer_check iommu=pt crash_kexec_post_notifiers=1 nvme_core.io_timeout=4294967295 nvme_core.admin_timeout=4294967295"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

Analicemos brevemente dos parámetros importantes de este archivo:

  • GRUB_TIMEOUT: Este valor determina cuánto tiempo (en segundos) se muestra el menú de GRUB2 antes de arrancar automáticamente la entrada predeterminada.
  • GRUB_DEFAULT: Especifica qué sistema operativo o kernel se iniciará de forma predeterminada.

En el siguiente paso, aprenderás cómo modificar estos parámetros para cambiar el comportamiento del menú de arranque.

Modificar los parámetros GRUB_TIMEOUT y GRUB_DEFAULT

En este paso, modificarás el archivo de configuración de GRUB2 para cambiar el comportamiento del menú de inicio. Específicamente, aumentarás el tiempo de espera del menú y establecerás una entrada de arranque predeterminada específica. Para editar el archivo /etc/default/grub, utilizarás nano, un editor de texto de línea de comandos sencillo e intuitivo. Al tratarse de un archivo del sistema, debes usar sudo para obtener los permisos necesarios para la edición.

Primero, abre el archivo usando nano con privilegios de sudo.

sudo nano /etc/default/grub

El editor nano se abrirá y mostrará el contenido del archivo. Ahora, realizarás dos cambios:

  1. Cambiar el valor de GRUB_TIMEOUT:
    Localiza la línea que comienza con GRUB_TIMEOUT. Es probable que esté configurada en 1. Usa las teclas de flecha para mover el cursor a esta línea y cambia el valor de 1 a 15. Esto hará que el menú de GRUB2 espere 15 segundos antes de arrancar automáticamente.

    La línea debería verse así después del cambio:

    GRUB_TIMEOUT=15
  2. Cambiar el parámetro GRUB_DEFAULT:
    Busca la línea que comienza con GRUB_DEFAULT. Su valor podría ser saved. Cambia este valor a 0. Configurar GRUB_DEFAULT=0 le indica a GRUB2 que inicie automáticamente la primera entrada en la lista del menú (la lista utiliza un índice basado en cero, por lo que 0 es la primera entrada).

    La línea debería verse así después del cambio:

    GRUB_DEFAULT=0

Una vez realizados estos cambios, debes guardar el archivo y salir de nano.

  • Presiona Ctrl + O (el comando "Write Out") para guardar los cambios.
  • nano te pedirá confirmar el nombre del archivo a escribir. Simplemente presiona Enter.
  • Presiona Ctrl + X para salir del editor nano y volver al símbolo del sistema.

Has modificado con éxito los ajustes predeterminados de GRUB2. En el siguiente paso, aplicarás estos cambios.

Aplicar y verificar los cambios de configuración de GRUB2

En este paso, aplicarás los cambios de configuración realizados en el paso anterior y aprenderás a verificar que GRUB2 se haya configurado correctamente. Utilizarás el comando grub2-mkconfig para generar un nuevo archivo de configuración basado en tus modificaciones.

Generar la nueva configuración de GRUB2

Ahora que has modificado el archivo /etc/default/grub, necesitas aplicar estos cambios generando un nuevo archivo de configuración de GRUB2. El comando grub2-mkconfig lee los ajustes de /etc/default/grub y los scripts en /etc/grub.d/ para crear la configuración final de GRUB2.

Ejecuta el siguiente comando para generar la nueva configuración:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Deberías ver una salida similar a esta:

Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done

Este comando escanea tu sistema en busca de kernels disponibles, lee tus ajustes de configuración y crea la configuración final del menú de GRUB2.

Verificar los cambios de configuración

Verifiquemos que tus cambios se hayan aplicado correctamente a la configuración de GRUB2. Primero, comprueba que tus ajustes modificados se reflejen en el archivo /etc/default/grub:

sudo grep -E "(GRUB_TIMEOUT|GRUB_DEFAULT)" /etc/default/grub

Deberías ver una salida que muestre tus valores modificados:

GRUB_TIMEOUT=15
GRUB_DEFAULT=0

A continuación, verifica que estos ajustes se hayan aplicado al archivo de configuración de GRUB2 generado:

sudo grep -E "(timeout|default)" /boot/grub2/grub.cfg | head -5

Esto te mostrará cómo aparecen tus ajustes en el archivo de configuración real de GRUB2.

Crear un respaldo de la configuración

Siempre es una buena práctica crear copias de seguridad de los archivos de configuración importantes antes de realizar cambios:

sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

Esto crea una copia de respaldo que puedes restaurar si es necesario.

Solucionar problemas y validar la configuración de GRUB2

En este paso final, aprenderás técnicas esenciales de resolución de problemas para las configuraciones de GRUB2 y comprenderás cómo validar tus cambios. Estas habilidades son cruciales para los administradores de sistemas que necesitan asegurar que sus modificaciones en GRUB2 funcionen correctamente antes de reiniciar sistemas de producción.

Comprobar la sintaxis de la configuración de GRUB2

Verifica que tu configuración de GRUB2 no tenga errores de sintaxis utilizando el comprobador de sintaxis integrado:

sudo grub2-script-check /boot/grub2/grub.cfg

Si no hay errores, este comando no devolverá ninguna salida. Cualquier error de sintaxis se mostrará con números de línea, lo que te ayudará a identificar y corregir problemas.

Comprender la estructura de directorios de GRUB2

Explora la estructura del directorio de configuración de GRUB2 para entender cómo funciona. Ten en cuenta que este directorio requiere privilegios de root para acceder:

sudo ls -la /etc/grub.d/

Esto te mostrará todos los scripts que generan las diferentes partes del menú de GRUB2. Cada script tiene un prefijo numérico que determina el orden de ejecución. Verás varios scripts como:

  • 00_header: Establece la configuración básica de GRUB2.
  • 00_tuned: Configuraciones específicas de Tuned.
  • 01_users: Configuraciones de usuario.
  • 10_linux: Busca y añade kernels de Linux.
  • 20_linux_xen: Soporte para el hipervisor Xen.
  • 30_os-prober: Busca otros sistemas operativos.
  • 40_custom: Contiene entradas de menú definidas por el usuario.

Los scripts reales pueden variar según la configuración de tu sistema y los paquetes instalados.

Ver las entradas de arranque disponibles

Examinemos qué entradas de arranque están disponibles en tu configuración generada:

sudo grep "menuentry" /boot/grub2/grub.cfg | head -10

Este comando mostrará referencias a entradas de menú y las entradas de menú reales. La salida puede incluir tanto variables de configuración (como menuentry_id_option) como entradas reales del menú de arranque. Busca las líneas que contienen definiciones completas de menuentry.

Verificar los ajustes de tiempo de espera y predeterminados

Comprueba que tus ajustes de tiempo de espera y de inicio predeterminado estén configurados correctamente:

sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg

Verás múltiples ajustes de tiempo de espera y predeterminados en el archivo de configuración. Esto es normal, ya que GRUB2 utiliza diferentes valores de tiempo de espera para distintos escenarios:

  • Tiempo de espera principal (normalmente 15 segundos según lo configurado).
  • Tiempos de espera condicionales para situaciones especiales.
  • Diferentes estilos de tiempo de espera (menú, oculto).

Los ajustes clave a verificar son:

  • set default="0" - Establece la primera entrada del menú como predeterminada.
  • set timeout=15 - Establece el tiempo de espera del menú principal en 15 segundos.

Aprender sobre la recuperación de GRUB2

Comprender la recuperación de GRUB2 es esencial para solucionar problemas de arranque. En situaciones de emergencia, puedes:

  1. Acceder a la línea de comandos de GRUB2: Presiona c en el menú de GRUB2 para entrar en el modo de línea de comandos.
  2. Editar entradas de arranque: Presiona e para editar una entrada de arranque antes de iniciar.
  3. Usar el modo de rescate (rescue mode): Si GRUB2 no encuentra su configuración, entra en modo de rescate.

Los comandos de recuperación comunes incluyen:

  • ls: Listar particiones y archivos disponibles.
  • set root=(hd0,1): Establecer la partición raíz.
  • linux /boot/vmlinuz root=/dev/sda1: Cargar un kernel.
  • boot: Iniciar el proceso de arranque.

Verificación final de la configuración

Hagamos una comprobación final de tu configuración completa de GRUB2:

sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"

Esto confirma que tus ajustes básicos están guardados correctamente en el archivo de configuración de origen.

Lo que has logrado:

  • Modificaste el tiempo de espera de GRUB2 y los ajustes de arranque predeterminados.
  • Aplicaste los cambios de configuración usando grub2-mkconfig.
  • Aprendiste a verificar y solucionar problemas en las configuraciones de GRUB2.
  • Creaste procedimientos de respaldo para archivos de arranque críticos.
  • Comprendiste la estructura de directorios de GRUB2 y las opciones de recuperación.
  • Adquiriste habilidades para validar configuraciones antes de los reinicios del sistema.

Tu configuración de GRUB2 ahora está debidamente personalizada con un tiempo de espera de 15 segundos y la primera entrada del menú como predeterminada. En un entorno de producción, estos cambios surtirían efecto en el próximo reinicio del sistema, proporcionando una experiencia de inicio más amigable para el usuario.

Resumen

En esta completa práctica de laboratorio, obtuviste experiencia práctica con técnicas esenciales de personalización y resolución de problemas del gestor de arranque GRUB2. Comenzaste examinando la configuración predeterminada de GRUB2, luego modificaste parámetros clave como GRUB_TIMEOUT y GRUB_DEFAULT para personalizar el comportamiento del menú de arranque. Aprendiste a aplicar estos cambios utilizando el comando grub2-mkconfig y a verificar que tus modificaciones se implementaran correctamente.

Las habilidades clave que desarrollaste incluyen la comprensión de la estructura de configuración de GRUB2, la modificación segura del archivo /etc/default/grub, la aplicación correcta de los cambios de configuración y la implementación de procedimientos adecuados de verificación y respaldo. También aprendiste técnicas esenciales de resolución de problemas, incluyendo la comprobación de sintaxis, la validación de la configuración y la comprensión de las opciones de recuperación de GRUB2, que son fundamentales para los administradores de sistemas.

La práctica hizo hincapié en las habilidades prácticas que los administradores de sistemas necesitan en escenarios del mundo real, particularmente la capacidad de validar las configuraciones de GRUB2 antes de aplicarlas a sistemas en producción. Aprendiste a usar comandos como grub2-script-check para la validación sintáctica y varios comandos grep para verificar que tus cambios se aplicaran correctamente a los archivos de configuración generados.

Estas habilidades te preparan para manejar escenarios de configuración de arranque con confianza y solucionar problemas relacionados con el inicio de manera efectiva en entornos empresariales Linux. Las técnicas de verificación que practicaste son especialmente valiosas para asegurar que las configuraciones de GRUB2 sean correctas antes de reiniciar sistemas críticos.