Linux / Commande dmesg : lire les messages du noyau et du démarrage
dmesg lit les messages du tampon circulaire du noyau Linux, utiles pour examiner le démarrage, les pilotes, le matériel et les systèmes de fichiers. Ce tampon a une capacité limitée : d’anciens messages peuvent être remplacés. Une liste vide ou filtrée ne prouve donc pas l’absence de problème, et les horodatages doivent être interprétés avec leur contexte.
Consulter les messages et leur horodatage
La lecture simple affiche les messages disponibles. Pour une sortie longue, utilisez un pager :
dmesg | less
Parcourez avec les flèches et quittez less avec q. dmesg sans option permet aussi une lecture directe. Le format de temps habituel indique des secondes depuis le démarrage ; un extrait fictif montre sa structure :
[ 12.345678] device: warning message
Le nombre précède le texte du message. Il ne s’agit pas d’une date civile complète. Pour une enquête, relevez aussi le périphérique, le pilote et les événements voisins ; une ligne isolée peut manquer de contexte.
Une présentation plus lisible est disponible avec -H, qui active normalement un pager. -T convertit les horodatages en dates lisibles :
dmesg -H
dmesg -T
Ne traitez pas la conversion -T comme une référence parfaite. Le manuel signale notamment les problèmes après suspension et reprise : la conversion utilise un décalage calculé avec les horloges courantes et peut mal dater des messages plus anciens. Une correction de l’horloge et le contexte du démarrage comptent également lors d’une corrélation avec d’autres journaux.
Filtrer les niveaux sans omettre les plus graves
dmesg --level=err,warn
Cette sélection comprend exactement les niveaux err et warn. Elle n’inclut pas automatiquement emerg, alert ou crit, qui sont plus graves. Pour inclure explicitement ces cinq niveaux :
dmesg --level=emerg,alert,crit,err,warn
Pour voir seulement les trois dernières lignes d’une sélection, la forme suivante reprend le filtre limité à err et warn :
dmesg --level=err,warn | tail -n 3
Ce sont trois lignes, pas nécessairement trois événements complets si un message comporte plusieurs lignes. Commencez plus large lorsque le contexte est utile. Une absence de sortie peut simplement signifier qu’aucun message des niveaux choisis n’est présent dans le tampon encore disponible ; vérifiez aussi les diagnostics d’accès.
Suivre les nouveaux messages et arrêter la lecture
dmesg --follow
-w est le raccourci de --follow. La commande affiche les messages puis attend les suivants ; utilisez Ctrl+C pour interrompre ce suivi. L’interruption termine la lecture, sans vider le tampon. Cette fonction nécessite un /dev/kmsg lisible ; elle n’est pas disponible dans tout environnement.
Pour attendre uniquement les nouveaux messages, les versions qui le proposent disposent de --follow-new, raccourci -W. Vérifiez dmesg --help avant de l’utiliser si votre distribution fournit une version différente.
| Option | Objet |
|---|---|
| --level=LISTE | Choisir des niveaux séparés par des virgules. |
| -T | Convertir les horodatages en temps lisible, avec les limites de conversion indiquées. |
| -H | Activer une présentation lisible et normalement un pager. |
| -w | Continuer à attendre les messages. |
| -k | Limiter aux messages du noyau. |
Distinguer accès refusé, ancien démarrage et effacement
Une erreur d’autorisation n’est pas une absence de message. Certaines distributions restreignent la lecture, notamment avec le réglage dmesg_restrict. Vérifiez la politique de la machine et utilisez le compte autorisé pour ce diagnostic ; désactiver une restriction globale n’est pas nécessaire à la simple lecture prévue par cette politique.
Pour un démarrage précédent, dmesg n’est pas une archive permanente. Sur un système utilisant le journal systemd, consultez les démarrages conservés, puis leurs messages noyau :
journalctl --list-boots
journalctl -k -b -1
-1 vise le démarrage précédant le dernier démarrage présent dans le journal ; pour une consultation locale habituelle, c’est le précédent. L’accès et la présence de ces messages dépendent de la collecte et de la conservation du journal. Un journal non conservé après redémarrage ne permet pas de recréer les messages disparus du tampon.
Réservez les options de contrôle à une intervention distincte : -c, ou --read-clear, lit puis vide le tampon ; -C, ou --clear, le vide. Ne les utilisez pas pour une consultation. Vérifiez la casse des options, car -c et -C sont différents. La lecture ne demande aucun retour arrière ; un effacement, lui, ne restaure pas les messages effacés.
Le manuel dmesg de util-linux détaille filtres, suivi et horodatages. Le manuel journalctl de systemd précise la sélection des messages noyau et des démarrages conservés.




