Todos os produtos
Search
Central de documentação

Elastic Compute Service:Instalar o driver virtio

Última atualização: Jul 03, 2026

Instale e carregue o driver virtio na sua imagem personalizada do Linux para que as instâncias ECS detectem dispositivos de armazenamento e rede virtualizados durante a inicialização.

Procedimento

O fluxograma a seguir ilustra como instalar o driver virtio em um sistema Linux:

image

Procedimento

Verificar se o kernel suporta virtio

  1. Na máquina virtual onde você cria a imagem, execute o comando abaixo para verificar se o kernel suporta virtio:

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

    Exemplo de saída:

    virtio_driver

  2. Analise a saída.

    Verifique os parâmetros CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET:

Adicionar o driver virtio ao sistema de arquivos temporário

Caso o kernel tenha CONFIG_VIRTIO_BLK=m ou CONFIG_VIRTIO_NET=m, mas esses módulos não estejam no initramfs, o sistema pode falhar ao carregar o virtio na inicialização.

  1. Se CONFIG_VIRTIO_BLK ou CONFIG_VIRTIO_NET for m, execute um dos comandos a seguir para verificar se o driver virtio está no initramfs:

    Série CentOS

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

    image

    Série Debian

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

    image

    Série SUSE

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

    image

    • Caso a saída contenha virtio_blk.ko e virtio_net.ko, o driver virtio já está no initramfs. Nenhuma ação adicional é necessária.

    • Se a saída não contiver virtio_blk.ko ou virtio_net.ko, ou contiver apenas um entre virtio_blk.ko e virtio_net.ko, prossiga para a próxima etapa.

  2. Adicione o driver virtio ao initramfs.

    Série CentOS

    Aplicável ao CentOS 6, Anolis OS 7, AlmaLinux 8, Fedora 33 ou versões posteriores com kernel superior a 2.6.24 (execute uname -r para verificar).

    1. Abra o arquivo dracut.conf:

      vim /etc/dracut.conf
    2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

      add_drivers+="virtio_blk virtio_net"

      Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

      Nota

      Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas add_drivers+="virtio_net" no arquivo.

    3. Regenere o initrd:

      dracut -f
      Nota

      Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando

      lsinitrd /boot/initramfs-$(uname -r).img | grep virtio para verificar se o virtio está presente no initramfs.

    Série Debian

    1. Abra o arquivo modules:

      vim /etc/initramfs-tools/modules
    2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

      virtio_blk
      virtio_net

      Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

      Nota

      Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, adicione apenas virtio_net ao arquivo.

    3. Regenere o initrd:

      update-initramfs -u
      Nota

      Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando lsinitramfs /boot/initrd.img-$(uname -r)|grep virtio para verificar se o virtio está presente no initramfs.

    Série SUSE

    • Versões anteriores ao SUSE 12 SP1 ou openSUSE 13

      1. Abra o arquivo kernel:

        vim /etc/sysconfig/kernel
      2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

        INITRD_MODULES="virtio_blk virtio_net"

        Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

        Nota

        Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas INITRD_MODULES="virtio_net" no arquivo.

      3. Regenere o initrd:

        mkinitrd
    • SUSE 12 SP1, OpenSUSE 13 ou versões posteriores

      1. Abra o arquivo dracut.conf:

        vim /etc/dracut.conf
      2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

        add_drivers+="virtio_blk virtio_net"

        Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

        Nota

        Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas add_drivers+="virtio_net" no arquivo.

      3. Regenere o initrd:

        dracut -f
    Nota

    Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando

    lsinitrd /boot/initrd-$(uname -r)|grep virtio para verificar se o virtio está presente no initramfs.

Instalar manualmente o driver virtio

Etapa 1: Baixar o pacote de instalação do kernel

Nota

Neste exemplo, utiliza-se o pacote de instalação do kernel linux-4.4.24.tar.gz no CentOS. Ajuste os comandos conforme a versão do seu kernel.

  1. Instale os componentes necessários para compilar o kernel:

    yum install -y ncurses-devel gcc make wget
  2. Consulte a versão do kernel. Neste exemplo, a versão do kernel é 4.4.24-2.al7.x86_64.

    uname -r

    kernel_version

  3. Acesse a página de lista de kernels Linux e localize a URL de download correspondente à versão do seu kernel.

    Neste exemplo, a URL de download do arquivo linux-4.4.24.tar.gz é https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz.

    download

  4. Baixe o pacote de instalação:

    cd /usr/src/
    wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
  5. Descompacte o pacote e crie um link simbólico:

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

