Почему при загрузке виртуальной машины с использованием qemu появляется черный экран?

9

Когда я пытаюсь загрузить виртуальную машину, используя:

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

Я вижу черный экран сразу после начала установки (перед тем, как выбрать язык). Я попытался установить nomodesetв «Другие параметры», но это не решило проблему.

Однако, используя тот же ISO, я могу загрузить виртуальную машину с помощью Virtual Machine Manager. Мне нужно загрузить виртуальную машину qemu-system-x86_64для одного из моих проектов.

Пожалуйста, дайте мне знать, как решить эту проблему.

Сагар Патни
источник
Не ответ на вопрос, но если вы хотите поиграть с разрешением монитора, поиграйте с флагом -vga [std|vmware|cirrus|qxl]. Обратитесь man qemu-kvmк более подробной информации.
Нехал Дж Вани
Здесь я подробно описываю лучшие настройки QEMU KVM, которые я до сих пор достиг для Ubuntu: askubuntu.com/questions/884534/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
Пришел сюда, потому что я получил черный экран в Win10 VM после изменения памяти VM до 2536MB. Изменение снова на 2048MB решено для меня. (Я тогда уладил с 3072MB).
23

Ответы:

9

По умолчанию qemu-system-x86_64делает эмуляцию , а не виртуализации. Эмуляция медленная и интенсивно загружает процессор - вы можете увидеть это при запуске top, который покажет ваш процессор на уровне почти 100%. Я только что загрузил Xubuntu 14.04, используя qemu-system-x86_64в своей системе, и потребовалось 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 использует аппаратную виртуализацию, а не симуляцию, и, следовательно, намного быстрее. Для этого требуется процессор с поддержкой аппаратных расширений виртуализации (VT-x для Intel или AMD-V для AMD), которые есть в большинстве современных систем ПК.

При виртуализации ЦП фактически выполняет необработанный исполняемый двоичный код из гостевой ОС. Виртуализация быстрая, но есть ограничение, что хост-ОС и гостевая ОС должны быть двоично-совместимыми. При эмуляции бинарный код гостевой ОС переписывается для запуска на хост-процессоре. Это медленно, но имеет преимущество в том, что вы можете запускать гостевую ОС, скомпилированную для другой архитектуры ЦП (например, образ QEMU для Debian armel объясняет, как запускать Debian ARM на ПК).

Другой популярный вариант для виртуализации - VirtualBox .

Bain
источник
KVM это только обертка qemu-system-x86_64. Говоря, что qemu-system-x86_64это только эмуляция, вы хотите сказать, что kvm - это оболочка виртуализации поверх эмуляции, предоставляемой qemu-system-x86_64?
Jobin
@ Jobin спасибо за указание на это, ответ скорректирован соответственно.
Bain