【dmesg】Linuxコマンド_システムメッセージの表示

「dmesg」はLinuxにおいてシステムメッセージを表示するコマンドとなります。
dmesgにおけるシステムメッセージはデータを保存する場所である「メッセージバッファー」は保存領域が決まっており、バッファーサイズを超過するとメッセージデータは先頭から上書きされます。

dmesgコマンドはこのメッセージバッファーを表示するため構築時点からの全てのメッセージデータを表示することはできません。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「gdmesg」コマンドの使い方(Linux)

「dmesg」コマンドを実行した結果は以下となります。

$ dmesg
[    0.000000] Linux version 4.18.0-305.19.1.el8_4.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC)) #1 SMP Wed Sep 15 15:39:39 UTC 2021
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt2)/boot/vmlinuz-4.18.0-305.19.1.el8_4.x86_64 root=UUID=1e23396e-b0cc-43cf-8183-ddc04d9fc634 ro crashkernel=auto rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8r
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    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-0x000000001fffdfff] usable
[    0.000000] BIOS-e820: [mem 0x000000001fffe000-0x000000001fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.4 present.
[    0.000000] DMI: Fedora Project OpenStack Nova, BIOS 0.5.1 01/01/2011
[    0.000000] Hypervisor detected: KVM
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000000] kvm-clock: cpu 0, msr 1b001001, primary cpu clock

------中略------

「dmesg」dは主にハードウェア関連の情報を表示する

「dmesg」コマンドの出力結果はLinuxOS起動時に出力されるようなハードウェア関連の情報が主になります。

通常の「dmesg」コマンドのみだと全てのシステムメッセージが表示されるため、表示する情報を絞って確認する方法もあります。
以下ではCPUの情報を調べた際に「grep」コマンドを使用した例となります。

$ dmesg | grep cpu
[    0.000000] kvm-clock: cpu 0, msr 1b001001, primary cpu clock
[    0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:1 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] percpu: Embedded 54 pages/cpu s184320 r8192 d28672 u2097152
[    0.000000] pcpu-alloc: s184320 r8192 d28672 u2097152 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] kvm-guest: stealtime: cpu 0, msr 1f42c080
[    0.001000] rcu: 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=1.
[    0.001000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.029260] cpuidle: using governor menu
[    0.030964] cryptd: max_cpu_qlen set to 1000

「dmesg」コマンドオプション

「dmesg」コマンドのオプションは以下の通りとなります。

$ dmesg --help

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

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

オプション:
 -C, --clear                 カーネルのリングバッファを消去します
 -c, --read-clear            読み込んでからすべてのメッセージを消去します
 -D, --console-off           コンソールに対するメッセージ出力を無効にします
 -E, --console-on            コンソールに対するメッセージ出力を有効にします
 -F, --file <file>           カーネルのログバッファではなく、ファイルを使用して出力します
 -f, --facility <一覧>       指定された分類のメッセージのみを出力します
 -H, --human                 人間にとって読みやすい形式で出力します
 -k, --kernel                カーネルメッセージを表示します
 -L, --color[=<時期>]        メッセージを色づけします
                               (auto、always、never のどれか)
                               カラー表示はデフォルトで有効です
 -l, --level <list>          指定されたレベルのメッセージのみを出力します
 -n, --console-level <レベル> コンソールに出力すべきメッセージのレベルを指定します
 -P, --nopager               出力をページャに渡さずに出力します
 -p, --force-prefix          force timestamp output on each line of multi-line messages
 -r, --raw                   加工を行なわずにメッセージバッファを出力します
 -S, --syslog                /dev/kmsg ではなく、 syslog(2) を強制します
 -s, --buffer-size <サイズ>  カーネルのリングバッファに問い合わせる際のバッファサイズを指定します
 -u, --userspace             ユーザスペースのメッセージを出力します
 -w, --follow                新しいメッセージの到着を待ちます
 -x, --decode                分類とレベルを読みやすい形式に変換します
 -d, --show-delta            出力されたメッセージ間での時刻差を表示します
 -e, --reltime               ローカルの時刻と時刻差の両方を、読みやすい形式で表示します
 -T, --ctime                 人間にとって読みやすい形式でタイムスタンプを表示します(精度が落ちるかもしれません!)
 -t, --notime                メッセージのタイムスタンプを出力しません
     --time-format <形式>    タイムスタンプの表示形式を指定します:
                               [delta|reltime|ctime|notime|iso]
サスペンドやレジュームを行うと ctime と iso のタイムスタンプは不正確になります。

 -h, --help                  このヘルプを表示します
 -V, --version               バージョンを表示します

利用可能なログ分類:
    kern - カーネルメッセージです
    user - 特に規定のないユーザ定義のメッセージです
    mail - メールシステムのメッセージです
  daemon - システムデーモンのメッセージです
    auth - セキュリティ/認可メッセージです
  syslog - syslogd が内部で生成したメッセージです
     lpr - ラインプリンタサブシステムです
    news - network news サブシステムです

利用可能なログレベル (優先度):
   emerg - システムが利用できない状態です
   alert - すぐに処理しなければならないものです
    crit - 致命的な状態です
     err - エラー状態です
    warn - 警告状態です
  notice - 特に問題のない状態ですが、特定の状況を表すものです
    info - 参考情報です
   debug - デバッグレベルのメッセージです

詳しくは dmesg(1) をお読みください。

「dmesg」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!