Etapa 2: Compilar o kernel

  1. Compile o kernel:

    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
    Nota

    Caso o comando make menuconfig falhe, instale os componentes ausentes. Por exemplo:

    yum install  ncurses-devel
    yum install  bison
    yum install  flex
  2. Conclua as configurações relacionadas ao virtio na página a seguir:

    Nota

    Selecionar configurações com asteriscos (*) compila o driver virtio diretamente no kernel. Selecionar m o compila como módulo.

    1. Configure as opções de Virtualization.

      1. Selecione Virtualization e pressione Enter.Select_Virtualization

      2. Confirme se a opção Kernel-based Virtual Machine (KVM) support está selecionada.Select_KVM

    2. Configure as opções Processor type and features.

      1. Retorne ao menu principal, selecione Processor type and features e pressione Enter.

      2. Selecione Paravirtualized guest support e pressione Enter.guest_support

      3. Confirme se KVM paravirtualized clock e KVM Guest support estão selecionados.KVM

    3. Configure as opções Device Drivers.

      1. Retorne ao menu principal, selecione Device Drivers e pressione Enter.

      2. Selecione Block devices e pressione Enter.

      3. Confirme se Virtio block driver está selecionado.Virtio_block

      4. Volte para Device Drivers, selecione Network device support e pressione Enter.

      5. Confirme se Virtio network driver está selecionado.Virtio_network

    4. Pressione Esc para sair da janela de configuração do kernel. Selecione Yes para salvar o arquivo .config.

    5. Verifique se as configurações relacionadas ao virtio estão completas.

    6. (Opcional) Se as configurações do virtio estiverem incompletas, modifique o arquivo .config:

      make oldconfig
      make prepare
      make scripts
      make
      make install
    7. Verifique se o driver virtio está instalado:

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

      Se o driver virtio estiver instalado, uma das saídas dos comandos listará arquivos relacionados ao virtio, como virtio_blk, virtio_pci e virtio_console.确认结果

Etapa 1: Verificar se o kernel do servidor suporta o driver virtio

  1. Verifique se o kernel suporta virtio:

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

    Exemplo de saída:

    virtio_driver

  2. Analise a saída.

    Verifique os parâmetros CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET:

Etapa 2: Verificar se o driver virtio foi adicionado a um sistema de arquivos temporário

Se CONFIG_VIRTIO_BLK ou CONFIG_VIRTIO_NET for m, execute um dos comandos a seguir para verificar se o driver virtio está no initramfs:

Série CentOS

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

image

Série Ubuntu/Debian

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

image

Etapa 3: Adicionar o driver virtio a um sistema de arquivos temporário

Se o kernel suporta virtio, mas o driver não está no initramfs, adicione-o. Execute um dos conjuntos de comandos a seguir, de acordo com seu sistema operacional:

CentOS 6/Anolis OS 7/AlmaLinux 8/Fedora 33

Aplicável ao CentOS 6, Anolis OS 7, AlmaLinux 8, Fedora 33 ou versões posteriores com kernel superior a 2.6.24 (execute uname -r para verificar).

  1. Abra o arquivo dracut.conf:

    vim /etc/dracut.conf
  2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

    add_drivers+="virtio_blk virtio_net"

    Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

    Nota

    Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas add_drivers+="virtio_net" no arquivo.

  3. Regenere o initrd:

    dracut -f
    Nota

    Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando

    lsinitrd /boot/initramfs-$(uname -r).img | grep virtio para verificar se o virtio está presente no initramfs.

Série Debian/Ubuntu

  1. Abra o arquivo modules:

    vim /etc/initramfs-tools/modules
  2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

    virtio_blk
    virtio_net

    Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

    Nota

    Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, adicione apenas virtio_net ao arquivo.

  3. Regenere o initrd:

    update-initramfs -u
    Nota

    Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando lsinitramfs /boot/initrd.img-$(uname -r)|grep virtio para verificar se o virtio está presente no initramfs.

