「dmesg」はLinuxにおいてシステムメッセージを表示するコマンドとなります。
dmesgにおけるシステムメッセージはデータを保存する場所である「メッセージバッファー」は保存領域が決まっており、バッファーサイズを超過するとメッセージデータは先頭から上書きされます。
dmesgコマンドはこのメッセージバッファーを表示するため構築時点からの全てのメッセージデータを表示することはできません。
「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エンジニアが自宅で学習ができるオンラインスクール比較 | |