新Linux入門|dmesgコマンドの使い方を理解する:システム起動時のカーネルメッセージを確認する方法

Linuxが起動するとき、カーネルはハードウェアの認識やドライバの読み込みなど、
さまざまな初期化処理を行います。
その一連の動作を詳しく確認できるのが dmesgコマンド です💡

「最近USB機器を接続したのに認識されない…」
「ネットワークカードが正しく動かない…」
そんなとき、dmesg の出力をチェックすれば、原因のヒントが見つかることが多いんです👀

 ここでは、dmesg の基本的な使い方や、よく使うオプション・実行例をわかりやすく紹介していきます。

⚙️ dmesgコマンドとは?

 dmesg(display message) は、カーネルが記録しているリングバッファ(kernel ring buffer)の内容を表示するコマンドです。
このバッファには、起動時やデバイス認識時に生成されたメッセージが順番に格納されています。

🪶 ポイント

  • ハードウェア検出やドライバのロード状況がわかる。
  • 起動直後のトラブル原因を確認できる。
  • USB機器・ネットワーク機器の認識状況もチェックできる。

💡 リングバッファとは?
カーネル内部に設けられたメモリ領域で、メッセージが一定量を超えると古いデータから上書きされる仕組みです。

🧮 コマンド書式

dmesg [オプション]

🔍 基本構文の説明

項目説明
コマンド名dmesg
主な対象カーネルリングバッファ
実行権限一般ユーザーで可(一部オプションはroot権限が必要)
出力内容カーネル・デバイス・ドライバ関連メッセージ

⚙️ 主なオプション

オプション説明
-cメッセージを表示したあと、バッファをクリア(rootのみ)
-kカーネル関連のメッセージのみ表示
-l, --level指定したレベルのメッセージを抽出(例:err, warn, info)
-nコンソール出力のログレベルを変更
-sバッファサイズを指定して読み込む
-Tタイムスタンプを人が読みやすい形式で表示
-w新しいメッセージをリアルタイムで監視

📝 補足
dmesgのオプションはかなり豊富で、
AlmaLinux 9.6 に搭載されているバージョンでは次のように確認できます👇

[suzuki@AlmaLinux ~]$ dmesg --help

出力例の一部

使い方:
 dmesg [オプション]

カーネルのリングバッファを表示、制御します。

オプション:
 -C, --clear                 カーネルのリングバッファを消去します
 -c, --read-clear            読み込んでからすべてのメッセージを消去します
 -D, --console-off           コンソールに対するメッセージ出力を無効にします
 -E, --console-on            コンソールに対するメッセージ出力を有効にします
(省略)

🧪 使用例と実行結果

① 基本的な使い方

[suzuki@AlmaLinux ~]$ dmesg

出力例

(省略)
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007ffeffff] usable
[    0.000000] BIOS-e820: [mem 0x000000007fff0000-0x000000007fffffff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
(省略)

📘 解説

  • [0.000000] はカーネル起動からの経過時間(秒)
  • Linux version ... はカーネルのビルド情報
  • e820: 以降はメモリマップ情報です

② エラーレベルのログだけを表示

[suzuki@AlmaLinux ~]$ dmesg -l err

出力例

[suzuki@AlmaLinux ~]$ dmesg -l err
[    1.339573] systemd[1]: Invalid DMI field header.
[    3.242252] vmwgfx 0000:00:02.0: [drm] *ERROR* vmwgfx seems to be running on an unsupported hypervisor.
[    3.242255] vmwgfx 0000:00:02.0: [drm] *ERROR* This configuration is likely broken.
[    3.242256] vmwgfx 0000:00:02.0: [drm] *ERROR* Please switch to a supported graphics device to avoid problems.
[    4.716164] systemd[1]: Invalid DMI field header.

💡 ポイント
-lオプションにより、エラー(err)レベルのメッセージのみを抽出できます。
他にも warn(警告)や info(情報)などを指定できます。

③ タイムスタンプを人間が読みやすい形式に変換

[suzuki@AlmaLinux ~]$ dmesg -T

出力例

(省略)
[火 12月  9 22:40:26 2025] BIOS-provided physical RAM map:
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x0000000000100000-0x000000007ffeffff] usable
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x000000007fff0000-0x000000007fffffff] ACPI data
[火 12月  9 22:40:26 2025] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
(省略)

🕒 解説

  • タイムスタンプ [Mon Nov 25 01:04:11 2025] がわかりやすい形式で表示されます。
  • ログ解析やトラブル発生時間の特定に便利です。

④ カーネルメッセージバッファのクリア(root専用)

[root@AlmaLinux ~]# dmesg -c

出力例

(省略)
[    0.000000] Linux version 5.14.0-611.5.1.el9_7.x86_64.....
[    0.000000] The list of certified hardware and cloud instances.....
(省略)

💡 解説
-cオプションを指定すると、現在のメッセージを表示したあとにバッファをクリアします。
クリア後に再度 dmesg を実行しても、出力は空になります。

🌟 まとめ

 dmesgコマンド は、Linuxシステムの起動やハードウェア検出の“舞台裏”を確認できる便利なツールです🧠💻
特に以下のような場面で大活躍します👇

  • USBやディスクなどのデバイス認識を調べたいとき
  • システム起動時のエラーやドライバの不具合を確認したいとき
  • 起動直後のトラブル解析やハードウェア診断を行いたいとき

AlmaLinux 9.6 では、最新カーネルに対応した dmesg が搭載されており、
-T や -l などのオプションを駆使すれば、情報を整理して見やすく表示できます。

システム管理者にとって、dmesgはトラブルシューティングの第一歩です🐧✨