すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:virtio ドライバーのインストール

最終更新日:May 16, 2026

カスタム Linux イメージに virtio ドライバーをインストールしてロードし、Elastic Compute Service (ECS) インスタンスが起動時に仮想ストレージとネットワークデバイスを検出できるようにします。

手順

次のフローチャートは、Linux システムに virtio ドライバーをインストールする方法を示しています:

image

手順

カーネルが virtio をサポートしているかどうかの確認

  1. イメージを作成する仮想マシンで、次のコマンドを実行して、カーネルが virtio をサポートしているかどうかを確認します:

    grep -i virtio /boot/config-$(uname -r)

    出力例:

    virtio_driver

  2. 出力を分析します。

    CONFIG_VIRTIO_BLK および CONFIG_VIRTIO_NET パラメーターを確認します:

    • パラメーター値が [y] の場合: virtio ドライバーはカーネルに組み込まれて起動時に自動的にロードされるため、追加の操作は不要です。

    • パラメーターの値が m、または一方が y でもう一方が m の場合: virtio ドライバーはカーネルモジュールとして存在します。「virtio ドライバーを一時ファイルシステムに追加」をご参照ください。

    • パラメーターが表示されない場合: virtio ドライバーはインストールされていません。「virtio ドライバーを手動でインストール」をご参照ください。

virtio ドライバーを一時ファイルシステムに追加

カーネルに CONFIG_VIRTIO_BLK=m または CONFIG_VIRTIO_NET=m があるにもかかわらず、これらのモジュールが initramfs に含まれていない場合、システムが起動時に virtio をロードできない可能性があります。

  1. CONFIG_VIRTIO_BLK または CONFIG_VIRTIO_NETm の場合、次のいずれかのコマンドを実行して、virtio ドライバーが initramfs に含まれているかどうかを確認します:

    CentOS 系

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

    image

    Debian 系

    lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio

    image

    SUSE 系

    lsinitrd /boot/initrd-$(uname -r) | grep virtio

    image

    • 出力に virtio_blk.kovirtio_net.ko が含まれている場合、virtio ドライバーはすでに initramfs に含まれています。追加の操作は不要です。

    • 出力に virtio_blk.ko または virtio_net.ko が含まれていない場合、または virtio_blk.kovirtio_net.ko のいずれか一方のみが含まれている場合は、次の手順に進みます。

  2. virtio ドライバーを initramfs に追加します。

    CentOS 系

    CentOS 6、Anolis OS 7、AlmaLinux 8、Fedora 33 以降で、カーネルバージョンが 2.6.24 より後のものに適用されます (uname -r を実行して確認)。

    1. dracut.conf ファイルを開きます:

      vim /etc/dracut.conf
    2. i を押して挿入モードに入り、次の内容を追加します:

      add_drivers+="virtio_blk virtio_net"

      Esc キーを押し、:wq と入力して Enter キーを押し、ファイルを保存して終了します。

      説明

      CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET の値の一方が y で、もう一方が m の場合は、値が m の virtio ドライバーのみをファイルに追加する必要があります。例えば、CONFIG_VIRTIO_NET パラメーターの値が m の場合は、add_drivers+="virtio_net" のみをファイルに追加します。

    3. initrd を再生成します:

      dracut -f
      説明

      echo $? を実行し、戻り値が 0 であることを確認します。次に、

      lsinitrd /boot/initramfs-$(uname -r).img | grep virtio コマンドを実行し、virtio が initramfs に含まれていることを確認します。

    Debian 系

    1. modules ファイルを開きます:

      vim /etc/initramfs-tools/modules
    2. i を押して挿入モードに入り、次の内容を追加します:

      virtio_blk
      virtio_net

      Esc キーを押し、:wq と入力して Enter キーを押し、ファイルを保存して終了します。

      説明

      CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET の値の一方が y で、もう一方が m の場合は、値が m の virtio ドライバーのみをファイルに追加する必要があります。例えば、CONFIG_VIRTIO_NET パラメーターの値が m の場合は、virtio_net のみをファイルに追加します。

    3. initrd を再生成します:

      update-initramfs -u
      説明

      echo $? を実行し、戻り値が 0 であることを確認します。次に、lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio コマンドを実行し、virtio が initramfs に含まれていることを確認します。

    SUSE 系

    • SUSE 12 SP1 より前、または openSUSE 13 より前のバージョン

      1. kernel ファイルを開きます:

        vim /etc/sysconfig/kernel
      2. i を押して挿入モードに入り、次の内容を追加します:

        INITRD_MODULES="virtio_blk virtio_net"

        Esc キーを押し、:wq と入力して Enter キーを押し、ファイルを保存して終了します。

        説明

        CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET の値の一方が y で、もう一方が m の場合は、値が m の virtio ドライバーのみをファイルに追加する必要があります。例えば、CONFIG_VIRTIO_NET パラメーターの値が m の場合は、INITRD_MODULES="virtio_net" のみをファイルに記述します。

      3. initrd を再生成します:

        mkinitrd
    • SUSE 12 SP1、OpenSUSE 13 以降

      1. dracut.conf ファイルを開きます:

        vim /etc/dracut.conf
      2. i を押して挿入モードに入り、次の内容を追加します:

        add_drivers+="virtio_blk virtio_net"

        Esc キーを押し、:wq と入力して Enter キーを押し、ファイルを保存して終了します。

        説明

        CONFIG_VIRTIO_BLKCONFIG_VIRTIO_NET の値の一方が y で、もう一方が m の場合は、値が m の virtio ドライバーのみをファイルに追加する必要があります。例えば、CONFIG_VIRTIO_NET パラメーターの値が m の場合は、add_drivers+="virtio_net" のみをファイルに追加します。

      3. initrd を再生成します:

        dracut -f
    説明

    echo $? を実行し、戻り値が 0 であることを確認します。次に、

    lsinitrd /boot/initrd-$(uname -r) | grep virtio コマンドを実行し、virtio が initramfs に含まれていることを確認します。

