Cómo comprobar si una opción de configuración del kernel está establecida 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, exploraremos diferentes métodos para verificar si una opción de configuración específica del kernel está establecida en Linux. Comenzaremos examinando el archivo /proc/config.gz, utilizando zcat para descomprimir y ver la configuración del kernel si el archivo existe. Este archivo contiene las opciones de configuración utilizadas para compilar el kernel que se está ejecutando actualmente.

Si /proc/config.gz no está disponible, procederemos a buscar el archivo de configuración del kernel en el directorio /boot/, específicamente buscando archivos llamados config-*. Esto proporciona una forma alternativa de verificar la configuración del kernel. Finalmente, inspeccionaremos los registros de configuración en dmesg.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/uname("System Information Displaying") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} linux/cat -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} linux/less -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} linux/grep -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} linux/uname -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} linux/gzip -.-> lab-558861{{"Cómo comprobar si una opción de configuración del kernel está establecida en Linux"}} end

Verificar la configuración del kernel con zcat /proc/config.gz

En este paso, exploraremos cómo verificar la configuración del kernel utilizando el comando zcat y el archivo /proc/config.gz. La configuración del kernel determina qué características se integran en el kernel, y entenderla puede ser útil para la depuración y la personalización.

Primero, entendamos qué es /proc/config.gz. Es un archivo comprimido con gzip que contiene las opciones de configuración del kernel utilizadas para compilar el kernel que se está ejecutando actualmente. Sin embargo, no siempre estará presente dependiendo de la configuración de compilación del kernel.

Para verificar si el archivo existe, utilice el siguiente comando:

ls -l /proc/config.gz

Si el archivo existe, verá una salida similar a esta:

-r-------- 1 root root [占位符: 文件大小] [占位符: 日期] /proc/config.gz

Si el archivo no existe, verá un mensaje de error:

ls: cannot access '/proc/config.gz': No such file or directory

Si el archivo existe, podemos usar zcat para descomprimir y ver su contenido. zcat es una utilidad de línea de comandos que descomprime archivos comprimidos con gzip y muestra la salida en la salida estándar.

Ejecute el siguiente comando para ver la configuración del kernel:

zcat /proc/config.gz | less

Este comando envía la salida de zcat /proc/config.gz al comando less, lo que le permite desplazarse por el archivo de configuración.

Verá una larga lista de opciones de configuración, cada una precedida de CONFIG_. Por ejemplo:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Presione q para salir de less.

Si /proc/config.gz no existe, deberá pasar al siguiente paso para verificar /boot/config-*.

Verificar la configuración en /boot/config-*

En este paso, verificaremos la existencia del archivo de configuración del kernel en el directorio /boot/. Esta es otra ubicación común donde se almacena la configuración del kernel. El archivo suele llamarse config-*, donde * representa la versión del kernel.

Primero, listemos los archivos en el directorio /boot/ para ver si existe un archivo config-*. Utilice el siguiente comando:

ls -l /boot/config-*

Puede ver una salida similar a esta:

-rw------- 1 root root [占位符: 文件大小] [占位符: 日期] /boot/config-[占位符: kernel version]

Si ve un archivo config-*, significa que la configuración del kernel se almacena en ese archivo. Si no ve ningún archivo config-*, significa que la configuración del kernel no se almacena en la ubicación estándar en /boot/.

Para ver el contenido del archivo config-*, puede usar el comando cat. Reemplace [占位符: kernel version] con la versión real del kernel del nombre del archivo. Por ejemplo, si el archivo se llama /boot/config-5.15.0-76-generic, el comando sería:

cat /boot/config-5.15.0-76-generic | less

Este comando envía la salida de cat /boot/config-[占位符: kernel version] al comando less, lo que le permite desplazarse por el archivo de configuración.

Verá una larga lista de opciones de configuración, cada una precedida de CONFIG_. Por ejemplo:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Presione q para salir de less.

Si tiene múltiples archivos config-*, puede verificar la versión del kernel utilizando el comando uname -r:

uname -r

Esto mostrará la versión del kernel que se está ejecutando actualmente en su sistema. Luego puede utilizar esta información para seleccionar el archivo config-* correcto para ver.

Inspeccionar los registros de configuración en dmesg

En este paso, inspeccionaremos los registros del kernel utilizando el comando dmesg para encontrar información sobre la configuración del kernel. dmesg es una utilidad de línea de comandos que muestra el buffer de mensajes del kernel. Este buffer contiene información sobre el hardware, controladores y otros eventos del sistema, incluyendo detalles sobre la configuración del kernel en el momento del arranque.

Para ver los registros del kernel, utilice el siguiente comando:

dmesg | less

Este comando envía la salida de dmesg al comando less, lo que le permite desplazarse por los registros.

La información de configuración del kernel suele imprimirse al principio de los registros durante el proceso de arranque. Para filtrar los registros y encontrar mensajes relacionados con la configuración, puede utilizar el comando grep.

Pruebe el siguiente comando para buscar líneas que contengan "config":

dmesg | grep config | less

Este comando envía la salida de dmesg a grep config, que filtra las líneas que contienen la palabra "config", y luego envía el resultado a less para facilitar la visualización.

Puede ver una salida similar a esta:

[占位符: 时间戳] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash  vt.handoff=7
[占位符: 时间戳]  Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash vt.handoff=7
[占位符: 时间戳]  DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS [占位符: BIOS version] 04/01/2014

También puede buscar opciones de configuración específicas. Por ejemplo, para averiguar si CONFIG_EXT4_FS está habilitado, utilice el siguiente comando:

dmesg | grep CONFIG_EXT4_FS

Si la opción está habilitada, verá una línea similar a esta:

[占位符: 时间戳]  EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Si la opción no está habilitada, no verá ninguna salida.

Al inspeccionar la salida de dmesg, puede verificar la configuración del kernel e identificar cualquier problema potencial relacionado con opciones de configuración faltantes o incorrectas.

Presione q para salir de less.

Resumen

En este laboratorio (lab), exploramos métodos para verificar la configuración del kernel en Linux. Primero, intentamos acceder a la configuración del kernel a través de zcat /proc/config.gz, y aprendimos que este archivo contiene las opciones de configuración del kernel utilizadas para compilar el kernel que se está ejecutando actualmente, pero su existencia depende de la configuración de compilación del kernel. Utilizamos ls -l para comprobar su existencia y zcat canalizado a less para ver su contenido si estaba disponible.

Si no se encontró /proc/config.gz, el laboratorio nos indica que pasemos al siguiente paso, que consiste en buscar el archivo de configuración del kernel en el directorio /boot/, que suele llamarse config-*.