Cómo solucionar problemas utilizando el comando dmesg en Unix y Linux

Durante el proceso de inicio del sistema, el kernel se carga en la memoria y controla todo el sistema.

Cuando el sistema se inicia, imprime una cantidad de mensajes en la pantalla que muestra información sobre los dispositivos de hardware que el kernel detecta durante el proceso de inicio.

Estos mensajes están disponibles en el búfer de anillo del kernel y siempre que llega el nuevo mensaje, el mensaje anterior se sobrescribe. Podrías ver todos esos mensajes después del inicio del sistema usando el comando dmesg.

1. Ver los mensajes de inicio

Al ejecutar el comando dmesg, puedes ver los hardware detectados durante el proceso de inicio y sus detalles de configuración. Hay mucha información útil mostrada en dmesg.

Solo debes navegar a través de ellos línea por línea y tratar de entender lo que significa. Una vez que tengas una idea del tipo de mensajes que muestra, puede que te resulte útil para solucionar problemas cuando te encuentres con una dificultad.

También puedes ver información del hardware usando dmidecode.

2. Ver la memoria del sistema disponible

También puedes ver la memoria disponible en los mensajes de dmesg como se muestra a continuación.

3. Ver el estado del enlace Ethernet (activo / inactivo)

En el siguiente ejemplo, dmesg indica que el enlace eth0 está en estado activo durante el inicio.

4. Cambiar el tamaño del búfer dmesg en el archivo /boot/config

Linux te permite cambiar el tamaño predeterminado del búfer dmesg. El parámetro CONFIG_LOG_BUF_SHIFT en el archivo /boot/config-2.6.18-194.el5 (o un archivo similar en tu sistema) se puede cambiar para modificar el búfer dmesg.

El siguiente valor está en la potencia de 2. Por lo tanto, el tamaño del búfer en este ejemplo sería de 262144 bytes. Puedes modificar el tamaño del búfer según tu necesidad (SUSE / REDHAT).

5. Borrar mensajes en búfer dmesg

A veces es posible que desees borrar los mensajes de dmesg antes de el próximo reinicio. Puedes borrar el búfer dmesg como se muestra a continuación.

6. dmesg timestamp: fecha y hora de cada mensaje de inicio en dmesg

Por defecto, dmesg no tiene la marca de tiempo (timestamp) asociada a ellos. Sin embargo, Linux proporciona una forma de ver la fecha y la hora de cada mensaje de inicio en dmesg en el archivo /var/log/kern.log como se muestra a continuación.

El servicio klogd debe habilitarse y configurarse correctamente para registrar los mensajes en el archivo /var/log/kern.log.