virtio ドライバーを手動でインストール

ステップ 1:カーネルのインストールパッケージのダウンロード

説明

この例では、CentOS を例として、linux-4.4.24.tar.gz のカーネルインストールパッケージを使用します。コマンドはカーネルバージョンに合わせて変更してください。

  1. カーネルのコンパイルに必要なコンポーネントをインストールします:

    yum install -y ncurses-devel gcc make wget
  2. カーネルバージョンを確認します。この例では、カーネルバージョンは 4.4.24-2.al7.x86_64 です。

    uname -r

    kernel_version

  3. Linux kernel list page にアクセスし、カーネルバージョンに対応するダウンロード URL を確認します。

    この例では、linux-4.4.24.tar.gz のダウンロード URL は https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz です。

    download

  4. インストールパッケージをダウンロードします:

    cd /usr/src/
    wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
  5. パッケージを解凍し、シンボリックリンクを作成します:

    tar -xzf linux-4.4.24.tar.gz
    ln -s linux-4.4.24 linux
    cd /usr/src/linux

ステップ 2:カーネルのコンパイル

  1. カーネルをコンパイルします:

    make mrproper
    symvers_path=$(find /usr/src/ -name "Module.symvers")
    test -f $symvers_path && cp $symvers_path .
    cp /boot/config-$(uname -r) ./.config
    make menuconfig
    説明

    make menuconfig コマンドが失敗する場合は、不足しているコンポーネントをインストールします。例:

    yum install ncurses-devel
    yum install bison
    yum install flex
  2. 表示される画面で virtio 関連の設定を完了します:

    説明

    アスタリスク (*) 付きの設定を選択すると、virtio ドライバーはカーネルに組み込まれます。m を選択すると、モジュールとしてコンパイルされます。

    1. Virtualization オプションを設定します。

      1. [仮想化] を選択し、Enter を押します。Select_Virtualization

      2. [Kernel-based Virtual Machine (KVM) support] オプションが選択されていることを確認します。Select_KVM

    2. Processor type and features オプションを設定します。

      1. メインメニューに戻り、[プロセッサタイプと機能] を選択し、[Enter] キーを押します。

      2. [準仮想化ゲストサポート] を選択し、[Enter] を押します。guest_support

      3. [KVM 準仮想化クロック][KVM ゲストサポート] が選択されていることを確認します。KVM

    3. Device Drivers オプションを設定します。

      1. メインメニューに戻り、[デバイスドライバー] を選択し、Enter を押します。

      2. [ブロックデバイス] を選択し、Enter を押します。

      3. [Virtio ブロックドライバー] が選択されていることを確認してください。Virtio_block

      4. [デバイスドライバー] に戻り、[ネットワークデバイスサポート] を選択して、Enter キーを押します。

      5. [Virtio ネットワークドライバー] が選択されていることを確認します。Virtio_network

    4. Esc を押してカーネル設定ウィンドウを終了し、[はい] を選択して .config ファイルを保存します。

    5. virtio 関連の設定が完了しているかどうかを確認します。

      詳細については、「カーネルが virtio をサポートしているかどうかの確認」をご参照ください。

    6. (オプション) virtio の設定が不十分な場合は、.config ファイルを変更します:

      make oldconfig
      make prepare
      make scripts
      make
      make install
    7. virtio ドライバーがインストールされているかどうかを確認します:

      find /lib/modules/"$(uname -r)"/ -name "virtio*" | grep -E "virtio*"
      grep -E "virtio*" < /lib/modules/"$(uname -r)"/modules.builtin

      virtio ドライバーがインストールされている場合、いずれかのコマンド出力に virtio_blk、virtio_pci、virtio_console などの virtio 関連ファイルが表示されます。确认结果