Série SUSE/OpenSUSE

  • Versões anteriores ao SUSE 12 SP1 ou openSUSE 13

    1. Abra o arquivo kernel:

      vim /etc/sysconfig/kernel
    2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

      INITRD_MODULES="virtio_blk virtio_net"

      Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

      Nota

      Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas INITRD_MODULES="virtio_net" no arquivo.

    3. Regenere o initrd:

      update-initramfs -u
  • SUSE 12 SP1, OpenSUSE 13 ou versões posteriores

    1. Abra o arquivo dracut.conf:

      vim /etc/dracut.conf
    2. Pressione i para entrar no modo de inserção e adicione o seguinte conteúdo:

      add_drivers+="virtio_blk virtio_net"

      Pressione Esc, digite :wq e pressione Enter para salvar e fechar o arquivo.

      Nota

      Se um dos valores de CONFIG_VIRTIO_BLK e CONFIG_VIRTIO_NET for y e o outro for m, adicione ao arquivo apenas o driver virtio cujo valor seja m. Por exemplo, se o valor do parâmetro CONFIG_VIRTIO_NET for m, escreva apenas add_drivers+="virtio_net" no arquivo.

    3. Regenere o initrd:

      dracut -f
Nota

Execute echo $? para confirmar um valor de retorno igual a 0. Execute o comando

lsinitrd /boot/initramfs-$(uname -r).img | grep virtio para verificar se o virtio está presente no initramfs.

Etapa 4: Instalar o driver virtio

Nota

Para Red Hat e CentOS 5, atualize o kernel para a versão 5,11 antes de instalar o driver virtio.

Etapa 1: Baixar o pacote de instalação do kernel

Nota

Neste exemplo, utiliza-se o pacote de instalação do kernel linux-4.4.24.tar.gz no CentOS. Ajuste os comandos conforme a versão do seu kernel.

  1. Instale os componentes necessários para compilar o kernel:

    yum install -y ncurses-devel gcc make wget
  2. Consulte a versão do kernel. Neste exemplo, a versão do kernel é 4.4.24-2.al7.x86_64.

    uname -r

    kernel_version

  3. Acesse a página de lista de kernels Linux e localize a URL de download correspondente à versão do seu kernel.

    Neste exemplo, a URL de download do arquivo linux-4.4.24.tar.gz é https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz.

    download

  4. Baixe o pacote de instalação:

    cd /usr/src/
    wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.24.tar.gz
  5. Descompacte o pacote e crie um link simbólico:

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

Etapa 2: Compilar o kernel

  1. Compile o kernel:

    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
    Nota

    Caso o comando make menuconfig falhe, instale os componentes ausentes. Por exemplo:

    yum install  ncurses-devel
    yum install  bison
    yum install  flex
  2. Conclua as configurações relacionadas ao virtio na página a seguir:

    Nota

    Ao selecionar configurações com asteriscos (*), o driver virtio é compilado diretamente no kernel. Ao selecionar configurações com m, o driver virtio é compilado como módulo.

    1. Configure as opções de Virtualization.

      1. Selecione Virtualization e pressione Enter.Select_Virtualization

      2. Confirme se a opção Kernel-based Virtual Machine (KVM) support está selecionada.Select_KVM

    2. Configure as opções Processor type and features.

      1. Retorne ao menu principal, selecione Processor type and features e pressione Enter.

      2. Selecione Paravirtualized guest support e pressione Enter.guest_support

      3. Confirme se KVM paravirtualized clock e KVM Guest support estão selecionados.KVM

    3. Configure as opções Device Drivers.

      1. Retorne ao menu principal, selecione Device Drivers e pressione Enter.

      2. Selecione Block devices e pressione Enter.

      3. Confirme se Virtio block driver está selecionado.Virtio_block

      4. Volte para Device Drivers, selecione Network device support e pressione Enter.

      5. Confirme se Virtio network driver está selecionado.Virtio_network

    4. Pressione Esc para sair da janela de configuração do kernel. Selecione Yes para salvar o arquivo .config.

    5. Verifique se as configurações relacionadas ao virtio estão completas.

    6. (Opcional) Se as configurações do virtio estiverem incompletas, modifique o arquivo .config:

      make oldconfig
      make prepare
      make scripts
      make
      make install
    7. Verifique se o driver virtio está instalado:

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

      Se o driver virtio estiver instalado, uma das saídas dos comandos listará arquivos relacionados ao virtio, como virtio_blk, virtio_pci e virtio_console.确认结果