Linux / Comando dmesg: consultar mensajes del kernel y diagnosticar el arranque
dmesg lee el búfer circular de mensajes del kernel, el núcleo del sistema operativo. Ayuda a investigar la detección de hardware, controladores, sistemas de archivos y advertencias durante el arranque o el funcionamiento del sistema.
El búfer de anillo del kernel tiene un tamaño limitado, por lo que los mensajes antiguos pueden ser sobrescritos. La salida predeterminada mezcla registros de diferentes niveles de importancia y tiempos. La hora legible por humanos de -T puede ser inexacta debido a la corrección de hora del sistema, por lo que para un análisis preciso de tiempos, consulte los registros de arranque en el diario.
Sintaxis básica
dmesg [opciones]
La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man dmesg en el sistema actual.
Ejemplos de uso
Ver mensajes del kernel
Como imprime hasta los registros más recientes, si la pantalla es larga, use un paginador.
dmesg | less
Ver solo advertencias y errores
Selecciona exactamente las prioridades err y warn. No incluye automáticamente todos los niveles más graves, como crit, alert o emerg; ajuste la selección según lo que necesite investigar.
dmesg --level=err,warn
Seguir nuevos mensajes
Ver los nuevos mensajes del kernel en tiempo real. Use Ctrl+C para detener.
dmesg --follow
Leer mensajes del kernel y tiempo relativo
La visualización de tiempo predeterminada de dmesg normalmente se basa en el tiempo transcurrido desde el arranque. Después del número, siguen los mensajes relacionados con hardware, controladores o sistemas de archivos.
dmesg --level=err,warn | tail -n 3
Formato de ejemplo (los mensajes reales varían según el sistema):
[ 12.345678] device: warning message
Si la salida está vacía, puede que no haya mensajes de ese nivel en el búfer de anillo actual, y si no se puede leer debido a restricciones de permisos, se muestra un error. Como el búfer de anillo tiene un tamaño limitado y los registros antiguos pueden desaparecer, verifique también si se conserva el journal de eventos de arranque anteriores como en journalctl -k -b -1. dmesg -c vacía el búfer, por lo que no se usa para simples verificaciones.
Opciones y formatos principales
| Opción o formato | Descripción |
|---|---|
--level=lista |
Muestra solo los mensajes de la prioridad especificada. |
-T |
Muestra el tiempo de manera que sea fácil de leer para humanos. |
-H |
Usa una salida legible por humanos y un paginador. |
-w |
Espera continuamente nuevos mensajes. |
-k |
Muestra solo mensajes del kernel. |
Precauciones al usar
Algunas distribuciones limitan la lectura de los registros del kernel por parte de usuarios no administradores, así que si aparece un error de permisos, compruebe la política. dmesg -c o --clear borran el búfer, por lo que no se usan para consultas simples. Que no haya mensajes no significa que no haya problemas. Los registros de arranques anteriores se pueden verificar con journalctl -k -b -1 según la configuración de retención del journal.
Preguntas frecuentes
¿Son dmesg y journalctl -k lo mismo?
Ambos verifican mensajes del kernel, pero dmesg lee el búfer de anillo del kernel, mientras que journalctl -k consulta las entradas del kernel recolectadas y conservadas en el journal.
Documentación oficial
Se puede verificar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de dmesg.




