「このサーバーにどんなNICが刺さっているか」「増設したGPUにドライバーが当たっているか」――そんな場面でまず使うのが lspci コマンドです。搭載済みのPCIデバイス全体を数秒で一覧でき、ドライバーの割り当て状況まで一度に把握できます。
まずPCIデバイスの一覧を出す
lspci は pciutils パッケージに含まれます。Rocky Linux・AlmaLinux・Ubuntu など主要ディストリビューションでは標準インストールされていることが多いですが、最小構成の場合は次のコマンドで導入してください。
# RHEL系(Rocky Linux / AlmaLinux / CentOS Stream)
sudo dnf install pciutils -y
# Debian系(Ubuntu / Debian)
sudo apt install pciutils -y
導入後、オプションなしで実行するとすべてのPCIデバイスが一覧表示されます。
sudo lspci
出力例(物理サーバーの場合):
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM (rev 05)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
02:00.0 Non-Volatile Memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
出力の読み方――バスアドレスとデバイスクラスを理解する
各行は バスアドレス デバイスクラス: ベンダー名 デバイス名 の形式です。バスアドレス(例: 01:00.0)は バス番号:スロット番号.ファンクション番号 を表します。トラブルシューティングでデバイスを特定するときの基準になります。
デバイスクラスの主な種類は以下の通りです。
- Ethernet controller ― NIC(ネットワークカード)
- VGA compatible controller ― GPU・グラフィックカード
- Non-Volatile Memory controller ― NVMe SSD
- USB controller ― USBホストコントローラー
- RAID bus controller ― ハードウェアRAIDカード
- Serial Attached SCSI controller ― SAS HBA
ドライバーの割り当て状態まで確認する
デバイスが認識されていてもドライバーが当たっているかは別問題です。-k オプションを加えると、各デバイスに割り当てられているカーネルドライバーとモジュール名が表示されます。
sudo lspci -k
出力の例:
01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
Subsystem: Intel Corporation Ethernet Server Adapter I210-T1
Kernel driver in use: igb
Kernel modules: igb
02:00.0 Non-Volatile Memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
Subsystem: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
Kernel driver in use: nvme
Kernel modules: nvme
Kernel driver in use: の行があればドライバーが正常にロードされています。この行が表示されない場合は、ドライバー未インストールまたは認識エラーです。ある運用現場では、新しいNICを増設した直後にここでドライバー未割り当てを即座に発見し、modprobe で適切なモジュールをロードして解決したケースがありました。
特定デバイスだけを絞り込む実務パターン
デバイス数が多い環境では出力が長くなります。grep と組み合わせて目的のデバイスだけを表示しましょう。
# NICだけ確認
sudo lspci | grep -i ethernet
# GPUだけ確認
sudo lspci | grep -i "vga\|3d\|display"
# ストレージ関連をまとめて確認
sudo lspci | grep -i "nvme\|sata\|scsi\|raid"
ベンダーIDとデバイスIDも同時に表示したい場合は -nn オプションが便利です。ドライバー開発やベンダーへの問い合わせ時に必要な情報が一度に揃います。
sudo lspci -nn | grep -i ethernet
出力例:
01:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
[8086:1533] の部分がベンダーID:デバイスIDです。この値を PCI ID Repository で検索すると対応ドライバーの手がかりが得られます。また udev ルールの記述にもそのまま使えます。
sudoで必要最小限の権限で実行する
古い手順では su - でrootに切り替えてからコマンドを実行するケースが多く見られました。現代の運用では sudo を使い、必要な操作だけ管理者権限を借りるのが標準的です。rootセッションを長時間保持すると誤操作リスクが上がるため、できる限り sudo の単発実行を選んでください。
# 推奨:sudoで必要なときだけ権限昇格
sudo lspci -k
# どうしてもrootセッションが必要な場合は最小限に留める
sudo -i
lspci -k
exit
なお lspci は一般ユーザーでも基本的なデバイス一覧は取得できます。-v などの詳細表示オプションでは権限不足で一部情報が省略されることがあるため、完全な情報が必要なときだけ sudo を付けてください。
仮想環境・クラウド環境での注意点
VMware・KVM・AWS・Azureなどの仮想環境では、表示されるデバイスがホストの物理デバイスではなくハイパーバイザーが提供する仮想デバイスになります。
# KVM仮想マシン上での出力例
00:00.0 Host bridge: Red Hat, Inc. QEMU PCIe Host bridge
00:01.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 04)
00:03.0 Ethernet controller: Red Hat, Inc. Virtio 1.0 network device
00:04.0 SCSI storage controller: Red Hat, Inc. Virtio 1.0 block device
Virtio や QEMU といった名称が並んでいる場合は仮想デバイスです。物理ハードウェアの詳細が必要なときはハイパーバイザー側(ホストOS)で確認してください。
クラウド環境(AWS EC2など)では、インスタンスタイプによって pciutils が未インストールのこともあります。また、SR-IOV(シングルルートI/O仮想化)を使ったパススルーデバイスは物理デバイス名で表示されるため、仮想デバイスと混在するケースもあります。EC2の場合、ena(Elastic Network Adapter)や nvme(EBS)がそのまま見えることが一般的です。
仮想環境かどうかを確認したい場合は、systemd-detect-virt コマンドを併用すると素早く判定できます。
systemd-detect-virt
# 物理マシンなら "none"、KVMなら "kvm"、VMwareなら "vmware" と返る
物理サーバーの資産台帳作成や、障害対応時のハードウェア確認、ドライバー適用後の疎通確認など、サーバー運用のあらゆる場面でPCIデバイスの確認は欠かせません。lspci の基本から -k -nn オプション、grep との組み合わせまで手順を整理しておくと、現場での調査時間を大きく短縮できます。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
