はじめに
この実験では、Linux システムにネットワークアダプタが存在するかどうかを確認する方法を学びます。これを達成するための一般的な 3 つの方法を探ります。
まず、lshw コマンドに -C network オプションを指定して、ネットワークハードウェアに関する詳細情報をリストアップします。次に、/sys/class/net ディレクトリの内容を調べることで、ネットワークインターフェイスの存在を確認します。最後に、lspci コマンドを使用して PCI デバイスをリストアップし、ネットワークコントローラをフィルタリングして、ネットワークアダプタを特定する別の方法を提供します。これらの手順を完了することで、Linux システム上のネットワークハードウェアの存在を診断する実践的なスキルを身につけることができます。
lshw -C network でアダプタを確認する
このステップでは、lshw コマンドを使用してシステムに接続されているネットワークアダプタを特定する方法を探ります。lshw は "list hardware" の略で、システムのハードウェア構成に関する詳細情報を取得するための強力なツールです。
具体的にネットワークアダプタをリストアップするには、-C オプションの後にクラス名である network を指定します。
ターミナルが開いていない場合は、開きましょう。デスクトップの左側にある Xfce Terminal アイコンをクリックすることで開くことができます。
次に、以下のコマンドを入力して Enter キーを押します。
sudo lshw -C network
このコマンドを分解してみましょう。
sudo: 前に学んだように、これによりスーパーユーザー権限でコマンドを実行できます。詳細なハードウェア情報にアクセスするには、この権限が必要なことが多いです。lshw: ハードウェアをリストアップするコマンドです。-C network: このオプションは、出力を "network" クラスに属するデバイスのみにフィルタリングします。
以下のような出力が表示されます(正確な詳細は仮想マシンの構成によって異なります)。
*-network
description: Ethernet interface
product: Ethernet controller
vendor: Red Hat, Inc.
physical id: 3
bus info: pci@0000:00:03.0
logical name: eth0
version: 00
serial: 52:54:00:xx:xx:xx
size: 1Gbit/s
capacity: 10Gbit/s
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autoneg negotiated
configuration: autonegotiation=on broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.18.0.x latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:24 ioport:c040(size=32) memory:fe000000-fe000fff
この出力には、ネットワークアダプタに関する多くの情報が含まれています。以下のような情報があります。
description: デバイスの種類(イーサネットインターフェイス)。productとvendor: ハードウェアのメーカーとモデル。logical name: オペレーティングシステムがこのインターフェイスに使用する名前(例:eth0)。これはネットワーク設定を構成する際に重要です。serial: ネットワークアダプタの MAC アドレス。sizeとcapacity: 現在の接続速度と最大接続速度。configuration: インターフェイスの現在の設定の詳細。割り当てられている場合は IP アドレスも含まれます。
この出力を理解することで、ネットワークインターフェイスを特定し、ネットワークの問題をトラブルシューティングするのに役立ちます。
Continue をクリックして次のステップに進みましょう。
/sys/class/net 内のインターフェースを確認する
Linux では、/sys ファイルシステムはカーネルのデバイスモデルを表示します。これは仮想ファイルシステムであり、つまり、その中のファイルやディレクトリは従来の意味でディスクに保存されているのではなく、システム情報を表すためにカーネルによって生成されます。
具体的には、/sys/class/net はシステムによって検出されたすべてのネットワークインターフェイスへのシンボリックリンクが含まれるディレクトリです。これらのリンクの名前は、前のステップで見た eth0 のようなネットワークインターフェイスの論理名に対応しています。
このディレクトリの内容をリストアップして、ネットワークインターフェイスを確認しましょう。ファイルやディレクトリをリストアップするための ls コマンドを使用します。
ターミナルに以下のコマンドを入力して、Enter キーを押します。
ls /sys/class/net/
以下のような出力が表示されるはずです。
eth0 lo
eth0: これは前のステップでlshwを使用して特定したイーサネットインターフェイスです。lo: これは "loopback" インターフェイスの略です。コンピュータが自身と通信するために使用する特殊な仮想インターフェイスです。コンピュータが物理ネットワークに接続されていない場合でも、ネットワーキングソフトウェアが正しく機能するために不可欠です。
このディレクトリに eth0 と lo が存在することは、システムがこれらのネットワークインターフェイスを認識していることを確認します。このディレクトリは、システムで利用可能なネットワークインターフェイスをすぐに確認する方法です。
Continue をクリックして次に進みましょう。
lspci でハードウェアを調査する
このステップでは、lspci コマンドを使用して、システムに接続されている PCI デバイスの情報をリストアップします。PCI (Peripheral Component Interconnect) は、ハードウェアデバイスをコンピュータのマザーボードに接続する標準的なバスです。ネットワークカード、グラフィックカード、ストレージコントローラなど、多くのデバイスが PCI またはその後継の PCI Express (PCIe) を介して接続されています。
lspci コマンドは、接続されているハードウェアとその基本情報をすぐに特定するのに便利です。
ターミナルに以下のコマンドを入力して、Enter キーを押します。
lspci
PCI デバイスのリストが表示されます。出力は次のようになります。
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE controller: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:01.2 USB controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL Paravirtual graphic driver
00:03.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:04.0 Communication controller: Red Hat, Inc. Virtio console
00:05.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
00:06.0 Unclassified device [0000]: Red Hat, Inc. Virtio balloon
00:07.0 Audio device: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
各行は PCI デバイスを表しています。形式は通常 Bus:Device.Function Class: Vendor Product です。
Bus:Device.Function: PCI バス上のデバイスの位置を識別します。Class: デバイスの種類を説明します(例:Host bridge、Ethernet controller、VGA compatible controller)。VendorとProduct: デバイスのメーカーと具体的なモデルを識別します。
Ethernet controller: Red Hat, Inc. Virtio network device と書かれた行に注目してください。これは、lshw や /sys/class/net で見たネットワークアダプタに対応しています。lspci は、PCI バスに焦点を当てた、ハードウェアの別の視点を提供します。
lspci に -v などのオプションを付けると、より詳細な出力が得られます。また、-nn を使用すると、ベンダーとデバイスの ID が数値形式で表示され、オンラインでハードウェア情報を検索するのに便利です。
たとえば、次のコマンドを試してみてください。
lspci -v
これにより、各デバイスに関するはるかに詳細な情報が提供されます。表示を終えたら、q を押して詳細出力を終了します。
Continue をクリックして、この実験を終了します。
まとめ
この実験では、さまざまなコマンドラインツールを使用して、Linux でネットワークアダプタの存在を確認する方法を学びました。まず、sudo lshw -C network コマンドを使用して、ネットワークインターフェイスの詳細情報(説明、ベンダー、製品、構成詳細など)をリストアップしました。このコマンドは、ハードウェアの包括的な概要を提供します。
次に、/sys/class/net ディレクトリを調べました。このディレクトリは、システム上に存在する各ネットワークインターフェイスに対するシンボリックリンクを提供し、その存在をすぐに確認する方法を提供します。最後に、lspci コマンドを使用して PCI バスを調べ、出力を "Ethernet controller" または同様の説明でフィルタリングすることでネットワークコントローラを特定し、ネットワークハードウェアの存在を確認する別の方法を提供しました。これらの手順は、Linux 環境でネットワークアダプタを特定するさまざまなアプローチを総合的に示しています。



