Linux dmidecodeコマンド完全ガイド!ハードウェア情報を簡単に取得しよう

Linux

Linuxを使っていて、こんな疑問を持ったことはありませんか?

「このパソコンのメモリは何GB搭載されているんだろう?」
「CPUの詳しい型番を知りたい」
「マザーボードのメーカーや型番は?」

Windowsなら「システム情報」で簡単に見られますが、Linuxではdmidecodeというコマンドを使うことで、詳細なハードウェア情報を取得できます。

「dmidecodeって何?」
「どうやって使うの?」
「どんな情報が分かるの?」

この記事では、dmidecodeコマンドについて、初心者の方にも分かりやすく、基本から実践的な使い方まで詳しく解説していきます。

スポンサーリンク

dmidecodeとは?ハードウェア情報の「辞書」

dmidecodeの基本的な意味

dmidecodeは「Desktop Management Interface Decode(デスクトップ管理インターフェース解読)」の略称です。

パソコンのBIOS/UEFIには、DMIテーブル(またはSMBIOSテーブル)という、ハードウェア情報が記録された特別な領域があります。

dmidecodeは、この情報を読み取って、人間が理解できる形式で表示してくれるコマンドです。

簡単に言えば、パソコンの内部に保存されているハードウェアの「取扱説明書」を読み取るツールだと考えてください。

なぜdmidecodeが必要なのか

パソコンのハードウェア情報を知りたい場面は、意外と多くあります。

活用シーン:

  • メモリの増設を検討する時
  • システムの互換性を確認する時
  • サーバーの資産管理をする時
  • トラブルシューティングで詳細情報が必要な時
  • システムの仕様をドキュメント化する時

ケースを開けずに、コマンド一つで詳しい情報が分かるのは便利ですよね。

dmidecodeで分かる情報

どんな情報を取得できるのか見ていきましょう。

BIOSの情報

  • BIOSのバージョン
  • BIOSのベンダー(製造元)
  • リリース日
  • BIOSのサイズ

システム情報

  • メーカー名
  • 製品名
  • バージョン
  • シリアル番号
  • UUID(固有識別番号)

マザーボード(ベースボード)の情報

  • メーカー
  • 製品名
  • バージョン
  • シリアル番号

プロセッサ(CPU)の情報

  • メーカー(Intel、AMDなど)
  • CPUファミリー
  • 型番
  • コア数
  • スレッド数
  • 最大速度
  • 現在の速度
  • ソケットタイプ

メモリの情報

  • 総容量
  • 各メモリモジュールの詳細
  • メモリスロット数
  • 空きスロット数
  • メモリの種類(DDR3、DDR4、DDR5など)
  • 動作速度
  • メーカー
  • シリアル番号

その他の情報

  • キャッシュメモリ
  • スロット(PCI、PCI Expressなど)
  • ポート情報
  • 冷却装置
  • 電源ユニット

dmidecodeの基本的な使い方

実際にコマンドを使ってみましょう。

基本構文

sudo dmidecode

重要: dmidecodeはroot権限が必要です。

必ずsudoを付けて実行します。

すべての情報を表示

引数なしで実行すると、すべてのハードウェア情報が大量に表示されます。

sudo dmidecode

出力が非常に多いので、通常は特定の情報だけを絞り込んで表示します。

出力をページ送りで見る

情報が多い場合は、lessコマンドと組み合わせます。

sudo dmidecode | less

スペースキーでページ送り、qキーで終了できます。

ファイルに保存

後で参照できるように、ファイルに保存することもできます。

sudo dmidecode > hardware_info.txt

タイプ別に情報を絞り込む

dmidecodeでは、情報の種類ごとに「タイプ番号」が割り当てられています。

主要なタイプ一覧

タイプ番号内容
0BIOS情報
1システム情報
2ベースボード(マザーボード)情報
3シャーシ情報
4プロセッサ(CPU)情報
16物理メモリアレイ
17メモリデバイス

タイプを指定して表示

構文:

sudo dmidecode -t タイプ番号

BIOS情報を表示:

sudo dmidecode -t 0

システム情報を表示:

sudo dmidecode -t 1

CPU情報を表示:

sudo dmidecode -t 4

メモリ情報を表示:

sudo dmidecode -t 17

キーワードで指定

タイプ番号の代わりに、分かりやすいキーワードも使えます。

BIOS情報:

sudo dmidecode -t bios

システム情報:

sudo dmidecode -t system

マザーボード情報:

sudo dmidecode -t baseboard

CPU情報:

sudo dmidecode -t processor

メモリ情報:

sudo dmidecode -t memory

実践的な使用例

よくある用途別の使い方を紹介します。

メモリの詳細情報を確認

メモリ増設を検討する際に便利です。

