La commande dmesg sous Linux

La commande dmesg sous Linux est un outil essentiel pour consulter les messages du noyau (kernel). Elle permet d’afficher le tampon d’anneau (ring buffer) du noyau, qui contient des informations sur le matériel détecté, les erreurs système, les pilotes chargés, les périphériques connectés, et d’autres événements importants liés au fonctionnement du système.

À quoi sert dmesg ?

  • Diagnostic matériel : Vérifier si un périphérique (clé USB, disque dur, carte réseau, etc.) est correctement reconnu par le noyau.
  • Débogage : Identifier des erreurs matérielles ou logicielles (ex. : problèmes de pilotes, conflits de ressources).
  • Surveillance du système : Voir les événements liés au démarrage ou à l’arrêt du système.
  • Analyse des performances : Repérer des messages d’avertissement ou d’erreur qui pourraient impacter les performances.

Comment utiliser dmesg ?

1. Afficher tous les messages du noyau :

dmesg

Remarque : La sortie peut être très longue. Utilisez un paginateur comme less :

dmesg | less

2. Filtrer les messages par niveau de gravité :

Les messages du noyau sont classés par niveau de gravité (priorité). Voici les niveaux les plus courants :

NiveauValeurDescription
emerg0Le système est inutilisable.
alert1Une action immédiate est nécessaire.
crit2Condition critique (ex. : panique du noyau).
err3Erreur matérielle ou logicielle.
warning4Avertissement (problème potentiel).
notice5Événement normal mais important.
info6Message informatif.
debug7Message de débogage (utile pour les développeurs).

Exemple : Afficher uniquement les erreurs (err) :

dmesg --level=err

3. Afficher les messages en temps réel :

Pour surveiller les nouveaux messages au fur et à mesure qu’ils apparaissent :

dmesg --follow

Équivalent à tail -f /var/log/dmesg


4. Rechercher un mot-clé spécifique :

Utilisez grep pour filtrer les messages :

dmesg | grep -i "usb"

Affiche tous les messages liés aux périphériques USB.


5. Limiter le nombre de lignes affichées :

dmesg | head -n 20

Affiche uniquement les 20 premières lignes.


6. Afficher les messages avec un horodatage lisible :

dmesg --human --time-format ctime

Affiche les messages avec une date et une heure lisibles.


7. Effacer le tampon du noyau :

Attention : Cette commande efface les messages du tampon. Utilisez-la avec prudence.

sudo dmesg --clear

Où sont stockés les messages de dmesg ? :

  • Les messages sont stockés dans le tampon du noyau (en mémoire).
  • Ils sont aussi souvent enregistrés dans le fichier :
/var/log/dmesg
  • Certains systèmes utilisent journalctl (avec systemd) pour consulter les logs du noyau :
journalctl -k
CommandeAprès le pipe |
dmesggrep -i « error »
dmesggrep -i « eth0 »
dmesggrep -i « sda »
dmesgtail -n 50
dmesg –level=err,warnAfficher uniquement les erreurs et avertissements.

Résumé :

  • dmesg est un outil puissant pour diagnostiquer des problèmes matériels ou logiciels.
  • Utilisez des filtres (grep, –level) pour cibler les informations utiles.
  • Combinez avec less, head, ou tail pour une lecture plus facile.

Sources : Le Chat Mistral

https://chat.mistral.ai/chat

Retour en haut