したがって、コンソールには 2 種類のメッセージがあります:
- カーネルによって生成されます (printk 経由);
- ユーザー空間 (通常は init システム) によって生成されます。
カーネル メッセージは常に kmsg バッファに格納され、dmesg
経由で表示されます .また、多くの場合、syslog にもコピーされます。 (これは /dev/kmsg
に書き込まれたユーザー空間メッセージにも適用されます 、しかしそれらはかなりまれです。)
一方、ユーザー空間が派手な起動ステータス テキストを /dev/console
に書き込むと、 または /dev/tty1
、どこにも保存されていません。画面に表示されるだけです。だから私はほとんど 何でも ローワンのシリアルコンソールの提案を除いて、ソリューションは非常にディストリビューション固有のものになるか (各 init システムが異なる方法でログを記録するため)、または strace やカーネルのハッキングなどを含む「侵襲的なハック」になります。
最良の場合、init システムは それ自体 すべての重要なイベントを syslog (/var/log/messages など) に記録します。例:
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 と upstart もサービスの stdout/stderr をログに記録します。他の多くの init システムは単にコンソールにリダイレクトするか、どこにもリダイレクトしません。)
1 つの提案として、別のラップトップで起動画面を高解像度およびフレーム レートで撮影し、その結果 (MOV - MP4 - AVI) をスロー再生することをお勧めします。 ) - 最善の解決策ではないかもしれませんが、単にデプロイしてデバッグするだけですよね?ちょっとしたアイデア ...