sudo dmidecode -t memory

確認できること:

  • 現在搭載されているメモリの容量
  • メモリスロットの総数
  • 空きスロット数
  • メモリの種類(DDR3、DDR4など)
  • 動作速度(MHz)
  • 各メモリモジュールのメーカーとシリアル番号

出力例の見方:

Handle 0x0030, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x002F
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8192 MB
        Form Factor: SODIMM
        Type: DDR4
        Speed: 2400 MT/s
        Manufacturer: Samsung

この例では、8GBのDDR4メモリがSamsungから供給されていることが分かります。

CPUの情報を確認

プロセッサの詳細を知りたい時に使います。

sudo dmidecode -t processor

確認できること:

  • CPUのメーカーと型番
  • コア数
  • スレッド数
  • クロック速度
  • ソケットタイプ
  • キャッシュサイズ

システムのシリアル番号を確認

資産管理やサポート問い合わせに必要な情報です。

sudo dmidecode -t system | grep Serial

シリアル番号だけを抽出して表示します。

マザーボードのメーカーと型番を確認

ドライバーをダウンロードする際などに必要です。

sudo dmidecode -t baseboard

または、特定の情報だけを抽出:

sudo dmidecode -t baseboard | grep -E "Manufacturer|Product"

BIOS/UEFIのバージョンを確認

アップデートの必要性を判断する時に使います。

sudo dmidecode -t bios

または、バージョン情報だけを抽出:

sudo dmidecode -t bios | grep Version

便利なオプション

dmidecodeには、さらに便利なオプションがあります。

-s オプション:特定の情報だけを表示

より簡潔に、特定の情報だけを取り出せます。

構文:

sudo dmidecode -s キーワード

使用できるキーワード:

システム情報:

sudo dmidecode -s system-manufacturer    # メーカー
sudo dmidecode -s system-product-name    # 製品名
sudo dmidecode -s system-version         # バージョン
sudo dmidecode -s system-serial-number   # シリアル番号
sudo dmidecode -s system-uuid            # UUID

BIOS情報:

sudo dmidecode -s bios-vendor            # BIOSベンダー
sudo dmidecode -s bios-version           # BIOSバージョン
sudo dmidecode -s bios-release-date      # リリース日

マザーボード情報:

sudo dmidecode -s baseboard-manufacturer # メーカー
sudo dmidecode -s baseboard-product-name # 製品名
sudo dmidecode -s baseboard-version      # バージョン
sudo dmidecode -s baseboard-serial-number # シリアル番号

プロセッサ情報:

sudo dmidecode -s processor-family       # CPUファミリー
sudo dmidecode -s processor-manufacturer # メーカー
sudo dmidecode -s processor-version      # バージョン

-q オプション:不要な情報を省略

ヘッダー情報などを省略して、要点だけを表示します。

sudo dmidecode -q

出力が簡潔になり、読みやすくなります。

-u オプション:生データを表示

通常は解釈された情報が表示されますが、生のバイナリデータも確認できます。

sudo dmidecode -u

高度なデバッグやトラブルシューティングで使用します。

スクリプトでの活用

dmidecodeをシェルスクリプトで使う例です。

システム情報を一覧表示するスクリプト

例:system_info.sh

#!/bin/bash

echo "=== システム情報 ==="
echo "メーカー: $(sudo dmidecode -s system-manufacturer)"
echo "製品名: $(sudo dmidecode -s system-product-name)"
echo "シリアル番号: $(sudo dmidecode -s system-serial-number)"
echo ""

echo "=== BIOS情報 ==="
echo "バージョン: $(sudo dmidecode -s bios-version)"
echo "リリース日: $(sudo dmidecode -s bios-release-date)"
echo ""

echo "=== CPU情報 ==="
sudo dmidecode -t processor | grep -E "Version|Core Count|Thread Count|Max Speed"
echo ""

echo "=== メモリ情報 ==="
sudo dmidecode -t memory | grep -E "Size|Type|Speed" | grep -v "No Module Installed"

実行方法:

chmod +x system_info.sh
./system_info.sh

メモリの総容量を計算

#!/bin/bash

total_memory=$(sudo dmidecode -t memory | grep "Size:" | grep -v "No Module" | awk '{sum+=$2} END {print sum}')

echo "メモリ総容量: ${total_memory} MB"

よくある問題と解決方法

dmidecodeを使う際のトラブル対処法です。

「Permission denied」エラー

原因:
root権限なしで実行しようとしました。

解決方法:
必ずsudoを付けて実行します。

sudo dmidecode

「/dev/mem: No such file or directory」エラー

原因:
仮想マシンやコンテナ環境で、デバイスファイルにアクセスできません。

