Linuxを使っていると、こんな疑問が湧くことがあります。
「このパソコン、CPUは何コア?」
「メモリは何GB搭載されている?」
「グラフィックカードは何が入っているの?」
「ネットワークカードのモデル名は?」
Windowsならデバイスマネージャーで簡単に確認できますが、Linuxではどうすればいいのでしょうか。
この記事では、Linuxでハードウェア情報を詳しく調べられる便利なコマンド lshw(エルエスエイチダブリュー) について、初心者の方にも分かりやすく解説していきます。
lshw(List Hardware)とは何か?
lshw は「LiSt HardWare(ハードウェアをリスト表示)」の略で、Linuxシステムに搭載されているハードウェアの詳細情報を表示するコマンドです。
一言で言うと、パソコンの中身を丸裸にして、すべての部品を教えてくれるツールです。
何が分かるのか?
lshwを使うと、以下のような情報が分かります:
基本情報:
- マザーボードのメーカーとモデル
- BIOSのバージョン
- システムのシリアル番号
CPU(プロセッサー):
- メーカー(Intel、AMDなど)
- モデル名
- コア数とスレッド数
- クロック周波数
- キャッシュサイズ
メモリ(RAM):
- 搭載容量
- メモリモジュールの数
- 各モジュールのサイズ
- メモリタイプ(DDR3、DDR4など)
- 動作速度
ストレージ:
- ハードディスクやSSDの型番
- 容量
- インターフェース(SATA、NVMeなど)
ネットワーク:
- 有線LANカードの情報
- 無線LANカードの情報
- MACアドレス
グラフィック:
- グラフィックカードの型番
- VRAMの容量
その他:
- USBコントローラー
- オーディオデバイス
- バスの情報(PCI、PCIeなど)
なぜ便利なのか?
理由1:購入前の確認
中古PCを買う時、本当にスペック通りか確認できます。
理由2:ドライバーのインストール
正確なハードウェア名が分かれば、適切なドライバーを探せます。
理由3:トラブルシューティング
ハードウェアが正しく認識されているか確認できます。
理由4:アップグレードの計画
メモリスロットの空きや、拡張可能な部分が分かります。
理由5:システム情報の記録
サーバーの構成を文書化する時に便利です。
lshwのインストール方法
多くのLinuxディストリビューションには標準でインストールされていますが、入っていない場合の手順です。
インストール済みか確認
lshw -version
バージョン情報が表示されれば、すでにインストールされています。
Ubuntu/Debian系でのインストール
sudo apt update
sudo apt install lshw
Fedora/RHEL/CentOS系でのインストール
# Fedora
sudo dnf install lshw
# CentOS/RHEL
sudo yum install lshw
Arch Linux系でのインストール
sudo pacman -S lshw
openSUSE系でのインストール
sudo zypper install lshw
lshwの基本的な使い方
実際にlshwを使ってみましょう。
最も基本的な使用方法
コマンド:
sudo lshw
重要: lshwはroot権限(sudo)が必要です。
実行すると、大量の情報が画面に表示されます。
出力例(一部)
mycomputer
description: Desktop Computer
product: 90FP000AJM
vendor: Lenovo
width: 64 bits
*-core
description: Motherboard
product: SHARKBAY
vendor: LENOVO
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
size: 3300MHz
capacity: 3900MHz
width: 64 bits
clock: 100MHz
capabilities: fpu vme de pse tsc msr pae mce cx8
ページャーで見やすく表示
情報量が多いので、lessコマンドで見るのがおすすめです。
sudo lshw | less
操作方法:
- スペースキー:次のページ
- b:前のページ
- /検索語:検索
- q:終了
ファイルに保存
後で確認したい場合は、ファイルに保存しましょう。
sudo lshw > hardware_info.txt
または:
sudo lshw | tee hardware_info.txt
(teeは画面にも表示しながら保存)
便利なオプション:情報を絞り込む
lshwには、見たい情報だけを表示する便利なオプションがあります。
短い形式で表示(-short)
最も見やすいのがこのオプションです。
sudo lshw -short
出力例:
H/W path Device Class Description
=========================================================
system 90FP000AJM
/0 bus SHARKBAY
/0/0 memory 64KiB BIOS
/0/4 processor Intel(R) Core(TM) i5-4590
/0/a memory 16GiB System Memory
/0/a/0 memory 8GiB DIMM DDR3 1600 MHz
/0/a/1 memory 8GiB DIMM DDR3 1600 MHz
/0/100/1/0 /dev/sda disk 500GB Samsung SSD
/0/100/1c.3/0 wlp3s0 network Wireless 8260
見やすくて一覧性が高いので、最初はこれをおすすめします。
クラス別に表示(-class)
特定の種類のハードウェアだけを表示できます。
CPU情報のみ:
sudo lshw -class processor
メモリ情報のみ:
sudo lshw -class memory
ストレージ情報のみ:
sudo lshw -class disk
ネットワーク情報のみ:
sudo lshw -class network
グラフィック情報のみ:
sudo lshw -class display
複数のクラスを同時に指定
sudo lshw -class processor -class memory
HTML形式で出力(-html)
ブラウザで見やすい形式で保存できます。
sudo lshw -html > hardware_report.html
生成されたHTMLファイルをブラウザで開けば、見やすい形式で表示されます。
XML形式で出力(-xml)
プログラムで処理しやすい形式です。
sudo lshw -xml > hardware_info.xml
JSON形式で出力(-json)
最近のバージョンでサポートされています。
sudo lshw -json > hardware_info.json
バスインフォメーションを表示(-businfo)
デバイスのバス情報を分かりやすく表示します。
sudo lshw -businfo
出力例:
Bus info Device Class Description
========================================================
system 90FP000AJM
bus SHARKBAY
cpu@0 processor Intel(R) Core(TM) i5-4590
pci@0000:00:02.0 display 4th Gen Core Processor
pci@0000:03:00.0 wlp3s0 network Wireless 8260
scsi@2:0.0.0 /dev/sda disk 500GB Samsung SSD
サニタイズモード(-sanitize)
シリアル番号やMACアドレスなどの機密情報を隠します。
sudo lshw -sanitize
他人に情報を共有する時に便利です。
実践的な使用例
実際の場面での使い方を紹介します。
例1:CPU情報を確認する
目的: 自分のPCのCPUがどんなものか知りたい
sudo lshw -class processor -short
確認できる情報:
- CPUのメーカー(Intel/AMD)
- モデル名(Core i5-4590など)
- コア数
- クロック周波数
例2:メモリの詳細を確認する
目的: メモリを増設できるか確認したい
sudo lshw -class memory
確認できる情報:
- 現在の搭載容量
- メモリスロット数
- 各スロットの使用状況
- 空きスロットがあるか
- メモリの種類(DDR3、DDR4など)
- 動作速度
例3:ネットワークカードの情報を確認
目的: Wi-Fiドライバーをインストールしたい
sudo lshw -class network
出力例:
*-network
description: Wireless interface
product: Wireless 8260
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: 3a
serial: a4:34:d9:12:34:56
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master
この情報を元に、適切なドライバーを探せます。
例4:ハードディスクの情報を確認
目的: SSDかHDDか、容量はどのくらいか知りたい
sudo lshw -class disk -short
出力例:
H/W path Device Class Description
=================================================
/0/100/1/0 /dev/sda disk 500GB Samsung SSD 860
例5:グラフィックカードを確認
目的: どんなGPUが入っているか知りたい
sudo lshw -class display
出力例:
*-display
description: VGA compatible controller
product: 4th Gen Core Processor Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 06
width: 64 bits
clock: 33MHz
例6:USB機器の情報を確認
sudo lshw -class bus
USBコントローラーの情報が表示されます。
例7:システム全体の概要を確認
目的: サーバーの構成を記録したい
sudo lshw -short > server_hardware_$(hostname)_$(date +%Y%m%d).txt
ホスト名と日付入りのファイル名で保存されます。
他のハードウェア情報コマンドとの比較
Linuxには、lshw以外にもハードウェア情報を表示するコマンドがあります。
lscpu(CPU情報専門)
特徴:
- CPUに特化
- lshwより詳しいCPU情報
使い方:
lscpu
出力例:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
lspci(PCIデバイス専門)
特徴:
- PCIバスに接続されたデバイス情報
- グラフィックカード、ネットワークカードなど
使い方:
lspci
詳細表示:
lspci -v
lsusb(USBデバイス専門)
特徴:
- USB接続されたデバイス情報
使い方:
lsusb
詳細表示:
lsusb -v
dmidecode(BIOS/SMBIOS情報)
特徴:
- BIOSから取得する情報
- 正確なハードウェア情報
使い方:
sudo dmidecode
メモリ情報:
sudo dmidecode -t memory
hwinfo(最も詳細)
特徴:
- lshwよりさらに詳細
- 別途インストールが必要
使い方:
sudo hwinfo --short
比較表
コマンド | 特徴 | 詳細度 | root権限 |
---|---|---|---|
lshw | 総合的 | 高い | 必要 |
lscpu | CPU専門 | 中程度 | 不要 |
lspci | PCIデバイス | 中程度 | 不要 |
lsusb | USBデバイス | 中程度 | 不要 |
dmidecode | BIOS情報 | 高い | 必要 |
hwinfo | 最も詳細 | 非常に高い | 必要 |
lshwの出力を理解する
出力の見方を詳しく見ていきましょう。
階層構造の理解
lshwの出力は、木構造になっています。
システム全体
├─ マザーボード
│ ├─ CPU
│ ├─ メモリ
│ └─ PCIバス
│ ├─ グラフィックカード
│ └─ ネットワークカード
└─ ストレージ
インデント(字下げ)が深いほど、下位の階層です。
主要なフィールドの意味
description:
デバイスの種類(例:Processor、Memory、Networkなど)
product:
製品名やモデル番号
vendor:
メーカー名
physical id:
ハードウェアの物理的な識別子
bus info:
バスアドレス(例:pci@0000:03:00.0)
logical name:
Linuxシステム上でのデバイス名(例:/dev/sda、eth0)
version:
ファームウェアやハードウェアのバージョン
serial:
シリアル番号
size:
サイズや速度(メモリ容量、クロック周波数など)
capacity:
最大容量や最大速度
width:
データバス幅(32ビット、64ビットなど)
clock:
クロック周波数
capabilities:
デバイスの機能(サポートしている技術など)
configuration:
現在の設定状態
状態マーカーの意味
*-デバイス名
:
通常の認識されたデバイス
*-デバイス名 DISABLED
:
無効化されているデバイス
*-デバイス名 UNCLAIMED
:
ドライバーが読み込まれていないデバイス
トラブルシューティング
lshwを使う際の問題と解決方法です。
問題1:「command not found」エラー
原因:
lshwがインストールされていません。
解決方法:
sudo apt install lshw
問題2:「Permission denied」エラー
原因:
root権限で実行していません。
解決方法:
sudo lshw
sudoを忘れずに付けてください。
問題3:デバイスが「UNCLAIMED」と表示される
原因:
ドライバーがインストールされていないか、読み込まれていません。
解決方法:
- デバイス情報を確認
sudo lshw -class network
- 適切なドライバーをインストール
例(Wi-Fiカードの場合):
sudo apt install firmware-iwlwifi
- システムを再起動
問題4:情報が表示されない
原因:
古いカーネルや特殊なハードウェア。
解決方法:
他のコマンドを試す:
sudo dmidecode
sudo hwinfo
lspci -v
問題5:出力が文字化けする
原因:
ターミナルのエンコーディング設定。
解決方法:
export LANG=en_US.UTF-8
sudo lshw
lshwの活用テクニック
上級者向けの使い方です。
テクニック1:特定の情報だけを抽出
grepと組み合わせる:
# CPUのモデル名だけ表示
sudo lshw -class processor | grep product
# メモリの容量だけ表示
sudo lshw -class memory | grep size
テクニック2:スクリプトで自動化
定期的にハードウェア情報を記録するスクリプト:
#!/bin/bash
# hardware_check.sh
DATE=$(date +%Y%m%d)
HOSTNAME=$(hostname)
OUTFILE="hardware_${HOSTNAME}_${DATE}.txt"
echo "Generating hardware report..."
sudo lshw -short > "$OUTFILE"
echo "Report saved to: $OUTFILE"
テクニック3:複数サーバーの情報を収集
SSH経由で複数のサーバー情報を収集:
#!/bin/bash
# collect_hardware_info.sh
SERVERS="server1 server2 server3"
for server in $SERVERS; do
echo "Collecting from $server..."
ssh $server "sudo lshw -short" > "${server}_hardware.txt"
done
テクニック4:変更の監視
ハードウェア構成の変更を検出:
# 初回実行
sudo lshw -short > hardware_baseline.txt
# 後日実行して比較
sudo lshw -short > hardware_current.txt
diff hardware_baseline.txt hardware_current.txt
テクニック5:レポート生成
HTML形式で見やすいレポートを作成:
#!/bin/bash
# generate_report.sh
sudo lshw -html > hardware_report.html
echo "<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>Hardware Report - $(hostname)</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
h1 { color: #333; }
</style>
</head>
<body>
<h1>Hardware Report for $(hostname)</h1>
<p>Generated: $(date)</p>
" > final_report.html
cat hardware_report.html >> final_report.html
echo "</body></html>" >> final_report.html
rm hardware_report.html
echo "Report generated: final_report.html"
セキュリティとプライバシーの考慮
lshwの出力には機密情報が含まれる場合があります。
注意すべき情報
個人情報:
- シリアル番号
- MACアドレス
- UUIDやGUID
システム情報:
- 正確なハードウェア構成
- 脆弱性のあるハードウェアの情報
安全な共有方法
サニタイズオプションを使う:
sudo lshw -sanitize > hardware_info_safe.txt
手動で編集:
sudo lshw > hardware_info.txt
# エディタで開いて機密情報を削除
nano hardware_info.txt
公開しない方が良い場合
- オンラインフォーラムに投稿する前
- 公開リポジトリにアップする前
- 不特定多数に見せる前
まとめ:lshwはLinuxユーザーの必須ツール
lshwは、Linuxシステムのハードウェア情報を詳しく調べられる強力なツールです。
この記事のポイント:
- lshwはハードウェア情報を総合的に表示
- root権限(sudo)が必要
- 様々な出力形式に対応(テキスト、HTML、XML、JSON)
- クラス別に絞り込んで表示可能
- 他のコマンド(lscpu、lspciなど)と組み合わせて使う
基本的なコマンド:
# 基本的な使用
sudo lshw
# 見やすい短縮形式
sudo lshw -short
# CPU情報のみ
sudo lshw -class processor
# メモリ情報のみ
sudo lshw -class memory
# ネットワーク情報のみ
sudo lshw -class network
# HTML形式で保存
sudo lshw -html > hardware_report.html
覚えておきたいこと:
- ハードウェアを確認したいときは、まずlshw
- -shortオプションで見やすく表示
- -classで特定のハードウェアだけ表示
- 情報を共有する時は-sanitizeで機密情報を隠す
- 他のコマンドと組み合わせてさらに詳しく
lshwは、システム管理者にとっても、一般ユーザーにとっても、非常に便利なツールです。
自分のパソコンの中身を知りたい時、ドライバーをインストールする時、トラブルシューティングの時など、様々な場面で活躍します。
ぜひこの記事を参考に、lshwを使いこなしてくださいね!
コメント