Linux lshwとは?パソコンのハードウェア情報を詳しく調べる方法

Linux

Linuxを使っていると、こんな疑問が湧くことがあります。

「このパソコン、CPUは何コア?」
「メモリは何GB搭載されている?」
「グラフィックカードは何が入っているの?」
「ネットワークカードのモデル名は?」

Windowsならデバイスマネージャーで簡単に確認できますが、Linuxではどうすればいいのでしょうか。

この記事では、Linuxでハードウェア情報を詳しく調べられる便利なコマンド lshw(エルエスエイチダブリュー) について、初心者の方にも分かりやすく解説していきます。

スポンサーリンク
  1. lshw(List Hardware)とは何か?
    1. 何が分かるのか?
    2. なぜ便利なのか?
  2. lshwのインストール方法
    1. インストール済みか確認
    2. Ubuntu/Debian系でのインストール
    3. Fedora/RHEL/CentOS系でのインストール
    4. Arch Linux系でのインストール
    5. openSUSE系でのインストール
  3. lshwの基本的な使い方
    1. 最も基本的な使用方法
    2. 出力例(一部)
    3. ページャーで見やすく表示
    4. ファイルに保存
  4. 便利なオプション:情報を絞り込む
    1. 短い形式で表示(-short)
    2. クラス別に表示(-class)
    3. 複数のクラスを同時に指定
    4. HTML形式で出力(-html)
    5. XML形式で出力(-xml)
    6. JSON形式で出力(-json)
    7. バスインフォメーションを表示(-businfo)
    8. サニタイズモード(-sanitize)
  5. 実践的な使用例
    1. 例1:CPU情報を確認する
    2. 例2:メモリの詳細を確認する
    3. 例3:ネットワークカードの情報を確認
    4. 例4:ハードディスクの情報を確認
    5. 例5:グラフィックカードを確認
    6. 例6:USB機器の情報を確認
    7. 例7:システム全体の概要を確認
  6. 他のハードウェア情報コマンドとの比較
    1. lscpu(CPU情報専門)
    2. lspci(PCIデバイス専門)
    3. lsusb(USBデバイス専門)
    4. dmidecode(BIOS/SMBIOS情報)
    5. hwinfo(最も詳細)
    6. 比較表
  7. lshwの出力を理解する
    1. 階層構造の理解
    2. 主要なフィールドの意味
    3. 状態マーカーの意味
  8. トラブルシューティング
    1. 問題1:「command not found」エラー
    2. 問題2:「Permission denied」エラー
    3. 問題3:デバイスが「UNCLAIMED」と表示される
    4. 問題4:情報が表示されない
    5. 問題5:出力が文字化けする
  9. lshwの活用テクニック
    1. テクニック1:特定の情報だけを抽出
    2. テクニック2:スクリプトで自動化
    3. テクニック3:複数サーバーの情報を収集
    4. テクニック4:変更の監視
    5. テクニック5:レポート生成
  10. セキュリティとプライバシーの考慮
    1. 注意すべき情報
    2. 安全な共有方法
    3. 公開しない方が良い場合
  11. まとめ:lshwはLinuxユーザーの必須ツール

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総合的高い必要
lscpuCPU専門中程度不要
lspciPCIデバイス中程度不要
lsusbUSBデバイス中程度不要
dmidecodeBIOS情報高い必要
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」と表示される

原因:
ドライバーがインストールされていないか、読み込まれていません。

解決方法:

  1. デバイス情報を確認
sudo lshw -class network
  1. 適切なドライバーをインストール

例(Wi-Fiカードの場合):

sudo apt install firmware-iwlwifi
  1. システムを再起動

問題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

覚えておきたいこと:

  1. ハードウェアを確認したいときは、まずlshw
  2. -shortオプションで見やすく表示
  3. -classで特定のハードウェアだけ表示
  4. 情報を共有する時は-sanitizeで機密情報を隠す
  5. 他のコマンドと組み合わせてさらに詳しく

lshwは、システム管理者にとっても、一般ユーザーにとっても、非常に便利なツールです。

自分のパソコンの中身を知りたい時、ドライバーをインストールする時、トラブルシューティングの時など、様々な場面で活躍します。

ぜひこの記事を参考に、lshwを使いこなしてくださいね!

コメント

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