解決方法:
仮想マシンの場合、ホストOSで実行するか、仮想マシンの設定を確認します。

Dockerコンテナの場合は、特権モードで起動する必要があります。

docker run --privileged ...

情報が「Not Specified」や「To Be Filled By O.E.M.」と表示される

原因:
メーカーがBIOSにその情報を記録していません。

特に自作PCやホワイトボックスサーバーで起こりやすいです。

解決方法:
残念ながら、dmidecodeでは取得できません。

他の方法(lshwhwinfoなど)を試すか、物理的に確認する必要があります。

仮想マシンで情報が少ない

原因:
仮想化環境では、実際のハードウェア情報ではなく、仮想化されたハードウェア情報が返されます。

対処:
これは正常な動作です。

仮想マシンの設定情報が表示されるため、物理的なハードウェア情報を知りたい場合は、ホストOSで実行します。

dmidecode以外のハードウェア情報取得方法

他のツールも知っておくと便利です。

lshw

より包括的なハードウェア情報を表示します。

sudo lshw

HTMLやXML形式での出力も可能です。

sudo lshw -html > hardware.html

hwinfo

非常に詳細なハードウェア情報を提供します。

sudo hwinfo

特定のハードウェアだけを表示:

sudo hwinfo --cpu      # CPU情報
sudo hwinfo --memory   # メモリ情報
sudo hwinfo --disk     # ディスク情報

inxi

簡潔で読みやすい形式でシステム情報を表示します。

inxi -F

オプション:

  • -F:完全な情報
  • -c:カラー表示
  • -b:基本情報のみ

lscpu

CPU情報に特化したコマンドです。

lscpu

dmidecodeより簡潔で読みやすい形式で表示されます。

free

メモリ使用状況を確認します。

free -h

-hオプションで、人間が読みやすい単位(GB、MBなど)で表示されます。

サーバー管理での活用

データセンターやサーバー管理での実践例です。

複数サーバーの情報を収集

大量のサーバーの情報を一括収集するスクリプト例:

#!/bin/bash

servers="server1 server2 server3"

for server in $servers; do
    echo "=== $server ==="
    ssh $server "sudo dmidecode -s system-serial-number"
    ssh $server "sudo dmidecode -t memory | grep 'Size:' | grep -v 'No Module' | awk '{sum+=\$2} END {print \"Total Memory:\", sum, \"MB\"}'"
    echo ""
done

資産管理用のCSV作成

サーバー資産台帳を作成する例:

#!/bin/bash

echo "Serial,Manufacturer,Model,CPU,Memory" > inventory.csv

serial=$(sudo dmidecode -s system-serial-number)
manufacturer=$(sudo dmidecode -s system-manufacturer)
model=$(sudo dmidecode -s system-product-name)
cpu=$(sudo dmidecode -t processor | grep "Version" | head -1 | cut -d: -f2 | xargs)
memory=$(sudo dmidecode -t memory | grep "Size:" | grep -v "No Module" | awk '{sum+=$2} END {print sum}')

echo "$serial,$manufacturer,$model,$cpu,${memory}MB" >> inventory.csv

まとめ:dmidecodeでハードウェアを深く理解しよう

dmidecodeコマンドについて、重要なポイントをおさらいしましょう。

dmidecodeとは:

  • DMI/SMBIOSテーブルからハードウェア情報を取得するコマンド
  • BIOSに記録されている情報を人間が読める形式で表示
  • ケースを開けずに詳細情報が分かる

取得できる主な情報:

  • BIOS/UEFIのバージョン
  • システム情報(メーカー、型番、シリアル番号)
  • CPU情報(型番、コア数、速度)
  • メモリ情報(容量、種類、速度、スロット)
  • マザーボード情報

基本的な使い方:

sudo dmidecode              # すべて表示
sudo dmidecode -t 4         # CPU情報
sudo dmidecode -t memory    # メモリ情報
sudo dmidecode -s system-serial-number  # シリアル番号のみ

便利なオプション:

  • -t:タイプ別に表示
  • -s:特定の情報だけ抽出
  • -q:簡潔な表示

活用シーン:

  • メモリ増設の検討
  • システムの仕様確認
  • サーバーの資産管理
  • トラブルシューティング
  • ドキュメント作成

他の便利なコマンド:

  • lshw:包括的なハードウェア情報
  • hwinfo:非常に詳細な情報
  • lscpu:CPU情報に特化
  • inxi:読みやすい形式

dmidecodeは、Linuxシステム管理者にとって必須のツールです。

ハードウェアの詳細を知ることで、適切なアップグレードやトラブルシューティングができるようになります。

まずは自分のパソコンでsudo dmidecodeを実行して、どんな情報が得られるか確認してみてくださいね!

コメント

タイトルとURLをコピーしました