ホーム > パッケージ・システム管理 > dmesg

dmesg: カーネルメッセージの確認

dmesgコマンドは、Linuxカーネルのメッセージバッファの内容を出力します。システムの起動プロセス、ハードウェアの検出、ドライバのエラーなど、カーネル関連のログを確認する際に役立ち、システムの問題診断やデバッグに不可欠なツールです。

概要

dmesgは、カーネルが起動時に生成するメッセージ、ハードウェアの初期化情報、ドライバのロード状態、システムのエラーなどを記録するカーネルリングバッファの内容を表示します。このバッファは固定サイズであり、新しいメッセージが入ってくると古いメッセージが上書きされる可能性があります。

主な特徴

  • システム起動メッセージの確認
  • ハードウェア検出および初期化情報
  • ドライバのロードとエラー診断
  • カーネルパニックまたはクラッシュ情報
  • リアルタイムカーネルイベントの監視(一部オプションを使用)

主なオプション

dmesgコマンドは、カーネルメッセージの出力を制御し、フィルタリングするための様々なオプションを提供します。

出力形式と制御

メッセージのフィルタリング

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`dmesg` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

dmesgコマンドを活用してカーネルメッセージを確認し、特定の情報をフィルタリングする様々な方法を示します。

基本的なカーネルメッセージの出力

dmesg

カーネルリングバッファのすべての内容を出力します。

読みやすい出力(ページャと色付け)

dmesg -H

出力をページャにパイプし、色を適用してスクロールと可読性を向上させます。

人間が読めるタイムスタンプ付きで出力

dmesg -T

メッセージに正確なタイムスタンプを追加し、いつ発生したかを簡単に把握できるようにします。

USB関連メッセージのフィルタリング

dmesg | grep -i usb

dmesgの出力をgrepと組み合わせて、USBデバイス関連のメッセージのみを検索します。

エラー(error)レベルのメッセージのみ出力

dmesg -l err

カーネルリングバッファから「err」レベルのメッセージのみをフィルタリングして出力します。

新規カーネルメッセージのリアルタイム追跡

dmesg -w

新しいカーネルメッセージが発生するたびに、即座にターミナルに出力します。システム監視に便利です。

ヒントと注意点

dmesgは強力な診断ツールですが、その膨大な出力のため、効率的な使用法を習得することが重要です。

便利な組み合わせ

dmesgは単独で使用するよりも、他のテキスト処理ツールと組み合わせることでさらに強力になります。

  • `dmesg | less`: 出力が長すぎる場合にページ単位で確認
  • `dmesg | grep -i 'error|fail'`: エラーまたは失敗メッセージを検索
  • `dmesg -T | tail`: 最新のカーネルメッセージ数行のみを確認
  • `dmesg | head -n 20`: 最初の20行のみを確認(主に起動初期のメッセージ)

注意点:バッファクリア (-c)

`-c`オプションはカーネルリングバッファをクリアするため、重要なログが失われる可能性があります。このオプションは、デバッグ目的で特定の時点からのメッセージを新たに収集する場合にのみ慎重に使用してください。

dmesgとjournalctlの違い

dmesgはカーネルリングバッファのメッセージのみを表示するのに対し、`journalctl`はsystemdジャーナルに記録されたすべてのシステムログ(カーネル、サービス、アプリケーションなど)を管理・照会する、より包括的なツールです。最新のシステムでは`journalctl`がより好まれる場合があります。


同じカテゴリのコマンド