为避免部分服务器、虚拟机或者云主机的操作系统在导入自定义镜像后,创建的ECS实例无法启动,您需要在导入镜像前检查是否需要在源服务器中安装virtio驱动。
操作流程
Linux系统安装virtio驱动的操作流程如下图所示。

步骤一:确认服务器内核是否支持virtio驱动
步骤二:修复临时文件系统
通过检查,发现源服务器内核支持virtio驱动,但是临时文件系统initramfs或者initrd中没有包含virtio驱动时,需要修复临时文件系统。本章节以CentOS、Debian、Ubuntu等操作系统为例。
- CentOS 6/Anolis OS 7/AlmaLinux 8/AlmaLinux 8/Fedora 33及以上版本,且内核版本高于2.6.24(通过
uname -r
查询)- 运行以下命令,打开dracut.conf文件。
vim /etc/dracut.conf
- 按i进入编辑模式,然后添加如下内容。
add_drivers+="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。
- 执行以下命令,重新生成initrd。
dracut -f
说明 RedHat和CentOS 5系统的版本建议升级到5.11版本,再安装virtio驱动。 - 运行以下命令,打开dracut.conf文件。
- Debian/Ubuntu系列
- 运行以下命令,打开modules文件。
vim /etc/initramfs-tools/modules
- 按i进入编辑模式,然后添加如下内容。
virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio
修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。
- 执行以下命令,重新生成initrd。
update-initramfs -u
- 运行以下命令,打开modules文件。
- SUSE/OpenSUSE系列
- 版本低于SUSE 12 SP1或低于OpenSUSE 13
- 运行以下命令,打开kernel文件。
vim /etc/sysconfig/kernel
- 按i进入编辑模式,然后添加如下内容。
INITRD_MODULES="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。
- 执行以下命令,重新生成initrd。
update-initramfs -u
- 运行以下命令,打开kernel文件。
- 版本为SUSE 12 SP1、OpenSUSE 13或更高版本
- 运行以下命令,打开dracut.conf文件。
vim /etc/dracut.conf
- 按i进入编辑模式,然后添加如下内容。
add_drivers+="virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。
- 执行以下命令,重新生成initrd。
dracut -f
- 运行以下命令,打开dracut.conf文件。
- 版本低于SUSE 12 SP1或低于OpenSUSE 13
临时文件修复完成后,操作结束,您可以根据需要将镜像文件导入到阿里云。
步骤三:下载内核安装包
说明 本章节以内核版本linux-4.4.24.tar.gz为例,您需要将内核版本修改为实际操作系统内核对应的版本。
步骤四:编译内核
后续步骤
检查安装virtio驱动后,您可以执行以下操作: