Cómo comprobar si se aplican las configuraciones de GRUB en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo verificar si los cambios realizados en la configuración del cargador de arranque GRUB en Linux se han aplicado correctamente. Exploraremos el archivo de configuración principal de GRUB ubicado en /etc/default/grub para entender sus ajustes.

Luego, examinaremos el archivo de configuración del menú GRUB generado en /boot/grub/grub.cfg para ver cómo se traducen los ajustes del archivo predeterminado. Finalmente, inspeccionaremos los parámetros de arranque del kernel utilizando el comando dmesg para confirmar que los ajustes de GRUB se reflejan en el sistema en ejecución.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558789{{"Cómo comprobar si se aplican las configuraciones de GRUB en Linux"}} linux/grep -.-> lab-558789{{"Cómo comprobar si se aplican las configuraciones de GRUB en Linux"}} end

Verificar la configuración de GRUB con cat /etc/default/grub

En este paso, exploraremos el archivo de configuración de GRUB. GRUB (GRand Unified Bootloader) es el cargador de arranque de muchas distribuciones de Linux, incluyendo Ubuntu. Es el primer software que se ejecuta cuando se inicia el equipo, y es responsable de cargar el kernel del sistema operativo.

El archivo de configuración principal de GRUB se encuentra en /etc/default/grub. Este archivo contiene ajustes que determinan cómo se comporta GRUB, como el sistema operativo predeterminado para arrancar, el tiempo de espera antes de arrancar y los parámetros del kernel.

Veamos el contenido de este archivo utilizando el comando cat. El comando cat se utiliza para mostrar el contenido de archivos.

Abra su terminal si no está abierta. Recuerde que puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Escriba el siguiente comando y presione Enter:

cat /etc/default/grub

Verá el contenido del archivo /etc/default/grub impreso en su terminal. Se verá algo así:

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUB_TERMINAL_INPUT=console

## Uncomment to disable menu scrolling
#GRUB_MENU_SCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pci_filter_enable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUB_DISABLE_GRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUB_ENABLE_CRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUB_INIT_TUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUB_DISABLE_OS_PROBER=false

Este archivo contiene varios ajustes. Por ejemplo:

  • GRUB_DEFAULT: Especifica la entrada de menú predeterminada para arrancar. 0 significa la primera entrada.
  • GRUB_TIMEOUT: Establece el tiempo en segundos antes de que se arranque automáticamente la entrada predeterminada.
  • GRUB_CMDLINE_LINUX_DEFAULT: Contiene parámetros del kernel que se pasan al kernel al arrancar la entrada predeterminada.

Comprender este archivo es crucial para la configuración avanzada de Linux y la solución de problemas de arranque.

Haga clic en Continuar para pasar al siguiente paso.

Verificar el menú de GRUB con cat /boot/grub/grub.cfg

En el paso anterior, examinamos /etc/default/grub, que es el archivo de configuración principal de GRUB. Sin embargo, este archivo no es utilizado directamente por GRUB durante el proceso de arranque. En cambio, los ajustes en /etc/default/grub se utilizan para generar el archivo de configuración real del menú de GRUB, que se encuentra en /boot/grub/grub.cfg.

El archivo /boot/grub/grub.cfg se genera automáticamente mediante el comando update-grub (o grub-mkconfig). Contiene las entradas de menú que se ven cuando se inicia el equipo, lo que permite elegir qué sistema operativo o kernel arrancar.

Importante: Nunca debe editar manualmente el archivo /boot/grub/grub.cfg. Cualquier cambio que realice se sobrescribirá la próxima vez que se ejecute update-grub. Siempre modifique /etc/default/grub y luego ejecute sudo update-grub para aplicar sus cambios.

Veamos el contenido del archivo /boot/grub/grub.cfg utilizando el comando cat.

Escriba el siguiente comando en su terminal y presione Enter:

cat /boot/grub/grub.cfg

Verá una salida mucho más larga y compleja en comparación con /etc/default/grub. Este archivo contiene la configuración detallada de cada entrada del menú de arranque, incluyendo la ruta del kernel, la ruta del initrd y los parámetros de la línea de comandos del kernel.

