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

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

最終更新日:May 13, 2025

オペレーティングシステムカーネルが virtio ドライバーをサポートするカスタムイメージのみを Alibaba Cloud Elastic Compute Service (ECS) にインポートし、そのイメージを使用して起動可能な ECS インスタンスを作成できます。ソースサーバーに基づいてカスタムイメージを作成する場合、またはカスタムイメージをインポートする場合は、virtio ドライバーがイメージにインストールされ、一時ファイルシステムに追加されていることを確認してください。

手順 1:ソースサーバーのオペレーティングシステムカーネルが virtio ドライバーをサポートしているかどうかを確認する

  1. 次のコマンドを実行して、ソースサーバーのオペレーティングシステムカーネルが virtio ドライバーをサポートしているかどうかを確認します。これは、カスタムイメージに virtio ドライバーをインストールするか、ドライバーを一時ファイルシステムに追加するかを判断するのに役立ちます。

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

    次のコマンド出力が返されます。

    virtio_driver

  2. コマンド出力を分析します。

    コマンド出力の CONFIG_VIRTIO_BLK パラメーターと CONFIG_VIRTIO_NET パラメーターを確認します。

手順 2:virtio ドライバーが一時ファイルシステムに追加されているかどうかを確認する

CONFIG_VIRTIO_BLK パラメーターと CONFIG_VIRTIO_NET パラメーターの値が m の場合、または一方のパラメーター値が y で、もう一方のパラメーター値が m の場合、次のコマンドのいずれかを実行して、virtio ドライバーが一時ファイルシステムに追加されているかどうかを確認します。

CentOS シリーズ

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

image

Ubuntu または Debian シリーズ

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

image

手順 3:virtio ドライバーを一時ファイルシステムに追加する

ソースサーバーのオペレーティングシステムカーネルが virtio ドライバーをサポートしているが、virtio ドライバーが一時ファイルシステムに追加されていない場合は、ドライバーを一時ファイルシステムに追加します。 ソースサーバーのオペレーティングシステムに基づいて、次のコマンドセットのいずれかを実行します。

CentOS 6、Anolis OS 7、AlmaLinux 8、または Fedora 33

オペレーティングシステムのバージョンが 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 が返されるかどうかを確認できます。返された場合、initrd は想定どおりに再生成されています。また、次のことも実行できます。

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio コマンドを実行して、virtio ドライバーが一時ファイルシステムに想定どおりに追加されているかどうかを確認します。

Debian または Ubuntu

  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 が返されるかどうかを確認できます。 返される場合、initrd は想定どおりに再生成されます。 また、lsinitramfs /boot/initrd.img-$(uname -r)|grep virtio コマンドを実行して、virtio ドライバーが一時ファイルシステムに想定どおりに追加されているかどうかを確認することもできます。

SUSE または openSUSE

  • 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 を再生成します。

      update-initramfs -u
  • 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 が返されるかどうかを確認できます。返された場合、initrd は想定どおりに再生成されています。また、次のことも実行できます。

lsinitrd /boot/initramfs-$(uname -r).img | grep virtio コマンドを実行して、virtio ドライバーが一時ファイルシステムに想定どおりに追加されているかどうかを確認します。

手順 4:virtio ドライバーをインストールする

説明

Red Hat および CentOS 5 の場合、virtio ドライバーをインストールする前に、カーネルバージョンを 5.11 にアップグレードすることをお勧めします。

サブ手順 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. Index of /pub/linux/kernel/ ページで、カーネルバージョンリポジトリのダウンロード 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 コマンドの実行時にエラーメッセージが表示された場合は、エラーメッセージに基づいて問題のトラブルシューティングを行ってください。 たとえば、ncurses-devel、bison、および flex コンポーネントがインストールされていない場合は、次のコマンドを順番に実行してインストールします。

    yum install  ncurses-devel
    yum install  bison
    yum install  flex
  2. 次のページで virtio 関連の構成を完了します。

    説明

    アスタリスク (*) を含む構成を選択すると、virtio ドライバーはカーネルにコンパイルされます。 m を含む構成を選択すると、virtio ドライバーはモジュールにコンパイルされ、ドライバーの起動時にモジュールがカーネルに挿入されます。

    1. [仮想化] オプションを構成します。

      1. スペースバーキーを押して [仮想化] を選択し、Enter キーを押してオプションを表示します。Select_Virtualization

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

    2. [プロセッサの種類と機能] オプションを構成します。

      1. メインメニューに戻り、上下の矢印キーを押して [プロセッサの種類と機能] を選択し、Enter キーを押してオプションを表示します。

      2. スペースバーキーを押して [準仮想化ゲストのサポート] を選択し、Enter キーを押してオプションを表示します。guest_support

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

    3. [デバイスドライバー] オプションを構成します。

      1. メインメニューに戻り、上下の矢印キーを押して [デバイス ドライバー] を選択し、Enter キーを押してオプションを表示します。

      2. スペースバーキーを押して [ブロック デバイス] を選択し、Enter キーを押してオプションを表示します。

      3. [Virtio ブロックドライバー] オプションが選択されていることを確認します。Virtio_block

      4. [デバイスドライバー] オプションリストに戻り、上下の矢印キーを押して [ネットワークデバイスのサポート] を選択し、Enter キーを押してオプションを表示します。Enter キーを押します

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

    4. Esc キーを押してカーネル構成ウィンドウを終了し、プロンプトで [はい] を選択して .config ファイルを保存します。

    5. 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 関連ファイルのリストが含まれています。确认结果