👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
故障现象
迁移失败时,迁移日志smc.log文件存在ERROR信息“checkVirtioInstall fail”或“Check initramfs failed”。
问题原因
SMC迁移工具Agent检查到您的迁移源Virtio驱动未安装或未正确配置,未处于正常运行状态。
解决方案
步骤一:确认内核是否支持Virtio驱动
执行如下命令,确认当前虚拟机操作系统是否支持Virtio驱动。
grep -i virtio /boot/config-$(uname -r)
回显示例:
结果说明:
请在回显信息中,根据CONFIG_VIRTIO_BLK 与CONFIG_VIRTIO_NET 参数值,进行后续操作。
结果 | 说明 |
参数值为m | 表示该操作系统内核支持Virtio驱动。 请执行步骤二,确认临时文件系统initramfs或initrd中是否包含Virtio驱动。 |
参数值为y | 表示该操作系统内核已经包含了Virtio驱动,您可以正常迁移至火山引擎。 |
没有这两个参数 | 表示该操作系统内核不支持Virtio驱动,暂不支持直接迁移至火山引擎。您需要为自行编译安装Virtio驱动。 |
步骤二:确认临时文件系统是否包含Virtio驱动
请根据虚拟机操作系统,执行相应命令。
CentOS 6/CentOS 7/CentOS 8/RedHat 6/RedHat 7 操作系统。
lsinitrd /boot/initramfs-$(uname -r).img | grep virtio
RedHat 5/CentOS 5 操作系统。
mkdir -p /tmp/initrd && cd /tmp/initrdzcat /boot/initrd-$(uname -r).img | cpio -idmvfind . -name "virtio*"
Debian/Ubuntu 操作系统。
lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio
回显示例:
结果说明:
若回显如上图所示,表示临时文件系统initramfs已经包含了virtio_blk驱动,及其依赖的virtio.ko、virtio_pci.ko和virtio_ring.ko,您可以正常迁移至火山引擎,操作详情可查看导入迁移源。
若回显为空,表示临时文件系统没有包含Virtio驱动,请执行步骤三修复临时文件系统。
步骤三:修复临时文件系统
CentOS 6/AlmaLinux 8/Fedora 33及以上版本
CentOS 6/AlmaLinux 8/Fedora 33及以上版本,且内核版本高于2.6.24的操作系统,请按如下步骤完成修复。
执行如下以下命令,打开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
Debian/Ubuntu
Debian/Ubuntu系列的操作系统,请按如下步骤完成修复。
执行如下命令,打开modules文件。
vim /etc/initramfs-tools/modules
按i进入编辑模式,然后添加如下内容。
virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio
修改完成后按Esc键,并输入:wq后按下回车键,保存并退出。
执行以下命令,重新生成initramfs。
update-initramfs -u
步骤四:验证修复结果
临时文件修复完成后,可再次执行步骤二命令,验证Virtio驱动以成功包含在临时文件系统initramfs或initrd中。