KVM迁移到Hyper-V

1.导出KVM下的虚拟磁盘文件#

1.1 停止所有虚拟机实例#

1.2 转换虚拟磁盘文件格式 raw -> vhdx#

参考底部资料

1
2
# 示例
qemu-img convert -f raw "vhost1.raw" -O vhdx -o subformat=dynamic "vhost1.vhdx"

2.导入虚拟磁盘文件至Hyper-V#

3.修复引导系统#

导入后启动失败,好像是因为设备环境变动导致的,需要修复引导系统
虚拟机实例内安装的操作系统为CentOS7

从iso光盘启动 -> Troubleshooting -> Rescue a CentOS system
输入 1 回车,原操作系统会被挂载到 /mnt/sysimage下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 从rescue系统切换根到原操作系统
chroot /mnt/sysimage
# 清空/boot目录
rm -rf /boot/* && rm -rf /boot/.vm*
# 挂载iso光盘
mount /dev/sr0 /mnt
# 安装内核
rpm -ivh /mnt/Packages/kernel-3-10.0-1127.e17.x86_64.rpm --force
# 安装grub2
grub2-install /dev/sda
# 生成引导配置
grub2-mkconfig -o /boot/grub2/grub.cfg
# 退出原系统至rescue系统
exit
# 重启
reboot

如果还是启动失败,试试从原系统的rescue模式进入尝试修复(因为是直接进入原系统,所以免去chroot命令和exit命令)

4.资料#

https://docs.microsoft.com/zh-cn/archive/blogs/virtual_pc_guy/handy-tool-for-converting-kvm-vmware-images-to-hyper-v
https://cloudbase.it/qemu-img-windows/