Linuxの起動時のイベントを確認する dmesg コマンドの使い方

Linuxのシステム管理において、起動時のイベントやカーネルのログを確認することは、トラブルシューティングやパフォーマンスの監視において重要です。そのための便利なコマンドの一つが dmesg です。本記事では、dmesg コマンドの基本的な使い方から応用的な活用方法まで詳しく解説します。


dmesg コマンドとは?

dmesg(diagnostic messageの略)は、Linuxカーネルのログバッファの内容を表示するコマンドです。このコマンドを使用すると、システムの起動プロセス、ハードウェアの検出、ドライバのロード状況、エラーなどを確認できます。

特に、以下のような場合に役立ちます。

  • システムの起動時の問題の特定
  • ハードウェアの認識状況の確認
  • カーネル関連のエラーメッセージの解析
  • デバイス接続時のログ確認

dmesg コマンドの基本的な使い方

1. 全てのカーネルログを表示

dmesg を単体で実行すると、カーネルリングバッファのすべてのメッセージが表示されます。

$ dmesg

表示されるログには、カーネルが出力したメッセージが含まれています。ただし、そのままでは情報量が多いため、適切にフィルタリングする必要があります。

2. less と組み合わせてページネーション表示

ログが長い場合は、less コマンドと組み合わせるとスクロールしながら閲覧できます。

$ dmesg | less

3. 特定のキーワードを検索

特定の情報を探す場合、grep を使うと便利です。

例えば、ネットワーク関連のメッセージを検索するには以下のように実行します。

$ dmesg | grep -i network

USBデバイスの認識状況を確認する場合は、次のようにします。

$ dmesg | grep -i usb

dmesg の出力を読みやすくするオプション

1. タイムスタンプを付ける

デフォルトの dmesg 出力では時間情報が分かりにくいため、-T オプションを使うことで、人間が読みやすい形式のタイムスタンプを表示できます。

$ dmesg -T

このオプションを使うと、出力が次のようになります。

[Sat Mar 2 10:15:03 2025] ACPI: Core revision 20240212
[Sat Mar 2 10:15:03 2025] Linux version 5.15.0-76-generic (buildd@lgw01-amd64-055) (gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0) ...

2. ログのレベルごとにフィルタリング

dmesg のログには異なるレベルのメッセージが含まれています。特定の種類のメッセージのみを表示する場合、-l オプションを使用します。

例えば、エラーメッセージのみを表示するには以下のように実行します。

$ dmesg -l err

利用できるレベルは以下の通りです。

  • emerg(緊急)
  • alert(警告)
  • crit(致命的なエラー)
  • err(エラー)
  • warn(警告)
  • notice(通知)
  • info(情報)
  • debug(デバッグ情報)

dmesg のログを永続的に保存する

dmesg のログはシステムを再起動するとリセットされてしまいます。必要な情報を保持するには、ログファイルに保存することが推奨されます。

例えば、次のようにして /var/log/dmesg.log にログを保存できます。

$ sudo dmesg > /var/log/dmesg.log

また、journalctl コマンドを使用すると、dmesg のログを含めたカーネルメッセージを参照できます。

$ journalctl -k

dmesg を活用したトラブルシューティング

1. システム起動時のエラーを調査

システムが正常に起動しない場合、dmesg を使用してエラーメッセージを特定できます。

$ dmesg -T | grep -i error

2. ハードウェアの認識状況を確認

新しいデバイスを接続した際に、正しく認識されているかを確認できます。

$ dmesg -T | grep -i usb

3. ネットワーク接続のトラブルシューティング

ネットワークインターフェースの初期化やエラーメッセージを確認できます。

$ dmesg -T | grep -i eth

まとめ

dmesg コマンドは、Linuxカーネルのログを確認し、システムの状態やトラブルシューティングに役立つ強力なツールです。本記事では基本的な使い方から、オプションを活用した効率的なログの検索、トラブルシューティングの方法まで紹介しました。システム管理を行う際は、ぜひ dmesg コマンドを活用して、システムの動作を詳細に把握しましょう。

タイトルとURLをコピーしました