转换 VirtualBox 的 VDI 虚拟硬盘到 QEMU/KVM

最近尝试了 Linux 上的 QEMU/KVM 虚拟系统。与 VirtualBox 相比感觉有好有坏。也尝试过将之前的 VirtualBox 虚拟机磁盘转换成适合 QEMU/KVM 的格式来直接运行。麻烦的事情是为虚拟机中的 Windows 操作系统安装 VirtIO 磁盘控制器驱动。

openSUSE Tumbleweed 中提供 qemu-img 命令的软件包是 qemu-tools。默认情况下没有安装。

转成 raw 格式,

qemu-img convert -p -f vdi -O raw /data/"VirtualBox VMs"/Win7.vdi /data/kvm-images/Win7.img

转成 qcow2 格式(可以享受内部快照功能),

qemu-img convert -p -f vdi -O qcow2 /data/"VirtualBox VMs"/Win7.vdi /data/kvm-images/Win7.qcow2

如果希望使用 virtio 来驱动虚拟硬盘,刚开始的时候将硬盘配置为 virtio 接口的,安装驱动比较麻烦。增加一个光盘类型的存储介质并将 virtio-win 光盘挂载上。第一次启动会失败,然后出现蓝屏错误。重启,选择进入启动恢复模式。选择「加载驱动程序」,从 virtio 光盘来选择安装 VirtIO 的 SCSI 驱动 viostor(位于光盘中 \amd64\w7 目录中,名字为 viostor)。

现在可以看到提示界面中显示了 Windows 里面的磁盘了。记住盘符,如图所示是 E:。然后选择上面的高级恢复工具,再单击打开「命令行工具」。参考这里,使用类似于下面的指令来安装光盘中的所有驱动到 Windows 中,

dism /Image:E:\ /Add-Driver /Driver:D:\ /Recurse

这里 D: 是光驱所在盘符,也就是 virtio-win 光盘的挂载位置,如图所示。当然也可以不用 /Recurse 选项而是在前面明确指定要安装的驱动,如 /Driver:D:\amd64\w7\viostor

驱动安装完成后在命令提示符那里输入 exit 退出,然后重新正常启动 Windows 即可。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/convert-virtualbox-vdi-for-qemu-kvm/>。转载请保留此信息及相应链接。

1 条关于 “转换 VirtualBox 的 VDI 虚拟硬盘到 QEMU/KVM” 的评论

  1. 引用通告: 上手 Linux 原生的虚拟机工具 QEMU/KVM | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)