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

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

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 для одного из моих проектов.

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

8
задан 12 May 2014 в 09:14

1 ответ

По умолчанию 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 .

0
ответ дан 12 May 2014 в 09:14

Другие вопросы по тегам:

Похожие вопросы: