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

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

最終更新日:Sep 29, 2024

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

次の手順を実行して、ソースサーバーのオペレーティングシステムカーネルがvirtioドライバーをサポートしているかどうかを確認し、チェック結果に基づいてアクションを実行できます。

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

  2. チェック結果に基づいて次の操作を実行します。

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

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

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

virtio_driver

コマンド出力の表示

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

  • パラメーター値がyの場合、virtioドライバーは期待どおりにインストールされます。 このトピックの [参照] セクションで説明されている操作を実行します。

  • パラメーターが存在しない場合、virtioドライバーはインストールされません。 ドライバをインストールします。 詳細については、このトピックの「virtioドライバーのインストール」をご参照ください。

  • パラメーター値がmの場合、または一方のパラメーター値がyで、もう一方のパラメーター値がmの場合は、virtioドライバーがサポートされます。 次のいずれかの操作を実行します。

    • パラメーター値がmの場合、virtioドライバーがサポートされます。 次のいずれかのコマンドを実行して、virtioドライバが一時ファイルシステムに追加されているかどうかを確認します。

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

    CentOSシリーズ

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

    image

    • 上の図に示す出力と同様のコマンド出力が返されると、virtioドライバが一時ファイルシステムに追加されます。 この場合、このトピックの [参照] セクションで説明されている操作を実行します。

    • virtioドライバーが一時ファイルシステムに追加されていない場合は、このトピックの「一時ファイルシステムへのvirtioドライバーの追加」セクションで説明されている操作を実行します。 CONFIG_VIRTIO_BLKおよびCONFIG_VIRTIO_NETパラメーターの値の一方がyで、もう一方がmの場合、値がmのvirtioドライバーが一時ファイルシステムに追加されているかどうかだけを確認する必要があります。

    UbuntuまたはDebianシリーズ

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

    image

    • 上の図に示す出力と同様のコマンド出力が返されると、virtioドライバが一時ファイルシステムに追加されます。 この場合、このトピックの [参照] セクションで説明されている操作を実行します。

    • virtioドライバーが一時ファイルシステムに追加されていない場合は、このトピックの「一時ファイルシステムへのvirtioドライバーの追加」セクションで説明されている操作を実行します。 CONFIG_VIRTIO_BLKおよびCONFIG_VIRTIO_NETパラメーターの値の一方がyで、もう一方がmの場合、値がmのvirtioドライバーが一時ファイルシステムに追加されているかどうかだけを確認する必要があります。

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

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

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キーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

    add_drivers+="virtio_blk virtio_net"

    Escキーを押して :wqと入力し、enterキーを押してファイルを保存して閉じます。

    説明

    CONFIG_VIRTIO_BLKパラメーターとCONFIG_VIRTIO_NETパラメーターの値の一方がyで、もう一方がmの場合、値がmのvirtioドライバーをファイルに追加するだけです。 たとえば、CONFIG_VIRTIO_NETパラメーターの値がmの場合、add_drivers +="virtio_net" をファイルに書き込むだけです。

  3. 次のコマンドを実行してinitrdを再生成します。

    dracut -f
    説明

    コマンドを実行した後、エコー $? コマンドを実行して、値0が返されるかどうかを確認します。 値0が返された場合、initrdは期待どおりに再生成されます。 export OSS_IMPORT_HOME=<dir> を実行するか、システム設定ファイル $HOME/.bashrc を変更してディレクトリを設定することもできます。

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

DebianまたはUbuntu

  1. 次のコマンドを実行して、modulesファイルを開きます。

    vim /etc/initramfs-tools/modules
  2. Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

    virtio_blk
    virtio_net

    Escキーを押して :wqと入力し、enterキーを押してファイルを保存して閉じます。

    説明

    CONFIG_VIRTIO_BLKパラメーターとCONFIG_VIRTIO_NETパラメーターの値の一方がyで、もう一方がmの場合、値がmのvirtioドライバーをファイルに追加するだけです。 たとえば、CONFIG_VIRTIO_NETパラメーターの値がmの場合、virtio_netをファイルに追加するだけです。

  3. 次のコマンドを実行してinitrdを再生成します。

    update-initramfs -u
    説明

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

