启用Hyper-V后,以前VirtualBox里的虚拟机不能再运行了,于是想到是否可以进行虚拟机格式的转换。上网查了一下,VirtualBox自带的VBoxManage.exe工具就可以做这件事情。研究了一下,运行下面的命令转换成功。我的VirtualBox版本是5.2.10.
c:\Program Files\Oracle\VirtualBox>VBoxManage clonemedium "c:\Users\username\VirtualBox VMs\Linuxmint\Linuxmint.vdi" "c:\Users\Public\Documents\Hyper-V\Virtual hard disks\LinuxMint-18.3\LinuxMint.vhd" --format VHD
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VHD'. UUID: 42fb07bf-c755-436a-bd4b-3112e4746615
上面的命令格式为:VBoxManage clonemedium
virtualbox-medium.vdi hyper-V-medium.vhd --format VHD
virtualbox-medium.vdi 为VirtualBox虚拟硬盘文件(含路径)
hyper-V-medium.vhd 为Hyper-V虚拟硬盘文件(含路径)
由于路径里有空格,因此要带上引号。
Windows10 Hyper-V支持的虚拟机文件格式有两代,第一代的文件后缀为.vhd;第二代的文件后缀为.vhdx。VBoxManage转换应该是仅支持第一代。
一开始生成的Hyper-V虚拟硬盘文件为.vhdx,后面在Hyper-V中无论选择第一代,还是第二代,导入都会失败。直接改成.vhd再按照第一代导入就OK了。
接下来就可以在Hyper-V中新建虚拟机,在如下步骤选择使用现有虚拟硬盘,并指定刚刚生成的.vhd文件。继续下一步就可以了。
转换导入成功,接下来,虚拟机就可以运行了。