Linuxシステムを運用していると、予期しないトラブルやハードウェアのエラー、ドライバの問題に遭遇することがあります。そんなときに役立つのが「カーネルログ」です。Linuxでは、カーネルが出力するメッセージを記録したログファイルがあり、それが/var/log/kern.log
です。このファイルを確認することで、システムの奥深くで何が起きているのかを把握できます。この記事では、/var/log/kern.log
の基本的な確認方法から、ログの読み方、トラブルシューティングへの活用までをわかりやすく解説します。Linux初心者から中級者の方まで、ぜひ参考にしてください。
/var/log/kern.log
は、Linuxカーネルが出力するログメッセージを格納するファイルです。カーネルはOSの中核部分で、ハードウェアの制御やプロセス管理などを担当しています。そのため、カーネルログには以下のような情報が含まれます。
システムの起動やシャットダウン時、異常時の動作など、普段は目にしない低レイヤの処理内容を確認できる重要なログです。
Linuxディストリビューションによっては、/var/log/kern.log
が存在しないことがあります。Debian系(Ubuntuなど)では一般的にこのファイルが使われますが、Red Hat系(CentOS、RHEL)などでは/var/log/messages
やjournalctl
を使うのが主流です。
以下のコマンドでファイルの存在を確認できます。
ls -l /var/log/kern.log
ファイルが存在しない場合、rsyslog
の設定やログレベルが原因の可能性があります。
ログファイルを確認する際、以下のようなコマンドを使うと便利です。
cat /var/log/kern.log
ただし、この方法だと長いログファイルを一気に出力するため、見にくくなります。
less /var/log/kern.log
矢印キーやスペースでスクロールでき、検索(/キーワード
)も可能です。
tail /var/log/kern.log
tail -n 50 /var/log/kern.log
-n
オプションで表示行数を指定できます。
tail -f /var/log/kern.log
ログが追記されるたびにリアルタイムで画面に出力されます。デバイスの接続テストなどに有効です。
ログの一部を例にとって見てみましょう。
Apr 5 10:25:36 hostname kernel: [12345.678901] usb 3-2: new high-speed USB device number 4 using xhci_hcd
このログの見方は以下の通りです。
このように、カーネルの動作ログには、接続されたデバイスの詳細や異常の兆候が記録されています。
/var/log/kern.log
が生成されていない場合、rsyslogがカーネルログを記録していない可能性があります。
設定ファイルは以下のいずれかです:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
設定の一例:
kern.* /var/log/kern.log
このように記述されていれば、すべてのカーネルレベルのメッセージが/var/log/kern.log
に記録されます。設定変更後はrsyslogを再起動します。
sudo systemctl restart rsyslog
多くのディストリビューションでは、systemd
の導入によりjournalctl
が標準となっています。/var/log/kern.log
がなくても、以下のコマンドでカーネルログを確認できます。
journalctl -k
特定期間のカーネルログを見たい場合:
journalctl -k --since "1 hour ago"
ブートごとのログを確認したい場合:
journalctl -k -b
複数の起動履歴がある場合、どのブートのログを確認したいかを選択することも可能です。
カーネルログにUSB接続に関するエラーが記録されることで、ケーブル断線や電力不足が原因であると判断できることがあります。
ATA bus error
やI/O error
のようなログが出る場合、ハードディスクの劣化や接続不良を疑えます。
モジュールの読み込みエラーが記録されると、対応ドライバが不足している、あるいはバージョンが適合していないことが分かります。
特定の情報だけを抽出したいときにはgrep
が便利です。
grep usb /var/log/kern.log
エラーのみを見たい場合は次のように:
grep -i error /var/log/kern.log
カーネルが再起動した原因を追いたいときは次のようなキーワードが役立ちます:
grep -i panic /var/log/kern.log
/var/log/kern.log
は、Linuxカーネルの動作を記録した非常に重要なログファイルです。ハードウェアやドライバまわりのトラブルシューティングには欠かせない情報源であり、ログを読み解く力がLinux管理者としてのスキル向上にもつながります。
Debian系以外ではこのファイルが存在しないこともありますが、journalctl -k
で代替が可能です。普段からログを定期的に確認しておくことで、トラブルの早期発見や対応にもつながるため、ぜひ習慣づけていきましょう