dshimizu/blog

アルファ版

HWの情報を取得できるdmidecodeコマンドが結構便利だと思った

はじめに

普段はあまりないかも知れませんが、HW構成などに関する詳細な情報を確認しなければならないことがあります。

例えば、サーバで物理的な故障が発生したとき、メーカー製のサーバであればサポートへ問い合わせて保守対応をしていただくことになりますが、問い合わせを行ったとき、故障した箇所や内容によってそのHWに関する情報を求めらることがあります。
HWシリアル番号、BIOSのバージョン情報、搭載されているメモリモジュールのメモリサイズ・数…等です。

そういった情報が分からないときにわざわざ電源を落としてBIOSの画面等から調べる…といったことはなかなか出来ないことが多いですが、Linux系OSであれば、そういった情報を知りたいときにdmidecodeというコマンドを利用できます。

RHEL系5系,6系であればdmidecodeパッケージをインストールする必要があります。
※CentOS6.4 x86_64の例


% rpm -qf /usr/sbin/dmidecode
dmidecode-2.11-2.el6.x86_64

以下はdmidecodeコマンドについてのメモです。

dmidecodeコマンド

dmidecodeはハードウェア情報をDMI(SMBIOS)に格納されている内容を解析して人間に読めるようなフォーマットとして報告します。
SMBIOS(System Management BIOS)とは簡単に言うとハードウェアの情報をBIOSに格納するための規格です。

オプションなしでコマンドを実行すると、取得可能な全ての情報が表示されます。
-qオプションで不明な情報や無効な情報、メーカー固有の情報を省いたり、-s オプションでキーワード文字を指定したり、-t でタイプを指定してできます。
※詳しくはmanを参照してください。

-sオプションで指定可能なキーワード

# dmidecode -s
dmidecode: option requires an argument -- 's'
Valid string keywords are:
bios-vendor
bios-version
bios-release-date
system-manufacturer
system-product-name
system-version
system-serial-number
system-uuid
baseboard-manufacturer
baseboard-product-name
baseboard-version
baseboard-serial-number
baseboard-asset-tag
chassis-manufacturer
chassis-type
chassis-version
chassis-serial-number
chassis-asset-tag
processor-family
processor-manufacturer
processor-version
processor-frequency
-tオプションで指定可能なタイプ

# dmidecode -t
dmidecode: option requires an argument -- 't'
Type number or keyword expected
Valid type keywords are:
bios
system
baseboard
chassis
processor
memory
cache
connector
slot

動作確認

環境

実行環境は以下です。

プラットフォーム さくらのVPS SSD 1Gモデル
OS CentOS 6.4 x86_64 (64bit)
実行

dmidecodeコマンドを実行していくつか情報を取得してみます。

BIOSの情報一覧を取得してみます。KVMゲストから実行したものですが、実際のBIOSから取得できた情報なのか分かりません...


# dmidecode -t bios
# dmidecode 2.11
SMBIOS 2.4 present.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Seabios
Version: 0.5.1
Release Date: 01/01/2007
Address: 0xE8000
Runtime Size: 96 kB
ROM Size: 64 kB
Characteristics:
BIOS characteristics not supported
Targeted content distribution is supported
BIOS Revision: 1.0

サーバのモデル名を取得してみます。KVM環境だと以下のような情報が取得できました。


# dmidecode -s system-product-name
KVM

HWのシリアルナンバーを取得してみます。KVMの環境だと取得できないようです。


# dmidecode -s system-serial-number
Not Specified

おわりに

HWに関する情報を取得するdmidecodeコマンドについて簡単に記載しました。

システムを停止したり、メーカーの管理ツールを使ったり、構成情報の資料を見たりしないと確認できないと思っていた情報でもコマンドで簡単に確認できるものもあります。
上記ではKVM環境で実行してみました結果ですが、物理マシン上で実行すると、システム製造元、モデル名、シリアル番号、BIOS バージョンやメーカー固有の情報(DELL製HWだとサービスタグ等)やメモリスロットに何GBのメモリモジュールが挿さっているかといった情報まで、細かい情報が確認できます。
管理がされていない詳細不明なHWでも情報を整理していけるかもしれません。