lshw, dmidecode, hwinfoを使いこなす:Linuxハードウェア情報を徹底的に調査

Linux tutorial - IT technology blog
Linux tutorial - IT technology blog

わずか5分でサーバー構成を確認する

ドキュメントのない古いDell PowerEdgeサーバーを倉庫から受け取ったと想像してみてください。RAMが何枚刺さっているか、バス速度はいくつか、あるいはドライブがエンタープライズ向けSSDなのか標準的なHDDなのか気になるはずです。わざわざ電源を切って筐体を開ける代わりに、以下の3つの「必携」コマンドを使えば、コンポーネントの全情報を把握できます。

始める前に、これらのツールがインストールされていない場合はインストールしてください。最小構成(minimal)のディストリビューションでは、これらがプリインストールされていないことがよくあります。

# Ubuntu/Debianの場合
sudo apt update && sudo apt install lshw dmidecode hwinfo -y

# CentOS/RHEL/AlmaLinuxの場合
sudo yum install lshw dmidecode hwinfo -y

全体像を素早く把握する最も簡単な方法は、サマリーコマンドを使用することです。

sudo lshw -short

このコマンドは、CPU、RAMからPCI拡張カードまで全体をスキャンします。上司やクライアントにマシンの構成を迅速に報告する必要がある場合に非常に便利です。

主要な3つのハードウェア確認ツール

1. lshw – ハードウェアをツリー構造でリスト表示

lshw (List Hardware) は、詳細なレポートを抽出するための最も包括的なツールです。/proc内のファイル、DMIテーブル、およびマザーボード上のPCI/USBバスからデータを収集します。

私がよく使うテクニックは、情報をHTMLファイルに出力することです。これにより、真っ暗なターミナルのスクリーンショットを撮るよりも、はるかにプロフェッショナルなレポートに見えます。

sudo lshw -html > server-config-01.html

特定のコンポーネント(例えばディスクなど)を詳しく調べたい場合は、-classパラメータを使用します。

sudo lshw -class disk -class storage

ディスクのモデル(Samsung 870 EVOやIntel NVMeなど)、実際の容量、および使用されている接続規格がすぐに確認できます。

2. dmidecode – BIOSとRAMの詳細情報を読み取る

lshwとは異なり、dmidecodeはDMI(Desktop Management Interface)テーブルからのデータの読み取りに特化しています。ここには、シリアル番号、BIOSバージョン、各RAMスロットの詳細などの「機密」情報が格納されています。

128GBのRAMを搭載したデータベースサーバーのクラスターを管理していた際、私はdmidecodeを使用して、筐体を開けることなく空きスロットを正確に特定しました。次のコマンドを実行するだけです。

sudo dmidecode -t memory

結果には、合計スロット数、現在のRAMがDDR4かDDR5か、速度が3200MT/sか4800MT/sかが表示されます。この情報は、アップグレード用に正しい種類のRAMを購入し、バスの競合によるシステムのフリーズを避けるのに役立ちます。

DellやHPの公式サイトで保証状況を確認するためにシリアル番号を取得するには、次のコマンドを使用します。

sudo dmidecode -s system-serial-number

3. hwinfo – 周辺機器の検出ツール

hwinfoはもともとOpenSUSE向けに開発されましたが、現在はすべてのLinux OSで普及しています。最大の利点は、ハードウェア、特に周辺機器とドライバーを非常に深く調査(プローブ)できることです。

非常に簡潔な要約を表示したい場合は、次のように入力します。

hwinfo --short

ネットワークカードに問題が発生した場合、私はよく次のコマンドを使用して、それを制御しているドライバー(kernel module)を確認します。

hwinfo --network

hwinfoからのデータには、リンク状態(up/down)と最大サポート速度(1Gbpsまたは10Gbps)が明確に表示されます。これにより、SysAdminはドライバーのエラーやポートの故障による頻繁なネットワーク切断トラブルを迅速に解決できます。

スマートなデータフィルタリングのテクニック

ターミナルから何千行もの結果を読み取るのは苦痛です。代わりに、grepと組み合わせて必要な情報を絞り込みましょう。

例えば、CPUの物理コア数と正確なモデル名を知るには:

sudo lshw -class processor | grep -E "product|vendor|width"

ファームウェアの不具合によりディスクの動作が異常に遅いと疑われる場合は、分析のために詳細なログを出力できます。

hwinfo --disk --log=check_disk.log

ITエンジニアのための実戦経験

長年のシステム管理を経て、ハードウェアを確認する際の3つの黄金律を導き出しました:

  • 常にRoot権限を使用する: sudoがないと、結果が空になったり、DMIテーブルやPCIバスからの重要な情報が欠落したりします。
  • 複数のツールを組み合わせる: 完璧なコマンドはありません。仮想マシン(VM)や自作サーバーでは、dmidecodeでシリアル番号を読み取れないことがありますが、その場合はlshwが最良の代替案となります。
  • 定期的に構成を保存する: 新しいサーバーのセットアップが完了するたびに、lshw -htmlを実行して保存しておきましょう。数年後にコンポーネントが故障した際、推測に頼ることなく、交換のためにどのモデルを購入すべきか正確に把握できます。

これらのコマンドをマスターすることで、トラブルシューティングの際により自信を持つことができます。推測に頼るのではなく、常に正確な技術的数値に基づいてアップグレードや修理の判断を下せるようになります。

Share: