Oracle Linuxでのカーネルおよびシステム・ブートの管理

Oracle Linuxに配布されている様々なカーネル、それらの管理方法、およびブート・プロセスの制御方法をご確認ください。

システムブートについて

Oracle Linuxのブート・プロセスを理解すると、システムのブート時に問題のトラブルシューティングに役立ちます。

ブート・プロセスには複数のファイルが含まれるため、これらのファイルでのエラーがブートの問題の一般的な原因となります。ブート・プロセスと構成は、ハードウェアがシステム・ブートを処理するために、UEFIファームウェアを使用しているかレガシーBIOSを使用しているかによって異なります。

Oracle Linuxのインストールには、GRUB 2ブートローダーが含まれています。このブートローダーは、BIOSまたはUEFIファームウェアからアクセス可能なハードディスク上の場所にインストールされます。GRUB 2ブート・ローダーは、カーネルおよびinitramfsをメモリーにロードするために使用されます。カーネルが完全に初期化されると、オペレーティング・システムのリストアを管理するsystemdプロセスが起動します。

UEFIベースのブートについて

Oracle Linuxリリースを実行しているUEFIベースのシステムでは、システム・ブート・プロセスでは次のシーケンスが使用されます。

  1. システムの電源が投入されると、システムは電源投入時自己診断(POST)を実行して、CPUやメモリーなどのシステムのコアハードウェアコンポーネントを検出およびチェックします。その後、UEFIファームウェアが初期化されます。

  2. UEFIファームウェアは、ネットワークデバイスやストレージなどの周辺機器コンポーネントなどの他のハードウェアを検出します。UEFIファームウェアには、さまざまなストレージデバイス上のブートローダーと直接対話できる独自のブートマネージャーが含まれています。ブートマネージャーは、さまざまなブートデバイスの優先順位や検出されたブートローダーなど、一連の変数を格納します。

    UEFIは、EFIシステム・パーティション(ESP)として識別する特定のグローバル一意識別子(GUID)を持つFAT32形式のGPTパーティションを検索します。このパーティションには、ブート・ローダーなどのEFIアプリケーションおよびその他の構成ファイルが含まれています。

    複数のブートデバイスが存在する場合、UEFIブートマネージャーは、ブートマネージャーで定義された順序に基づいて適切なESPを使用します。efibootmgrツールでは、デフォルト定義を使用せずに、別の順序を定義できます。

  3. UEFIブートマネージャーは、デフォルトのブートローダーをロードします。Oracle Linuxでは、2段階のブート・プロセスを使用してセキュア・ブート検証プロセスを処理します。2ステージ・プロセスには、ESP上のshimブート・ローダーと呼ばれる第1ステージ・ブート・ローダーと、GRUB 2と呼ばれる第2ステージ・ブート・ローダーが含まれます。セキュア・ブートが無効になっている場合、shimブート・ローダーは、GRUB 2ブート・ローダーをESPに直接ロードして、ブート・プロセスを続行します。ブート・ローダー・ファイルには、システム・アーキテクチャに従って名前が付けられます。たとえば、shimブート・ローダーの名前はx86_64システムではshimx64.efi、aarch64システムではshimaa64.efiです。

    それ以外の場合、セキュア・ブートが有効な場合、shimブート・ローダーは、UEFIセキュア・ブート・キー・データベースに格納されているキーに対して検証され、次に、UEFIセキュア・ブート・キー・データベースまたはマシン所有者キー(MOK)データベースに格納されている証明書に対してGRUB 2ブート・ローダー署名を検証します。GRUB 2署名が有効な場合、GRUB 2ブート・ローダーが実行され、ロードするように構成されているカーネルが検証されます。

    セキュア・ブートの詳細は、『Oracle Linux: UEFI Secure Bootの操作』を参照してください。

  4. ブート・ローダーは、vmlinuzカーネル・イメージ・ファイルとinitramfsイメージ・ファイルをメモリにロードします。カーネルは、initramfsイメージの内容をメモリーベースの一時ファイル・システム(tmpfs)に抽出します。initramfsには、ブートに必要な重要なドライバおよびユーティリティが含まれています。

  5. ブート・ローダーは、制御をカーネルに渡し、initramfsおよびその他のブート・パラメータへのポインタを提供します。カーネルは、システムの初期化、ハードウェアの検出、必要なドライバのロード、およびルートファイルシステムのマウントを続行します。

  6. カーネルは、initramfs内でinitプロセスを検索し、プロセスID 1 (PID 1)で定義されたプロセスを開始します。Oracle Linuxでは、デフォルトのinitプロセスがsystemdとして構成されます。詳細は、Oracle LinuxでのSELinuxの管理を参照してください。

  7. systemdは、そのプロセスに定義されている他のプロセスを実行します。

    ノート

    systemdユニットを定義して、ブート・プロセス中に処理される他のアクションを指定します。この方法は、/etc/rc.localファイルを使用するより推奨される方法です。

BIOSベースのブートについて

Oracle Linuxリリースを実行しているBIOSベースのシステムでは、ブート・プロセスは次のとおりです。

  1. システムのBIOSは、電源オン・セルフテスト(POST)を実行し、周辺デバイスおよびハード・ディスクが検出して初期化します。

  2. BIOSがマスター・ブート・レコード(MBR)をブート・デバイスからメモリーに読み取ります。MBRは、そのデバイス上のパーティションの編成、パーティション表、およびエラー検出に使用されるブート署名に関する情報を格納します。MBRには、ブート・ローダー・プログラム(GRUB 2)へのポインタも含まれており、通常は同じディスク・デバイス上の専用の/bootパーティションにあります。

  3. ブート・ローダーは、vmlinuzカーネル・イメージ・ファイルとinitramfsイメージ・ファイルをメモリにロードします。その後、カーネルはinitramfsの内容をメモリーベースの一時ファイル・システム(tmpfs)に抽出します。

  4. カーネルは、ルート・ファイル・システムへのアクセスに必要なドライバ・モジュールをinitramfsファイル・システムからロードする。

  5. カーネルは、initramfs内でinitプロセスを検索し、プロセスID 1 (PID 1)で定義されたプロセスを開始します。Oracle Linuxでは、デフォルトのinitプロセスがsystemdとして構成されます。詳細は、Oracle LinuxでのSELinuxの管理を参照してください。

  6. systemdは、そのプロセスに定義されている他のプロセスを実行します。
    ノート

    systemdユニットを定義して、ブート・プロセス中に処理される他のアクションを指定します。この方法は、/etc/rc.localファイルを使用するより推奨される方法です。

GRUB 2ブート・ローダーについて

Oracle Linuxには、ブート時にOSをシステムにロードするGRand Unified Bootloader (GRUB 2)のバージョン2が含まれています。

GRUB 2では、Oracle Linuxに加えて、多数の固有のオペレーティング・システムをロードおよびチェーン・ロードできます。GRUB 2は、様々なファイル・システムとカーネル実行可能ファイルの形式を認識します。GRUB 2には、カーネルへのフルパスと、ブート・デバイスまたはルート・デバイスに対する相対パスinitramfsが必要です。この情報はGRUB 2メニューを使用して、またはGRUB 2コマンドラインで入力して構成できます。

grub2-mkconfigコマンドでは、/etc/grub.dのテンプレート・スクリプトおよび構成ファイル/etc/default/grubから取得したメニュー構成設定を使用してGRUB 2構成ファイルを生成します。

生成されたGRUB 2ファイルは、システム・ブート時に/bootから読み取られます。GRUB 2の主要な構成ファイルは、/boot/grub2/grub.cfgにあります。UEFIベースのシステムでは、/boot/efi/EFI/redhat/grub.cfgにある初期構成ファイルを使用して、GRUB 2をメインの GRUB2構成ファイルの正しいデバイスと場所に誘導します。各カーネル・バージョンのブート・パラメータには、/boot/loader/entriesの独立した構成ファイルが格納されます。Oracle Linuxのバージョンに応じて、各カーネル構成がファイル名とともに格納されます。
  • machine_id-kernel_version.el10.arch.conf
  • machine_id-kernel_version.el9.arch.conf
  • machine_id-kernel_version.el8.arch.conf
ノート

/bootのGRUB 2構成ファイルは直接編集しないでください。

デフォルトのメニュー・エントリは/etc/default/grubGRUB_DEFAULTパラメータの値によって設定されます。GRUB_DEFAULTsavedに設定した場合、grub2-set-defaultコマンドおよびgrub2-rebootコマンドを使用して、デフォルト・エントリを指定できます。コマンドgrub2-set-defaultは、これ以降のすべての再起動のためのデフォルト・エントリを設定し、grub2-rebootは次の再起動のみのためのデフォルト・エントリを設定する。

GRUB_DEFAULTの値を数値、あるいはgrub2-rebootまたはgrub2-set-defaultへの引数として指定すると、GRUB 2では構成ファイルのメニュー・エントリを0としてカウントし、最初のエントリとしてカウントします。

Oracle LinuxでGRUB 2ブート・ローダー構成を更新するには、grubbyコマンドを使用して、すべてのブート要件を制御および管理します。

grubbyコマンドライン・ツールは、GRUB 2構成およびカーネル・ブート・パラメータの管理に役立ちます。これは完全にスクリプト可能で、低レベルのブート・ローダーの詳細を抽象化するため、GRUBファイルを手動で編集する必要はありません。詳細は、Using grubby to Manage Kernelsを参照してください。

重要

永続カーネル・コマンドラインの変更は、grubbyを使用して行う必要があります。/etc/default/grubから/boot/grub2/grub.cfgを再生成しても、これらの変更は適用されません。

ブート時に構成内の一部のパラメータを変更する必要がある場合は、GRUB 2ブートメニューで一時的にカーネルブートパラメータを変更できます。Changing Kernel Boot Parameters Before Bootingを参照してください。

GRUB 2の使用、構成およびカスタマイズの詳細は、/usr/share/doc/grub2-tools-2.00/grub.htmlとしてインストールされている『GNU GRUBマニュアル』を参照してください。

Linuxカーネルについて

Oracle Linuxは、システムの相互運用性またはパフォーマンスのために、異なるカスタマイズされたカーネルで起動できます。

LinuxカーネルはOSの中核であり、システム・ハードウェアとシステムで実行されるアプリケーションとの間のインタフェースを提供します。カーネルはシステムリソースを管理し、セキュリティーを処理し、ソフトウェアが直接アクセスすることなくハードウェアと対話できるようにします。Linuxカーネルは、Linux Foundationによって利用できるオープン・ソース・プロジェクトです。

The Linux Foundationは、オープン・ソース開発者が様々なオープン・テクノロジ・プロジェクトをコーディング、管理およびスケーリングするためのハブを提供します。また、既存のLinuxカーネル組織も管理し、Oracle Linuxで使用されるものを含め、すべてのLinuxディストリビューションのコアにある様々なバージョンのLinuxカーネルを配布します。

次のLinuxカーネルのいずれかをOracle Linuxとともにインストールして実行する必要があります。

  • Unbreakable Enterprise Kernel (UEK): UEKはLinux Foundationの安定したカーネル・ブランチに基づいており、顧客主導で追加でき、特定のOracle LinuxリリースにいくつかのUEKが存在することが許可されています。Linuxカーネル組織が提供するメインライン・ソース・コードをできるだけ詳細に追跡することによって、パフォーマンス、安定性、および最小限のバックポートに焦点を当てています。UEKは、Oracleのエンジニアド・システム、Oracle Cloud Infrastructure (OCI)およびOracleの顧客の大規模なエンタープライズ・デプロイメントの実行にテストおよび使用されます。

    UEKには、RHCKで使用できない一部のパッケージまたはパッケージ・バージョンが含まれています。例として、btrfs-toolsrdsrdma関連パッケージ、および一部のカーネル・チューニング・ツールがあります。

  • Red Hat Compatible Kernel (RHCK): RHCKは、対応するRed Hat Enterprise Linux (RHEL)リリースで配布されるLinuxカーネルとの完全な互換性があります。RHCKを使用すると、Red Hat Enterprise Linuxで実行されるアプリケーションとの完全な互換性を確保できます。

カーネルパッケージは、特定のカーネルタイプへの依存関係を避けるために意図的に構築されます。使用されていないカーネルは、影響なくシステムから削除できます。

たとえば、UEKを実行しているシステムからRHCKを削除するには、次を実行します。

sudo dnf remove kernel-core

システムがRHCKを使用している場合は、次のコマンドを実行してUEKを削除できます。

sudo dnf remove kernel-uek-core

システムにインストールされているカーネルを確認するには、Checking Available Kernels on the Systemを参照してください。

デフォルト・カーネルの変更方法(RHCKからUEK、UEKからRHCKなど)については、デフォルト・カーネルの変更を参照してください。

重要

Linuxカーネルは、Oracle Linuxユーザー・スペースでアプリケーションを実行するために重要です。そのため、Oracleが提供する最新のバグ修正、拡張機能およびセキュリティ更新で、カーネルを最新状態に維持する必要があります。これを実行するには、継続的な更新およびアップグレード戦略を実装します。システムの再起動を必要とせずにカーネルを更新されるようにする方法については、『Oracle Linux: Kspliceユーザーズ・ガイド』を参照してください。システム上のソフトウェアを最新に保つための一般的な情報は、『Oracle Linux: Oracle Linuxでのソフトウェアの管理』を参照してください。

使用可能なカーネルの詳細は、次を参照してください。

カーネル・モジュールについて

ブート・ローダーはカーネルをメモリーにロードします。カーネル・ソース・ツリーにソース・ファイルを含め、カーネルを再コンパイルすることで、新しいコードをカーネルに追加することができます。カーネル・モジュールでは、カーネルによる新しいハードウェアへのアクセス、異なるファイル・システム・タイプのサポート、および他の方法での機能の拡張を可能にするデバイス・ドライバを提供します。モジュールは、必要に応じて動的にロードおよびアンロードできます。未使用のデバイス・ドライバにメモリーを浪費しないよう、Oracle Linuxではロード可能なカーネル・モジュール(LKM)をサポートしているため、メモリーにロードする必要があるデバイス・ドライバとカーネル・コードのみを使用してシステムを実行できます。Oracle Linuxでカーネル・モジュールを管理する方法の詳細は、カーネル・モジュールの管理を参照してください。

ノート

UEK R7以降では、より合理化されたカーネルを提供するためにカーネル・パッケージの変更が適用されます。ほとんどのサーバー構成に必要なカーネル・モジュールはkernel-uek-modulesパッケージで提供されますが、Bluetooth、Wi-Fi、ビデオ・キャプチャ・カードなどのサーバー構成では検出されないハードウェアのオプションのカーネル・モジュールは、kernel-uek-modules-extraパッケージにあります。これらのパッケージの両方に、linux-firmwareパッケージをインストールする必要があることに注意してください。

これらのパッケージの内容を表示するには、次を実行します。

dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

すべての使用可能なカーネル・モジュールをインストールするには、次を実行します。

sudo dnf install -y kernel-uek-modules kernel-uek-modules-extra linux-firmware

UEK R7 (5.15.0)を参照してください。

ノート

UEK 8以降では、より合理化されたカーネルを提供するためにカーネル・パッケージの変更が適用されます。kernel-uek-modules-coreパッケージには、コア・カーネル・モジュールおよびサポート・ファイル(depmodによって生成されるファイルなど)の最小数が用意されています。ほとんどのサーバー構成に必要なカーネル・モジュールがkernel-uek-modulesパッケージで提供されますが、Bluetooth、Wi-Fi、ビデオ・キャプチャ・カードなどのサーバー構成では検出されないハードアのオプションのカーネル・モジュールが、kernel-uek-modules-extraパッケージにあります。これらのパッケージの両方に、linux-firmwareパッケージをインストールする必要があることに注意してください。

これらのパッケージの内容を表示するには、次を実行します。

dnf repoquery -l kernel-uek-modules-core
dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra

すべての使用可能なカーネル・モジュールをインストールするには、次を実行します。

sudo dnf install -y kernel-uek-modules-core kernel-uek-modules kernel-uek-modules-extra linux-firmware

UEK 8 (6.12.0)を参照してください。

ブート時に悪意のあるコードを実行することからシステムを保護するために、カーネル・モジュールに署名できます。UEFIセキュア・ブートが有効になっている場合は、正しい署名情報を含むカーネル・モジュールのみをロードできます。詳細は、『Oracle Linux: UEFI Secure Bootの操作』を参照してください。

弱い更新モジュールについて

ドライバの更新ディスクを使用してインストールされる、または独立したパッケージからインストールされる、外部モジュールなどの外部モジュールは、通常、/lib/modules/kernel-version/extraディレクトリにインストールされます。このディレクトリに格納されるモジュールは、これらのモジュールのロード時にカーネルに含まれている一致するモジュールよりも優先されます。インストールされた外部ドライバおよびモジュールは、既存のカーネル・モジュールをオーバーライドして、ハードウェアの問題を解決できます。カーネル更新ごとに、これらの外部モジュールを互換性のある各カーネルで使用可能にする必要があるため、影響を受けるハードウェアとのドライバの非互換性によって発生する可能性のあるブートの問題を回避できます。

互換性のあるカーネル更新ごとに外部モジュールをロードする必要はシステムで重要であるため、互換性のあるカーネルの弱い更新モジュールとして外部モジュールをロードできるようにするためのメカニズムが存在します。

/lib/modules/kernel-version/weak-updatesディレクトリに互換性のあるモジュールへのシンボリック・リンクを作成することで、弱い更新モジュールを使用できるようにします。パッケージ・マネージャは、互換性のあるカーネルについて/lib/modules/kernel-version/extraディレクトリにインストールされているドライバ・モジュールを検出すると、このプロセスを自動的に処理します。

たとえば、新しいカーネルが以前のカーネルにインストールされたモジュールと互換性がある場合、次のコマンド出力に示すように、外部モジュール(kmod-kvdoなど)がインストール・プロセスの一部としてweak-updatesディレクトリにシンボリック・リンクとして自動的に追加されます。

ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/uds
lrwxrwxrwx. 1 root root 68 Jul  8 07:57 uds.ko -> 
/lib/modules/6.12.0-100.28.2.el10.x86_64/extra/kmod-kvdo/uds/uds.ko
ls -l /lib/modules/6.12.0-100.28.2.el10.x86_64/weak-updates/kmod-kvdo/vdo

シンボリック・リンクを使用すると、外部モジュールはカーネル更新用にロードできます。

弱い更新は有益であり、カーネル更新で外部モジュールを実行するために追加作業は必要ありません。カーネルのアップグレード後に発生する可能性のあるドライバ関連のブートの問題が防止されるので、システムとそのハードアの実行がより予測可能になる。

カーネルバージョンで上位または優先のドライバまたはモジュールバージョンが提供されている場合は、弱い更新モジュールを削除できます。詳細は、Removing Weak Update Modulesを参照してください。

外部ドライバモジュールおよびドライバ更新ディスクの詳細は、次のドキュメントを参照してください。

仮想ファイルシステムおよびシステム構成について

システムがブートプロセスを完了すると、仮想ファイルシステムは、実行中のカーネル、およびシステム上で使用可能なプロセスとハードウェアへのインタフェースを提供します。次の2つの仮想ファイル・システムを使用できます。
  • procfs: /procにマウントされ、主にプロセスおよびハードウェアに関連するカーネル・データ構造へのインタフェースを提供します。
  • sysfs: /sysにマウントされ、デバイス、カーネル・モジュール、ファイル・システムおよびその他のカーネル・コンポーネントに関する情報を提供します。

これらの仮想ファイルシステムは、実行中のカーネルを制御およびレポートするために使用されるため、OSの稼働中にシステム構成をモニターおよび調整できます。

カーネル仮想ファイル・システム・コレクションの一部ではありませんが、/etc/sysconfigシステム構成ファイル・パスは、システムの起動時に読み取られる多くのコア・システム構成変数へのインタフェースを提供するため、重要です。

システム設定の構成方法に関するハンズオン・チュートリアルについては、「Oracle Linuxでのシステム構成ファイルおよびカーネル・チューニング可能パラメータの確認」も参照してください。

/etc/sysconfigファイルについて

/etc/sysconfigディレクトリには、ブート後のシステムの構成を制御するファイルが含まれています。このディレクトリの内容は、システムにインストールしたパッケージによって異なります。/etc/sysconfigディレクトリは、主に、Network Managerなどのシステム構成を制御するsystemdおよび関連コンポーネントで使用される多くの構成ファイルの単一ビューを提供します。

新しいリリースのOracle Linuxでは、systemdおよびその他の構成ユニットによって構成がより適切に処理されるため、このディレクトリ内の構成ファイルの数が減少しています。systemdの詳細は、systemdによるシステムの管理を参照してください。

/etc/sysconfigディレクトリには、次のようなファイルが含まれます:

atd

atdデーモンに対してコマンドライン引数を指定します。

autofs

デバイスを自動的にマウントしたり、自動マウンタの操作を制御するためのカスタム・オプションを定義します。Oracle Linux 9以降では使用できません。

crond

ブート時に引数をcrondデーモンに渡します。

chronyd

ブート時にNTPサービスに使用されるchronydデーモンに引数を渡します。

firewalld

起動時に引数をファイアウォール・デーモン(firewalld)に渡します。

grub

GRUB 2ブート・ローダーのデフォルト設定を指定します。このファイルは/etc/default/grubへのシンボリック・リンクです。詳細は、「GRUB 2ブート・ローダーについて」を参照してください。Oracle Linux 9以降では使用できません。

named

ブート時に引数を名前サービス・デーモンに渡します。namedデーモンは、Berkeley Internet Name Domain (BIND)ディストリビューションに含まれるドメイン・ネーム・システム(DNS)サーバーです。このサーバーは、ネットワーク上のホスト名とIPアドレスを関連付けるテーブルを保持します。

samba

ブート時に引数をsmbdnmbdおよびwinbinddデーモンに渡して、Windowsクライアントのファイル共有接続、NetBIOS-over-IPネーミング・サービス、およびドメイン・コントローラへの接続管理をサポートします。

selinux

システム上でSELinuxの状態を制御します。このファイルは/etc/selinux/configへのシンボリック・リンクです。

詳細は、Oracle LinuxでのSELinuxの管理を参照してください。

snapper

snapperユーティリティによってコンテンツをスナップショットとして記録できる、btrfsファイル・システムおよびシン・プロビジョニングされたLVMボリュームのリストを定義します。

詳細は、次のドキュメントを参照してください。

sysstat

sarなど、システム・アクティビティのデータ・コレクタ・ユーティリティ用のロギング・パラメータを構成します。

Oracle Linux 8では、詳細は/usr/share/doc/initscripts*/sysconfig.txtを参照してください。このコンテンツは、より新しいリリースのOracle Linuxでは使用できません。

/proc仮想ファイル・システムについて

/procディレクトリ階層内のファイルには、システム・ハードウェアおよびシステムで実行中のプロセスに関する情報が含まれています。カーネルの構成を変更するには、書込み権限が設定されている特定のファイルに書き込みます。

/procディレクトリの下のファイルは、基礎となるデータ構造およびシステム情報のブラウズ可能なビューを表示するために、要求に応じてカーネルによって作成される仮想ファイルです。このように、/procは仮想ファイル・システムの1つの例です。ほとんどの仮想ファイルはサイズを0バイトとしてリストされますが、表示すると、大量の情報が含まれています。

/proc/interrupts/proc/meminfo/proc/mounts/proc/partitionsなどの仮想ファイルでは、システムのハードウェアについて理解できます。その他のファイル(/proc/filesystems/proc/sysの下のファイルなど)は、システムの構成に関する情報を提供し、必要に応じて構成を変更できます。

関連トピックに関する情報が含まれるファイルは、仮想ディレクトリにグループ化されます。システムで実行されているプロセスごとに、/procディレクトリに別のディレクトリが存在します。ディレクトリの名前は、数値のプロセスIDに対応します。たとえば、/proc/1は、PIDが1のsystemdプロセスに対応します。

仮想ファイルを調べるには、次の例に示すように、catlessviewなどのコマンドを使用できます。

cat /proc/cpuinfo
processor         : 0
vendor_id         : GenuineIntel
cpu family        : 6
model             : 42
model name        : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping          : 7
cpu MHz           : 2393.714
cache size        : 6144 KB
physical id       : 0
siblings          : 2
core id           : 0
cpu cores         : 2
apicid            : 0
initial apicid    : 0
fpu               : yes
fpu_exception     : yes
cpuid level       : 5
wp                : yes
...

判読できないコンテンツを含むファイルには、lspcifreetopおよびsysctlなどのユーティリティを使用して情報にアクセスできます。たとえば、lspciコマンドは、システム上のPCIデバイスをリストします。

sudo lspci
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 interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
        (rev 02)
...

/procで使用可能な様々なディレクトリの詳細は、procfsディレクトリ・リファレンスを参照してください。/proc/sysのカーネル・パラメータを表示および変更してシステム実行時の動作を制御する方法の詳細は、「実行時のカーネル・パラメータの管理」を参照してください。

/sys仮想ファイル・システムについて

カーネルは、/procファイル・システムに加えて/sys仮想ファイル・システム(sysfs)にも情報をエクスポートします。動的デバイス・マネージャ(udev)などのプログラムでは、/sysを使用してデバイスやデバイス・ドライバ情報にアクセスします。デバイス管理の詳細は、Managing System Devices With the udev Device Managerを参照してください。

ノート

/sysは、カーネル・データ構造と制御ポイントを公開します。これは、ディレクトリが祖先ディレクトリとリンクしている循環参照を含むことを意味します。したがって、/sysで使用されるfindコマンドは停止しない可能性があります。

/sysで見つけることができるディレクトリの詳細は、sysfsディレクトリ・リファレンスを参照してください。