使用qemu启动VM时为什么会出现黑屏?

当我尝试使用以下命令启动虚拟机时:

qemu-system-x86_64 -m 1024 -cdrom /host/iso/ubuntu-13.10-desktop-amd64.iso -name mac -hda ~/ubuntu 

安装开始后(在我选择语言之前)我会看到黑屏。 我尝试在“其他选项”中设置nomodeset ,但这并没有解决问题。

但是,使用相同的ISO,我可以使用Virtual Machine Manager引导VM。 我需要使用qemu-system-x86_64为我的一个项目启动VM。

请让我知道如何解决这个问题。

默认情况下, qemu-system-x86_64会进行仿真 ,而不是虚拟化。 仿真速度慢且占用大量CPU资源 – 您可以通过运行top来查看,这将显示您的CPU接近100%。 我刚刚在我的系统上使用qemu-system-x86_64启动Xubuntu 14.04,并且需要10分钟才能启动到桌面。 Ubuntu通常隐藏启动信息,这就是为什么你会看到黑屏(或BIOS改变分辨率引起的一些其他图形工件)的原因。 如果删除splash quiet并将debug添加到内核参数,您将看到它在此期间正在执行的操作。

您可能想要做的是运行qemu-system-x86_64 -enable-kvm以启用对硬件虚拟化的支持。

 qemu-system-x86_64 -enable-kvm -m 1024 -cdrom /host/iso/ubuntu-13.10-desktop-amd64.iso -name mac -hda ~/ubuntu 

来自man qemu-system-x86_64

 -enable-kvm Enable KVM full virtualization support. This option is only available if KVM support is enabled when compiling. 

(你可能会看到人们从包qemu-kvm推荐程序kvm只是一个包装脚本,它exec qemu-system-x86_64 -enable-kvm "$@"

KVM使用硬件虚拟化而不是模拟,因此速度更快。 它需要一个支持硬件虚拟化扩展的CPU(适用于Intel的VT-x,或适用于AMD的AMD-V),这是大多数现代PC系统所具有的。

通过虚拟化,CPU实际上是从客户操作系统执行原始可执行二进制代码。 虚拟化速度很快,但主机操作系统和客户操作系统必须是二进制兼容的限制。 通过仿真,客户操作系统的二进制代码被重写为在主机CPU上运行。 它很慢,但是有一个优点,你可以运行为不同的CPU架构编译的客户操作系统(例如,Debian armel的QEMU映像解释了如何在PC上运行Debian ARM)。

虚拟化的另一个流行选择是VirtualBox 。