All Products
Search
Document Center

:Update the virtio driver for a Windows instance

Last Updated:Nov 13, 2025

If the virtio driver is outdated or has compatibility issues, it can degrade the performance of your Elastic Compute Service (ECS) instance, resulting in reduced disk IOPS and increased network latency. It can also cause functional abnormalities, such as device recognition failures or metadata read failures. To ensure your ECS instance runs stably on the Alibaba Cloud platform, we recommend that you update the virtio driver in a timely manner.

Use cases

  • Alibaba Cloud periodically updates virtio drivers. Older versions may have known vulnerabilities. Updating the virtio driver can help you avoid potential risks and improve driver performance.

  • When you upgrade a Windows instance from an earlier version, such as Windows Server 2016, to a later version, such as Windows Server 2022, the existing virtio driver may be incompatible with the new operating system. This incompatibility can cause device recognition failures or other functional issues. Therefore, you must update the virtio driver to ensure compatibility.

  • Certain operations on Windows instances depend on the virtio driver version. For example, to expand a disk online, the virtio driver version must be later than 58011. Instances created before March 30, 2019 may not meet this requirement. To query the serial number of a disk, the virtio driver version must be later than 58017. Instances created before May 1, 2020 may not meet this requirement. If the virtio driver on your instance does not meet the requirements for an operation, you must update the driver.

Limitation

You can update the virtio driver only for Windows Server 2008 and later versions.

Procedure

  1. Make preparations.

    • Create a snapshot to back up data.

      We recommend that you create a snapshot for your Windows instance to back up its data. If an issue occurs when you update the virtio driver, you can use the snapshot to roll back the instance.

    • Disable third-party antivirus software.

      To ensure a smooth update, we recommend that you temporarily disable any third-party antivirus software installed on the instance. You do not need to disable the antivirus software that is included with the operating system. After the update is complete, remember to restart the antivirus software.

  2. Update the virtio driver.

    You can manually update the virtio driver using one of the following methods, depending on your business scenario.

    Use a script (with Internet access)

    If your Windows instance can access the Internet, you can use this method to quickly update the virtio driver.

    1. Connect to the Windows instance.

      For more information, see Connect to a Windows instance using a password.

    2. In Windows PowerShell, run the following command to download the script:

      Invoke-WebRequest -Uri "https://windows-driver-cn-beijing.oss-cn-beijing.aliyuncs.com/virtio/InstallVirtIo.ps1" -OutFile "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"
    3. Execute the script.

      powershell -ExecutionPolicy Bypass -File "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"
    4. After the script is executed, restart the Windows instance for the driver update to take effect.

      For more information, see Restart an instance.

    Use an installation package to update (without Internet access)

    1. On your local host, download the virtio driver installation package that corresponds to the instance's operating system.

      For download URLs, see Install the virtio driver.

    2. Upload the installation package to the Windows instance.

      For more information, see Use Remote Desktop Connection or Windows App to transfer files to a Windows instance.

    3. On the Windows instance, install the new version of the virtio driver.

      GUI installation

      This section uses the installation of Alibaba Cloud virtio driver 58101 as an example.

      Important

      During the GUI-based installation of the virtio driver, the network adapter driver is updated. This causes a network interruption of about 10 seconds, which may affect your services. You should perform a risk assessment and make preparations in advance.

      1. In the directory where you uploaded the installation package, find and double-click AliyunVirtio_58101_WIN2016_x64.exe.

      2. Follow the on-screen instructions to complete the installation.

        image

      3. When the following page appears, restart the system for the configuration to take effect.

        image

        Note

        If the message For Windows 7/Windows Server 2008 R2 systems, you must install the SHA-2 patch! appears during the installation on a Windows 7 or Windows Server 2008 R2 system, the SHA-2 signing patch is missing. To prevent startup exceptions after the image is imported, we recommend that you install the signing patch beforehand.

      Command-line installation

      1. In Windows PowerShell, run the following command to switch to the directory where you uploaded the package, such as C:\test.

        cd C:\test
      2. Run the following command to install the virtio driver:

        ./AliyunVirtio_58101_WIN2016_x64.exe /SILENT /FORCE /NORESTART
        Note
        • /SILENT: Specifies silent mode.

        • /FORCE: Forces an overwrite installation if a virtio driver is already installed.

        • /NORESTART: Prevents the system from restarting automatically.

    Use Cloud Assistant to batch update on multiple instances

    To update the virtio drivers on multiple ECS instances, and the instances can access the Internet or virtual private clouds (VPCs), you can use Cloud Assistant to perform a batch update.

    Note

    To perform a batch update using Cloud Assistant, you must download the required installation package. The system attempts to download the package over the internal network within a VPC. If the package cannot be downloaded over the internal network, the system downloads it over the Internet.

    1. Log on to the ECS console.

    2. In the left-side navigation pane, choose Maintenance & Monitoring > Cloud Assistant.

    3. In the top navigation bar, select a region.

      The region you select must be the one where your ECS instances reside.

    4. Use Cloud Assistant to batch update the drivers.

      You can use Cloud Assistant to manually specify the command content to update the drivers, or you can use a public Cloud Assistant command to quickly update the drivers. This topic describes both methods.

      • (Recommended) Use a public command to batch update drivers

        1. On the ECS Cloud Assistant page, click the Common Commands tab. Then, search for and execute ACS-ECS-InstallVirtioDriver-windows.ps1.

        2. In the Run Command panel, in the Select Instance section, select the IDs of the instances for which you want to update the drivers.

      • Manually specify the command content to perform a batch update

        1. On the ECS Cloud Assistant page, click Create/Run Command.

        2. In the Create Command panel, complete the following configurations.

          • In the Command Information section, the required parameters are described in the following table. You can retain the default values for the other parameters. For more information about the parameters, see Create and run a command.

            Parameter

            Description

            Command Source

            Select Enter Command Content.

            Command Type

            Select PowerShell.

            Command content

            You can use one of the following methods to update the virtio driver:

            • Update the virtio driver using the InstallVirtIo.ps1 script.

              You need to download the InstallVirtIo.ps1 script on your local host, and then copy the full content of the script to the command content field in the Cloud Assistant console.

            • Update the virtio driver using the Cloud Assistant plugin.

              Copy the following command to the command content field in the Cloud Assistant console.

              acs-plugin-manager.exe --exec --plugin=UpdateVirtIo

            Execution Plan

            Select Immediate execution.

          • In the Select Instance section, select the IDs of the instances for which you want to update the drivers, and then click Run.

    5. Restart the Windows instances in a batch for the driver update to take effect.

      For more information, see Restart an instance.

  3. Check the installed virtio driver version in Device Manager.

    Note

    Most new Alibaba Cloud instance types, such as ecs.g8a, use disks that support the NVMe protocol. For these instances, the storage controller is an NVMe controller. Other instance types typically use traditional SCSI controllers that are simulated by VirtIO SCSI. When you update the virtio driver for an NVMe device, the storage driver (viostor) update may not take effect. This means the driver version number is not updated. In this case, we recommend that you check the driver version of the network adapter.

    • If the storage controller is displayed as Red Hat VirtlO SCSI controller, it is a virtio block device. For a virtio block device, you must determine the virtio driver version from the end of the Driver Version number for the Storage controller.

      image

    • If the storage controller name contains NVMe, such as Aibaba NVMe Elastic Block Storage Adapter as shown in the figure, it is an NVMe device. For an NVMe device, you must determine the virtio driver version from the end of the Driver Version number for the Network adapters.

      image

FAQ

  • Question 1: What should I do if I am not allowed to run a script in PowerShell?

    Solution: For security reasons, PowerShell prohibits running scripts in some versions of Windows. You can modify the PowerShell script execution policy to allow the script to run. Follow these steps:

    1. Allow PowerShell to run scripts.

      Set-ExecutionPolicy Unrestricted
    2. At the command prompt, enter A and press the Enter key to change the policy.

    3. Run the script again.

    4. To ensure system security, PowerShell displays a security warning at the command prompt. You must enter R and press the Enter key to run the script this one time.

    5. After the script runs successfully, we recommend that you run the following command to restore the default PowerShell configurations to ensure system security:

      Set-ExecutionPolicy Restricted
    6. At the command prompt, enter A and press the Enter key to change the policy.

  • Question 2: What should I do if I am prompted that no digital signature is available for the network adapter driver after the virtio driver is updated?

    Solution: You can manually download the latest Windows driver package to replace the problematic network adapter driver. Follow these steps:

    1. Connect to the destination Windows instance remotely.

      For more information, see Connect to a Windows instance by using Remote Desktop or Windows App.

    2. Download the latest Windows driver package.

      Note

      If you cannot download the driver package to your Windows instance, you can download it to your local host first. Then, use a remote desktop connection tool or FTP to upload the driver package to the Windows instance. For more information, see Upload files.

      After the download is complete, you will find a driver package named new_virtio.zip.

    3. Decompress the driver package and open the new_virtio folder.

      image

      Each folder contains drivers for different operating systems. Select the folder that corresponds to your operating system version:

      • win10: This subfolder contains an amd64 subfolder that stores driver installation files for Windows Server 2016, Windows Server 2019, and Windows 10.

      • Win8: This subfolder contains an amd64 subfolder that stores driver installation files for Windows Server 2012 R2 and Windows 8.1.

      • win7: This subfolder contains an amd64 subfolder that stores driver installation files for Windows Server 2008 R2 and Windows 7.

    4. Uninstall the existing network adapter driver.

      This section uses a 64-bit Windows Server 2019 instance as an example. The steps for other Windows versions are similar.

      1. Open the Windows Control Panel. In the Search Control Panel text box, search for and open Device Manager.设备管理器

      2. Under Network adapters, right-click Red Hat VirtIO Ethernet Adapter and select Uninstall device.

        卸载设备

      3. In the Uninstall device dialog box, select the Delete the driver software for this device check box, and then click Uninstall.

    5. Install the latest network adapter driver.

      1. In PowerShell, run the following command to open the corresponding driver folder.

        For example, if the operating system of the Windows instance is 64-bit Windows Server 2019 and the Windows driver is saved in the C:\test folder, the folder path to open is C:\test\new_virtio\win10\amd64.

        cd C:\test\new_virtio\win10\amd64
      2. Install the latest network adapter driver.

        pnputil -i -a netkvm.inf

        The following figure shows that the network adapter driver is successfully installed.安装网卡驱动

    6. Return to or reopen Device Manager. Then, right-click the hostname and select Scan for hardware changes.

      For example, if the hostname of the Windows instance is test, the operation is shown in the following figure:扫描检测

      After the scan is complete, you can view the new Network adapters in Device Manager.

    7. View the information about the new network adapter driver.

      1. Under Network Adapters, right-click Red Hat VirtIO Ethernet Adapter and select Properties.

      2. In the Red Hat VirtIO Ethernet Adapter Properties dialog box, click the Driver tab to view the driver information.

        image

    8. Restart the Windows instance for the new driver to take effect.

      For more information, see Restart an instance.