Cómo comprobar si una opción de arranque del kernel está habilitada 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, aprenderás cómo verificar si una opción de arranque específica del kernel está habilitada en Linux. Exploraremos tres métodos clave para lograr esto.

Primero, utilizarás el comando cat /proc/cmdline para ver los argumentos de línea de comandos pasados al kernel durante la sesión de arranque actual. A continuación, examinarás el archivo de configuración de GRUB ubicado en /etc/default/grub para entender dónde se configuran algunas de estas opciones de arranque. Finalmente, inspeccionarás los registros de arranque utilizando el comando dmesg para ver cómo el kernel interpretó y aplicó las opciones de arranque. Al completar estos pasos, adquirirás habilidades prácticas para diagnosticar y entender el proceso de arranque de tu sistema Linux.


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/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558719{{"Cómo comprobar si una opción de arranque del kernel está habilitada en Linux"}} linux/less -.-> lab-558719{{"Cómo comprobar si una opción de arranque del kernel está habilitada en Linux"}} linux/grep -.-> lab-558719{{"Cómo comprobar si una opción de arranque del kernel está habilitada en Linux"}} end

Verificar opciones de arranque con cat /proc/cmdline

En este paso, exploraremos cómo ver las opciones de arranque utilizadas cuando se inició tu sistema Linux. Esta información se almacena en un archivo especial dentro del sistema de archivos /proc.

El sistema de archivos /proc es un sistema de archivos virtual en Linux que proporciona información sobre procesos y otra información del sistema. No contiene archivos reales en tu disco, sino que ofrece una ventana a las estructuras de datos del kernel.

El archivo que nos interesa es /proc/cmdline. Este archivo contiene los argumentos de línea de comandos pasados al kernel en el momento del arranque. Estos argumentos pueden influir en el comportamiento del kernel y en el hardware que detecta.

Para ver el contenido de este archivo, utilizaremos el comando cat. El comando cat es una utilidad simple que se utiliza para mostrar el contenido de archivos.

Abre tu terminal si no está abierta. Puedes hacerlo haciendo clic en el icono de Xfce Terminal en el lado izquierdo de tu escritorio.

Ahora, escribe el siguiente comando y presiona Enter:

cat /proc/cmdline

Verás una salida similar a esta:

BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7

La salida exacta variará según la configuración de tu sistema, pero mostrará la imagen del kernel que se está arrancando (BOOT_IMAGE), la ubicación del sistema de archivos raíz (root=), y otras opciones como ro (sistema de archivos de solo lectura inicialmente), quiet y splash.

Comprender estas opciones de arranque puede ser útil para solucionar problemas de arranque o configurar comportamientos específicos del kernel.

Recuerda, /proc/cmdline es un archivo dinámico generado por el kernel, por lo que su contenido refleja la sesión de arranque actual.

Haz clic en Continuar para pasar al siguiente paso.

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

En el paso anterior, examinamos los argumentos de línea de comandos pasados al kernel después de que se haya iniciado. Ahora, veamos de dónde pueden provenir algunos de esos argumentos: el archivo de configuración de GRUB.

GRUB (GRand Unified Bootloader, Cargador de arranque unificado general) es un cargador de arranque. Su función principal es cargar el kernel del sistema operativo en la memoria y pasarle el control. El archivo de configuración de GRUB determina las opciones del menú de arranque, el sistema operativo predeterminado y los parámetros del kernel.

El archivo de configuración principal de GRUB en muchos sistemas Linux es /etc/default/grub. Este archivo contiene configuraciones que se utilizan para generar la configuración real del menú de arranque de GRUB.

Volveremos a utilizar el comando cat para ver el contenido de este archivo.

Abre tu terminal si no está abierta.

Escribe el siguiente comando y presiona Enter:

cat /etc/default/grub

Verás una salida similar a esta:

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.
## For full documentation of the options in this file, see:
##   info -f grub -n 'Simple configuration'

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 booting from a full graphics screen using grub-gfxpayload
#GRUB_GFXPAYLOAD_LINUX=keep

## Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

## The resolution used on graphical terminal
## needs to be in the format e.g. 640x480 or 800x600 or 1024x768
## and your graphics card needs to support it. A list of all available resolutions can
## be found with 'videoinfo' command in grub.
#GRUB_GFXMODE=640x480

## Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_UUID=true

## Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

## Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Busca la línea que comienza con GRUB_CMDLINE_LINUX_DEFAULT. Las opciones enumeradas aquí (como "quiet splash") a menudo se pasan al kernel en el momento del arranque, y es posible que las hayas visto en la salida de cat /proc/cmdline en el paso anterior.

Este archivo es importante porque te permite configurar parámetros predeterminados del kernel sin tener que escribirlos manualmente cada vez que arrancas.

Nota importante: Si fueras a realizar cambios en este archivo en un sistema real, normalmente tendrías que ejecutar sudo update-grub después para aplicar los cambios al archivo de configuración de arranque real (/boot/grub/grub.cfg). Sin embargo, en este entorno de laboratorio, solo estamos inspeccionando el archivo.

Haz clic en Continuar para continuar.

Inspeccionar los registros de arranque con dmesg

En este último paso, examinaremos los mensajes del buffer circular del kernel utilizando el comando dmesg. El buffer circular del kernel almacena mensajes del kernel, incluyendo información sobre la detección de hardware, controladores de dispositivos y eventos del sistema que ocurren durante el proceso de arranque.

El comando dmesg se utiliza para mostrar estos mensajes. Es una herramienta crucial para diagnosticar problemas de hardware o entender lo que sucedió durante el inicio del sistema.

Abre tu terminal si no está abierta.

Escribe el siguiente comando y presiona Enter:

dmesg

Este comando mostrará una lista de mensajes que posiblemente sea muy larga. Estos mensajes son generados por el kernel mientras se inicializa e interactúa con el hardware y el software del sistema.

Verás una salida similar a esta (la salida exacta variará mucho):

[    0.000000] Linux version ... (buildd@lcy02-amd64-...) (gcc-...) #...-Ubuntu SMP ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
...
[    1.234567] usbcore: registered new interface driver usbfs
[    1.234567] usbcore: registered new interface driver hub
[    1.234567] usbcore: registered new device driver usb
...

Observa que la salida incluye la versión del kernel y los argumentos de línea de comandos, similar a lo que vimos en /proc/cmdline.

Dado que la salida de dmesg puede ser extensa, a menudo es útil canalizarla a un paginador como less o more para verla pantalla por pantalla.

Prueba este comando:

dmesg | less

Ahora puedes usar las flechas del teclado para desplazarte hacia arriba y hacia abajo por la salida. Presiona q para salir de less.

También puedes filtrar la salida utilizando grep para buscar palabras clave específicas, como "error" o el nombre de un dispositivo de hardware.

Por ejemplo, para ver los mensajes relacionados con dispositivos USB:

dmesg | grep -i usb

Este comando mostrará solo las líneas que contengan "usb" (sin distinguir mayúsculas y minúsculas debido a la opción -i).

Explorar la salida de dmesg es una habilidad fundamental para la administración y resolución de problemas de sistemas Linux.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendimos cómo verificar si una opción de arranque del kernel está habilitada en Linux examinando el archivo /proc/cmdline. Este archivo ofrece una vista dinámica de los argumentos de línea de comandos pasados al kernel durante la sesión de arranque actual, lo que nos permite entender cómo se inició el sistema y su configuración inicial.

También comenzamos a explorar la fuente de estas opciones de arranque examinando el archivo de configuración de GRUB, /etc/default/grub, que es un lugar clave para definir los parámetros de arranque del kernel incluso antes de que el sistema se inicie.