SUSEまたはopenSUSE

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

    1. 次のコマンドを実行して、カーネルファイルを開きます。

      vim /etc/sysconfig/kernel
    2. Iキーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

      INITRD_MODULES="virtio_blk virtio_net"

      Escキーを押して :wqと入力し、enterキーを押してファイルを保存して閉じます。

      説明

      CONFIG_VIRTIO_BLKパラメーターとCONFIG_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キーを押してInsertモードに入り、次のコンテンツをファイルに追加します。

      add_drivers+="virtio_blk virtio_net"

      Escキーを押して :wqと入力し、enterキーを押してファイルを保存して閉じます。

      説明

      CONFIG_VIRTIO_BLKパラメーターとCONFIG_VIRTIO_NETパラメーターの値の一方がyで、もう一方がmの場合、値がmのvirtioドライバーをファイルに追加するだけです。 たとえば、CONFIG_VIRTIO_NETパラメーターの値がmの場合、add_drivers +="virtio_net" をファイルに書き込むだけです。

    3. 次のコマンドを実行してinitrdを再生成します。

      dracut -f
説明

コマンドを実行した後、エコー $? コマンドを実行して、値0が返されるかどうかを確認します。 値0が返された場合、initrdは期待どおりに再生成されます。 export OSS_IMPORT_HOME=<dir> を実行するか、システム設定ファイル $HOME/.bashrc を変更してディレクトリを設定することもできます。

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

virtioドライバーのインストール

説明

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

手順1: カーネルインストールパッケージをダウンロードする

説明

この例では、linux-4.4.24.tar.gzのカーネルインストールパッケージがCentOSオペレーティングシステムで使用されています。 オペレーティングシステムのカーネルバージョンに基づいてコマンドを変更する必要があります。

  1. 次のコマンドを実行して、カーネルのコンパイルに必要なコンポーネントをインストールします。

    yum install -y ncurses-devel gcc make wget
  2. 次のコマンドを実行して、オペレーティングシステムのカーネルバージョンを照会します。 この例では、カーネルのバージョンは4.4.24-2.al7.x86_64です。

    uname -r

    kernel_version

  3. に移動します。Go to the/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/
  5. 次のコマンドを実行して、インストールパッケージをダウンロードします。

    wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
  6. 次のコマンドを実行して、インストールパッケージを解凍します。

    tar -xzf linux-4.4.24.tar.gz
  7. 以下を実行してシンボリックリンクを作成します。

    ln -s linux-4.4.24 linux
  8. 次のコマンドを実行して、ディレクトリを切り替えます。

    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. カーネルベースの仮想マシン (KVM) サポートオプションが選択されていることを確認します。Select_KVM

    2. プロセッサの種類と機能のオプションを設定します。

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

      2. スペースバーキーを押してParahivalized guest supportを選択し、Enterキーを押してオプションのリストを表示します。guest_support

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

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

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

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

      3. Virtio block driverオプションが選択されていることを確認します。Virtio_block

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

      5. Virtio network driverオプションが選択されていることを確認します。Virtio_network

    4. を押してください。Escキーを押してカーネル構成ウィンドウを終了し、はいを保存するためのプロンプトで. 設定ファイルを作成します。

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

    6. (オプション)virtio関連の設定が不完全な場合は、次のコマンドを順番に実行して、. 設定ファイル:

      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ドライバーがインストールされている場合、次の図に示すように、コマンド出力の1つにvirtio関連のファイル (virtio_blk、virtio_pci、virtio_consoleなど) のリストが含まれます。确认结果

リファレンス

virtioドライバーをLinuxオペレーティングシステムにインストールした後、次の操作を実行できます。