#
## DO NOT EDIT THIS FILE
#
## It is automatically generated by grub-mkconfig using templates
## from /etc/grub.d and settings from /etc/default/grub
#

#### BEGIN /etc/grub.d/00_header ###
...
#### END /etc/grub.d/00_header ###

#### BEGIN /etc/grub.d/05_debian_theme ###
...
#### END /etc/grub.d/05_debian_theme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
	recordfail
	...
	linux	/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-*-generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20_linux_xen ###
...
#### END /etc/grub.d/20_linux_xen ###

#### BEGIN /etc/grub.d/30_os-prober ###
...
#### END /etc/grub.d/30_os-prober ###

#### BEGIN /etc/grub.d/30_uefi-firmware ###
...
#### END /etc/grub.d/30_uefi-firmware ###

#### BEGIN /etc/grub.d/40_custom ###
...
#### END /etc/grub.d/40_custom ###

#### BEGIN /etc/grub.d/41_custom ###
...
#### END /etc/grub.d/41_custom ###

Puede desplazarse por la salida para ver las diferentes entradas de menú y sus configuraciones. Busque líneas que comiencen con menuentry. Estas definen las opciones que aparecen en el menú de arranque de GRUB.

Este archivo es complejo y no es necesario que entienda cada línea en este momento. Lo más importante es que /boot/grub/grub.cfg es el archivo que realmente utiliza GRUB y se genera a partir de /etc/default/grub y los scripts en /etc/grub.d.

Haga clic en Continuar para continuar.

Inspeccionar los parámetros de GRUB en dmesg

En los pasos anteriores, examinamos los archivos de configuración de GRUB /etc/default/grub y /boot/grub/grub.cfg. Vimos que /etc/default/grub contiene la variable GRUB_CMDLINE_LINUX_DEFAULT, que especifica los parámetros del kernel. Estos parámetros se pasan al kernel de Linux cuando se arranca.

El comando dmesg se utiliza para mostrar los mensajes del buffer circular del kernel. Estos mensajes contienen información sobre el proceso de arranque del sistema, incluyendo los parámetros de la línea de comandos del kernel que se utilizaron.

Usemos dmesg para ver los parámetros de la línea de comandos del kernel que fueron pasados por GRUB durante el arranque de esta máquina virtual.

Escriba el siguiente comando en su terminal y presione Enter:

dmesg | grep "Kernel command line"

A continuación, se explica el comando:

  • dmesg: Muestra los mensajes del kernel.
  • |: Este es un pipe. Toma la salida del comando de la izquierda (dmesg) y la envía como entrada al comando de la derecha (grep).
  • grep "Kernel command line": Este comando busca líneas que contengan la frase exacta "Kernel command line" en la entrada que recibe (de dmesg).

La salida mostrará la línea de comandos del kernel que se utilizó para arrancar el sistema. Se verá similar a esto:

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

Puede ver los parámetros como quiet y splash que probablemente se definieron en la variable GRUB_CMDLINE_LINUX_DEFAULT en /etc/default/grub. Estos parámetros le indican al kernel cómo comportarse durante el arranque. Por ejemplo, quiet reduce la cantidad de salida durante el arranque, y splash habilita una pantalla de arranque gráfica.

Inspeccionar la línea de comandos del kernel con dmesg es una técnica útil para verificar que los cambios en la configuración de GRUB se estén aplicando correctamente y para solucionar problemas de arranque relacionados con los parámetros del kernel.

Ahora ha explorado con éxito la configuración de GRUB y ha verificado los parámetros del kernel utilizando dmesg.

Haga clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendimos cómo comprobar si se aplican las configuraciones de GRUB en Linux. Comenzamos examinando el archivo de configuración principal de GRUB, /etc/default/grub, utilizando el comando cat para entender su contenido y los diversos parámetros que controlan el comportamiento de GRUB durante el proceso de arranque.

Al visualizar el archivo /etc/default/grub, obtuvimos información sobre configuraciones como la entrada de arranque predeterminada, los valores de tiempo de espera y los argumentos de la línea de comandos del kernel. Este primer paso es crucial para comprender la configuración deseada de GRUB antes de verificar su aplicación.