当我尝试使用以下命令启动虚拟机时:
qemu-system-x86_64 -m 1024 -cdrom /host/iso/ubuntu-13.10-desktop-amd64.iso -name mac -hda ~/ubuntu
安装开始后(选择语言之前)屏幕变黑。我尝试nomodeset
在“其他选项”中进行设置,但问题没有解决。
但是,使用相同的 ISO,我可以使用虚拟机管理器启动虚拟机。我需要为qemu-system-x86_64
我的一个项目启动虚拟机。
请告诉我如何解决这个问题。
答案1
默认情况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.
kvm
(您可能会看到人们推荐软件包中的程序qemu-kvm
。kvm
只是一个包装脚本exec qemu-system-x86_64 -enable-kvm "$@"
)
KVM 使用硬件虚拟化而非模拟,因此速度更快。它需要支持硬件虚拟化扩展(Intel 的 VT-x 或 AMD 的 AMD-V)的 CPU,大多数现代 PC 系统都具备这种扩展。
使用虚拟化时,CPU 实际上是在执行来自客户操作系统的原始可执行二进制代码。虚拟化速度很快,但有一个限制,即主机操作系统和客户操作系统必须二进制兼容。使用仿真时,客户操作系统的二进制代码被重写以在主机 CPU 上运行。它很慢,但有一个优点,即您可以运行为不同 CPU 架构编译的客户操作系统(例如Debian armel 的 QEMU 映像解释如何在 PC 上运行 Debian ARM)。
虚拟化的另一个流行选择是虚拟盒。