【ディーメッセージ】

dmesg とは?

💡 カーネルの「つぶやき」を読む唯一の窓口、ハードウェアトラブルの手がかりはここにある
📌 このページのポイント
dmesg とカーネルリングバッファ ハードウェア 起動・デバイス認識 USB 接続・切断 ディスクエラー メモリ不足 カーネル メッセージ出力 リングバッファ $ dmesg -T [10:01] USB connect [10:02] sda: I/O err [10:05] Out of mem [10:06] eth0: link up [10:08] disk error よく使うオプション dmesg -T 読みやすい日時形式 で表示 dmesg -w リアルタイム監視 (tail -f 的な) dmesg --level=err エラーだけに 絞り込み dmesg -c 表示後にバッファ をクリア
dmesg でカーネルメッセージを確認する仕組み
ひよこ ひよこ

dmesgって何が見られるの?

ペンギン先生 ペンギン先生

Linuxカーネルが出力する「つぶやき」を見るコマンドだよ。起動時にどのハードウェアを認識したか、USBを挿したときの情報、ディスクエラーの警告…カーネルレベルの出来事がすべて記録されているんだ

ひよこ ひよこ

いつ使うものなの?

ペンギン先生 ペンギン先生

ハードウェア関連のトラブルシュートが一番多いね。「USBデバイスが認識されない」「ディスクがおかしい」「ネットワークカードが動かない」こういうとき、まずdmesgを見ればエラーメッセージが出ていることが多いんだ

ひよこ ひよこ

dmesg の出力って時刻がよくわからない表示なの?

ペンギン先生 ペンギン先生

デフォルトだと起動からの秒数([ 12.345678]みたいな形式)で表示されるから分かりにくいよね。`dmesg -T` を使うと人間が読める日時形式に変換されるから、こちらがおすすめだよ。`dmesg -w` でリアルタイムにメッセージを監視することもできるんだ

ひよこ ひよこ

カーネルリングバッファって何なの?

ペンギン先生 ペンギン先生

カーネルがメッセージを溜めておくメモリ上の領域で、リング状になっているから古いメッセージは新しいもので上書きされるんだ。サイズは限られているから、起動から時間が経つと初期のメッセージは消えてしまう。だから重要なログは `/var/log/kern.log` や journald にも記録されるようになっているよ

ひよこ ひよこ

dmesgで特定の情報だけ見ることってできるの?

ペンギン先生 ペンギン先生

dmesg --level=err,warn でエラーと警告だけに絞り込めるよ。dmesg | grep -i usb でUSB関連だけ抽出するのもよく使うパターンだね。ちなみに最近のLinuxではdmesgの実行に sudo が必要になっていることがある。これはカーネルメッセージにメモリアドレスなどの機密情報が含まれるため、一般ユーザーへの情報漏洩を防ぐセキュリティ対策なんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「dmesg」って出てきたら「カーネルのメッセージを表示するコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「diagnostic message」 = 診断メッセージ
💬 diagnostic(診断)message(メッセージ)の略で、カーネルの診断情報を読むためのコマンドだよ
← 用語集にもどる