Quindi la tua console ha due tipi di messaggi:
- generato dal kernel (tramite printk);
- generato dallo spazio utente (di solito il tuo sistema init).
I messaggi del kernel sono sempre memorizzati nel buffer kmsg, visibile tramite dmesg
. Sono anche spesso copiati nel tuo syslog. (Questo vale anche per i messaggi in spazio utente scritti in /dev/kmsg
, ma sono abbastanza rari.)
Nel frattempo, quando lo spazio utente scrive il suo fantasioso testo sullo stato di avvio in /dev/console
o /dev/tty1
, non è memorizzato da nessuna parte. Va solo sullo schermo e basta. Quindi penso praticamente qualsiasi La soluzione, fatta eccezione per il suggerimento della console seriale di Rowan, finirà per essere molto specifica della distribuzione (a causa del fatto che ogni sistema init esegue la registrazione in modo diverso) o un "hack invasivo" che coinvolge strace o hacking del kernel o simili.
Nel migliore dei casi, il tuo sistema init si da solo registrare tutti gli eventi importanti nel syslog (/var/log/messages o simili). Ad esempio:
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 e upstart registrano anche lo stdout/stderr dei servizi; molti altri sistemi init lo reindirizzano semplicemente alla console o da nessuna parte.)
Un suggerimento è di fare in modo che un altro laptop filmi la schermata di avvio con alta risoluzione e frame rate, quindi riproduca lentamente il risultato (MOV - MP4 - AVI ) - forse non è la soluzione migliore ma semplicemente da distribuire ed è comunque per il debug giusto? Solo un'idea...