¿Por qué aparece una pantalla en negro cuando inicio VM usando qemu?

9

Cuando intento arrancar una máquina virtual usando:

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

Aparece una pantalla en negro justo después de que comience la instalación (antes de elegir el Idioma). Intenté configurar nomodeset"Otras opciones" pero esto no resolvió el problema.

Sin embargo, usando el mismo ISO, puedo arrancar la VM usando Virtual Machine Manager. Necesito arrancar la VM usando qemu-system-x86_64uno de mis proyectos.

Por favor, hágame saber cómo resolver esto.

Sagar Patni
fuente
No es una respuesta a la pregunta, pero si tiene ganas de jugar con la resolución del monitor, juegue con la bandera -vga [std|vmware|cirrus|qxl]. Consulte man qemu-kvmpara más detalles.
Nehal J Wani
Aquí describo con gran detalle la mejor configuración KVM de QEMU que he alcanzado hasta ahora para Ubuntu: askubuntu.com/questions/884534/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
Vine aquí porque estaba recibiendo una pantalla negra en Win10 VM después de cambiar la memoria de VM a 2536MB. Cambiarlo nuevamente a 2048 MB me resolvió. (Luego me decidí con 3072MB).
Marc.2377

Respuestas:

9

Por defecto qemu-system-x86_64, emula , no virtualiza. La emulación es lenta e intensiva en la CPU: puede ver eso al ejecutar top, lo que mostrará su CPU en cerca del 100%. Acabo de arrancar Xubuntu 14.04 usando qemu-system-x86_64en mi sistema, y ​​tardé 10 minutos en arrancar desde el escritorio. Ubuntu normalmente oculta la información de arranque, por lo que está viendo una pantalla en negro (u otros artefactos gráficos causados ​​por la resolución cambiante del BIOS). Si elimina splash quiety agrega debuga los parámetros del núcleo, verá lo que está haciendo durante este tiempo.

Lo que probablemente quiera hacer es ejecutar qemu-system-x86_64 -enable-kvmpara habilitar el soporte para la virtualización de hardware.

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

De man qemu-system-x86_64:

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

(Es posible que vea personas recomendando el programa kvmdel paquete qemu-kvm. kvmEs solo un script de envoltura que sí lo hace exec qemu-system-x86_64 -enable-kvm "$@")

KVM utiliza virtualización de hardware en lugar de simulación, y por lo tanto es mucho más rápido. Requiere una CPU que admita extensiones de virtualización de hardware (VT-x para Intel o AMD-V para AMD), que tienen la mayoría de los sistemas de PC modernos.

Con la virtualización, la CPU está ejecutando el código binario ejecutable sin procesar del sistema operativo invitado. La virtualización es rápida, pero tiene la limitación de que el sistema operativo host y el sistema operativo invitado deben ser compatibles con los binarios. Con la emulación, el código binario del sistema operativo invitado se reescribe para ejecutarse en la CPU del host. Es lento, pero tiene la ventaja de que puede ejecutar un SO huésped compilado para una arquitectura de CPU diferente (por ejemplo, una imagen QEMU para Debian Armel explica cómo ejecutar Debian ARM en una PC).

Otra opción popular para la virtualización es VirtualBox .

baño
fuente
kvm es solo una envoltura qemu-system-x86_64. Al decir que qemu-system-x86_64es solo emulación, ¿quiere decir que kvm es un contenedor de virtualización sobre la emulación proporcionada por qemu-system-x86_64?
jobin
@Jobin, gracias por señalarlo, la respuesta se ajustó en consecuencia.
bain