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

Sag*_*tni 10 virtualization qemu 13.10

当我尝试使用以下方法启动虚拟机时:

qemu-system-x86_64 -m 1024 -cdrom /host/iso/ubuntu-13.10-desktop-amd64.iso -name mac -hda ~/ubuntu
Run Code Online (Sandbox Code Playgroud)

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

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

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

bai*_*ain 11

默认情况下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
Run Code Online (Sandbox Code Playgroud)

来自man qemu-system-x86_64

-enable-kvm
       Enable KVM full virtualization support. This option is only available
       if KVM support is enabled when compiling.
Run Code Online (Sandbox Code Playgroud)

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

KVM 使用硬件虚拟化而不是模拟,因此速度要快得多。它需要一个支持硬件虚拟化扩展(英特尔的 VT-x 或 AMD 的 AMD-V)的 CPU,大多数现代 PC 系统都有。

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

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