El comando dmesg (display message) es una herramienta fundamental para cualquier administrador de sistemas que necesita analizar los mensajes del kernel de GNU/Linux. Estos mensajes contienen información clave sobre el hardware, controladores y eventos del sistema que pueden ser cruciales para la resolución de problemas.
¿Para qué se utiliza el comando?
El comando dmesg se utiliza para mostrar los mensajes generados por el kernel del sistema operativo. Estos mensajes se almacenan en un buffer de anillo (ring buffer) y registran eventos relacionados con:
- Inicio del sistema.
- Detectores de hardware.
- Controladores y módulos cargados.
- Errores del sistema y problemas con el hardware.
Es una herramienta útil para diagnosticar problemas de hardware, analizar errores del sistema y comprender cómo se está ejecutando el kernel.
Sintaxis básica del comando
La sintaxis general del comando es:
dmesg [OPCIONES]Donde las opciones permiten filtrar o formatear la salida para facilitar su lectura. Algunas de las opciones más comunes son:
-T: Muestra las marcas de tiempo de los mensajes en un formato legible para humanos.--level=[nivel]: Filtra los mensajes por nivel de severidad (por ejemplo,err,warn,info).-ko--kernel: Muestra solo los mensajes del kernel.--follow: Permite seguir los mensajes en tiempo real, similar atail -f.-c: Borra el buffer después de mostrar los mensajes.
Ejemplos prácticos del comando
A continuación os explicamos algunos ejemplos prácticos sobre el uso del comando.
Ver todos los mensajes del kernel
El uso básico de dmesg muestra todos los mensajes en el buffer del kernel:
$ dmesg
[ 0.000000] Linux version 5.15.0 (gcc version 11.3.0)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 ro
[ 0.123456] Initializing cgroup subsys cpusetMostrar marcas de tiempo legibles para humanos
La opción -T convierte las marcas de tiempo en un formato fácil de entender:
$ dmesg -T
[Tue Jan 27 10:15:30 2025] Linux version 5.15.0 (gcc version 11.3.0)
[Tue Jan 27 10:15:30 2025] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 ro
[Tue Jan 27 10:15:30 2025] Initializing cgroup subsys cpusetFiltrar mensajes por nivel de severidad
Puedes mostrar solo mensajes específicos, como errores, con --level:
$ dmesg --level=err
[ 1.234567] usb 2-1: device descriptor read/64, error -71Seguir los mensajes en tiempo real
Con la opción --follow, puedes monitorear eventos nuevos a medida que ocurren:
$ dmesg --follow
[ 1234.567890] usb 2-1: USB disconnect, device number 5
[ 1234.890123] usb 2-1: new high-speed USB device number 6 using ehci-pciLimpiar el buffer después de mostrar los mensajes
La opción -c borra los mensajes actuales del buffer después de mostrarlos:
$ dmesg -c
[ 0.000000] Linux version 5.15.0 (gcc version 11.3.0)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=/dev/sda1 roBuscar mensajes relacionados con hardware específico
Puedes combinar dmesg con grep para filtrar mensajes específicos. Por ejemplo, para encontrar mensajes sobre USB:
$ dmesg | grep usb
[ 1.234567] usb 2-1: device descriptor read/64, error -71
[ 2.345678] usb 2-1: new high-speed USB device number 6 using ehci-pciConclusión
El comando dmesg es una herramienta poderosa para cualquier administrador de sistemas, ya que proporciona una ventana al comportamiento del kernel y los eventos de hardware. Su dominio permite diagnosticar problemas, analizar el estado del sistema y solucionar errores de manera efectiva. Prueba los ejemplos mostrados y explora sus opciones para aprovechar al máximo esta utilidad indispensable.
Comentarios