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

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

最終更新日:Apr 18, 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のカーネルインストールパッケージが使用されています。 オペレーティングシステムのカーネルバージョンに基づいてコマンドを変更する必要があります。

  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 mrsupric
    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 ncurses-develをインストールする
    yumインストールバイソン
    yumインストールフレックス 
  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
      準備する
      スクリプトを作成する
      作る
      インストールする 
    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オペレーティングシステムにインストールした後、次の操作を実行できます。