Votre console a donc deux types de messages :
- généré par le noyau (via printk) ;
- généré par l'espace utilisateur (généralement votre système d'initialisation).
Les messages du noyau sont toujours stockés dans le tampon kmsg, visible via dmesg
. Ils sont également souvent copiés dans votre syslog. (Cela s'applique également aux messages de l'espace utilisateur écrits dans /dev/kmsg
, mais ceux-ci sont assez rares.)
Pendant ce temps, lorsque l'espace utilisateur écrit son texte d'état de démarrage fantaisiste sur /dev/console
ou /dev/tty1
, il n'est stocké nulle part. Il va juste à l'écran et c'est tout. Donc je pense à peu près tout solution - à l'exception de la suggestion de la console série de Rowan - finira par être soit très spécifique à la distribution (en raison du fait que chaque système d'initialisation effectue la journalisation différemment) ou un "piratage invasif" qui implique le piratage de strace ou du noyau ou autre.
Dans le meilleur des cas, votre système d'initialisation sera lui-même consigner tous les événements importants dans le syslog (/var/log/messages ou autre). Par exemple :
systemd[1]: Starting BIRD routing daemon...
bird[478296]: /etc/bird.conf, line 2: syntax error
systemd[1]: bird.service: Control process exited, code=exited status=1
systemd[1]: Failed to start BIRD routing daemon.
(systemd et upstart enregistrent également la sortie stdout/stderr des services ; de nombreux autres systèmes d'initialisation le redirigent simplement vers la console ou nulle part.)
Une suggestion consiste à demander à un autre ordinateur portable de filmer l'écran de démarrage avec une résolution et des fréquences d'images élevées, puis de ralentir la lecture du résultat (MOV - MP4 - AVI ) - peut-être pas la meilleure solution mais simplement à déployer et à déboguer de toute façon, n'est-ce pas ? Juste une idée...