Dlaczego pojawia się czarny ekran podczas uruchamiania VM za pomocą qemu?

9

Kiedy próbuję uruchomić maszynę wirtualną za pomocą:

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

Wyświetlam czarny ekran zaraz po rozpoczęciu instalacji (zanim wybiorę język). Próbowałem ustawić nomodesetopcję „Inne opcje”, ale to nie rozwiązało problemu.

Jednak używając tego samego ISO, mogę uruchomić maszynę wirtualną za pomocą Virtual Machine Manager. Muszę uruchomić maszynę wirtualną za pomocą qemu-system-x86_64jednego z moich projektów.

Daj mi znać, jak to rozwiązać.

Sagar Patni
źródło
Nie jest to odpowiedź na pytanie, ale jeśli masz ochotę majstrować przy rozdzielczości monitora, pobaw się flagą -vga [std|vmware|cirrus|qxl]. Zobacz man qemu-kvmwięcej szczegółów.
Nehal J Wani
Tutaj szczegółowo opisuję najlepszą konfigurację KVM QEMU, jaką do tej pory osiągnąłem dla Ubuntu: askubuntu.com/questions/884534/...
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
Przybyłem tutaj, ponieważ wyświetlałem czarny ekran w Win10 VM po zmianie pamięci VM na 2536 MB. Ponowna zmiana na 2048 MB rozwiązana dla mnie. (Następnie uregulowałem z 3072 MB).
Marc.2377

Odpowiedzi:

9

Domyślnie qemu-system-x86_64robi emulacji , nie wirtualizacji. Emulacja jest powolna i intensywna dla procesora - możesz to zobaczyć po uruchomieniu top, co pokaże twój procesor na poziomie prawie 100%. Właśnie uruchomiłem Xubuntu 14.04 za pomocą qemu-system-x86_64mojego systemu, a uruchomienie systemu na pulpicie zajęło 10 minut. Ubuntu zwykle ukrywa informacje o rozruchu, dlatego widzisz czarny ekran (lub inne artefakty graficzne spowodowane zmianą rozdzielczości BIOS-u). Jeśli usuniesz splash quieti dodasz debugparametry jądra, zobaczysz, co robi w tym czasie.

Prawdopodobnie chcesz uruchomić, qemu-system-x86_64 -enable-kvmaby włączyć obsługę wirtualizacji sprzętu.

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

Od man qemu-system-x86_64:

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

(Może się zdarzyć, że ludzie polecający program kvmz pakietu qemu-kvm. kvmTo tylko skrypt, który robi exec qemu-system-x86_64 -enable-kvm "$@")

KVM wykorzystuje wirtualizację sprzętową zamiast symulacji, dzięki czemu działa znacznie szybciej. Wymaga procesora obsługującego sprzętowe rozszerzenia wirtualizacji (VT-x dla Intela lub AMD-V dla AMD), które ma większość nowoczesnych systemów komputerowych.

Dzięki wirtualizacji procesor faktycznie wykonuje nieprzetworzony wykonywalny kod binarny z systemu-gościa. Wirtualizacja jest szybka, ale ma ograniczenia polegające na tym, że system operacyjny hosta i system gościa muszą być kompatybilne binarnie. W przypadku emulacji kod binarny systemu-gościa jest przepisywany w celu uruchomienia na procesorze hosta. Jest powolny, ale ma tę zaletę, że można uruchomić system gościa skompilowany dla innej architektury procesora (np. Obraz QEMU dla Armel Debiana wyjaśnia, jak uruchomić Debian ARM na komputerze PC).

Inną popularną opcją wirtualizacji jest VirtualBox .

bain
źródło
kvm to tylko opakowanie qemu-system-x86_64. Mówiąc, że qemu-system-x86_64jest tylko emulacja, czy masz na myśli, że kvm jest opakowaniem wirtualizacji w stosunku do emulacji zapewnianej przez qemu-system-x86_64?
Jobin
@Jobin dziękuję za zwrócenie uwagi, odpowiedź odpowiednio dostosowana.
bain