阿里云virtio驱动作为虚拟化技术中的高性能I/O驱动,是镜像发布至阿里云平台的必备组件。您在制作Windows镜像过程中务必确保系统已经安装virtio驱动,否则阿里云的ECS实例可能无法识别virtio虚拟化设备导致系统无法启动。 本文介绍如何在制作镜像的虚拟机中安装阿里云virtio驱动。
阿里云virtio驱动介绍
阿里云virtio驱动是基于社区virtio驱动开发的,以便更好地适配阿里云平台。当前阿里云的公共镜像都预装了virtio驱动,但是其他的Windows镜像通常不包含阿里云virtio驱动,因此在制作Windows自定义镜像过程中需要手动安装virtio驱动。如果您使用社区virtio驱动,可能导致安装后无法使用。建议您使用阿里云virtio驱动。
阿里云virtio驱动包含如下内容:
| 包含的驱动 | 功能介绍 | 
| netkvm | 网卡驱动 | 
| viostor | 存储驱动 | 
| vioser | 串口驱动 | 
| balloon | 优化和管理虚拟机的内存使用,以确保虚拟机在不影响性能的情况下,可以动态地调整内存分配 说明  该驱动在阿里云上暂未启用。 | 
| pvpanic | 为虚拟机器提供一种机制,以便在出现严重错误或崩溃时能够将状态报告给宿主机 | 
| fwcfg | 在虚拟化环境下将宿主机的配置信息(如元数据、用户数据或设备参数)传递给Windows虚拟机 说明  仅Windows 10/Windows Server 2016及以上操作系统包含该驱动。 | 
阿里云virtio驱动版本发布记录:
| 驱动版本 | 更新内容 | 发布日期 | 支持的操作系统 | 对应安装包 | 
| 58110 | 新功能: 
 修复缺陷: 
 | 2024-01 | Windows 10/Windows Server 2016及以上64位 | |
| 58101 | 新功能: 
 修复缺陷: 
 | 2022-09 | Windows 10/Windows Server 2016及以上64位 | |
| Windows 8.1/Windows Server 2012 R2 64位 | ||||
| Windows 7/Windows Server 2008 R2 64位 | ||||
| 58017 | 基于社区2021年1月份的版本 | 2021-04 | Windows 10/Windows Server 2016及以上64位 | |
| Windows 8.1/Windows Server 2012 R2 64位 | ||||
| Windows 8/Windows Server 2012 64位 | ||||
| Windows 7/Windows Server 2008 R2 64位 | 
操作步骤
virtio驱动会有版本更新,本文以在Windows Server 2016 64位操作系统上安装阿里云virtio驱动58101版本为例。
- 在制作镜像的虚拟机中,根据实际的操作系统下载对应版本的virtio驱动安装包,并进行解压。详细请参见阿里云virtio驱动版本下载地址。 
- 安装virtio驱动。 - 图形化安装重要- 图形化安装virtio驱动过程中会更新网卡驱动,因此会有约10秒左右的网络中断,可能对您的业务造成影响,请您提前做好风险评估和准备工作。 - 在下载路径中找到并双击 - AliyunVirtio_58101_WIN2016_x64.exe。
- 按照界面提示完成安装。  
- 直至出现如下界面,重启系统使配置生效。  说明 说明- 如果Windows 7/Windows Server 2008 R2系统在安装过程中出现 - 对于Windows 7/Windows Server 2008 R2系统,您必须安装SHA-2补丁!的提示,表示系统中缺少SHA-2签名补丁,为避免镜像导入后启动异常,建议您提前安装签名补丁。更多信息,请参见Windows Server 2008 R2因驱动签名无法验证导致启动失败。
 - 命令行安装- 在Windows PowerShell中,运行以下命令,切换到软件包下载目录,例如 - C:\test。- cd C:\test
- 运行以下命令,安装virtio驱动。 - ./AliyunVirtio_58101_WIN2016_x64.exe /SILENT /FORCE /NORESTART说明- /SILENT:表示静默模式。
- /FORCE:表示强制覆盖(如果已经安装过virtio驱动)安装。
- /NORESTART:表示不自动重启。
 
 
- 验证virtio驱动是否安装成功。 - 在Windows PowerShell中,运行以下命令,查询virtio驱动版本号。 - (Get-Item C:\Windows\System32\drivers\viostor.sys).VersionInfo.ProductVersion- 返回类似如下图所示的驱动版本号,表示virtio驱动已安装。  
- 运行以下命令,获取 - viostor服务相关的注册表配置信息。- Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\viostor"说明- viostor服务通常与虚拟化环境中的virtio驱动关联。如果命令能够成功返回信息,说明- viostor服务条目存在于注册表中,表示已安装过virtio驱动。- 返回类似如下信息,表示virtio驱动已安装。  
 - 经过以上操作验证,表示virtio驱动已成功安装,镜像可以正常导入阿里云平台。 
相关文档
- Windows系统安装virtio驱动后,您可以获取Windows镜像文件,并将镜像文件导入阿里云平台。 
- Windows实例某些操作依赖于镜像的virtio驱动版本,例如在线扩容云盘时virtio驱动版本需大于 - 58011,或查询云盘序列号时virtio驱动版本需大于- 58017,如果当前virtio驱动不满足要求,均需要先更新virtio驱动版本才能进行相关操作。更多信息,请参见更新Windows实例的virtio驱动。
- 如果制作镜像时未安装virtio驱动,通过该镜像创建的ECS实例会启动失败,此时您可以通过Windows实例离线安装virtio驱动。