Dlaczego VirtualBox lub VMware nie może działać z włączoną funkcją Hyper-V w systemie Windows 10

57

Korzystam z 64-bitowego systemu Windows 10 Pro z włączoną technologią wirtualizacji Hyper-V i Intel VT-x. Kiedy próbuję uruchomić VirtualBox 64bit, Windows przechodzi w BSOD. Po uruchomieniu VMware pokazuje błąd.

Dlaczego VirtualBox i VMware nie mogą działać z włączoną funkcją Hyper-V? Proszę wyjaśnić wszystkie posiadane informacje, w tym sprzęt i oprogramowanie. Chcę poznać wewnętrzną przyczynę tego błędu.

Oto niektóre moje odkrycia. Większość witryn sugeruje dodanie pozycji rozruchu za pomocą BCDedit lub wyłączenie funkcji Hyper-V za pomocą BCDedit. np. Utworzenie pozycji rozruchowej „bez hiperwizora” , Uruchom Hyper-V i VirtualBox na tym samym komputerze . Ale mogę uruchomić QEMU z Hyper-V . Qemu nie wyświetla żadnych błędów w Hyper-V i działa płynnie.

Biswapriyo
źródło
2
Hyper-V nie obsługuje zagnieżdżonej wirtualizacji (z akceleracją sprzętową). Jednak w normalnych okolicznościach nie ulegnie awarii. VirtualBox narzekałby, że nie może obsługiwać gości x64 i to wszystko. Więc coś innego jest nie tak, jak źle działający sterownik urządzenia lub cokolwiek innego.
Daniel B
Rozumiem, naprawdę się psuje. Jednak znowu: to nie jest normalne. Katastrofa nigdy nie jest normalna. Wygląda na to, że jest to błąd w Hyper-V. Prawdopodobnie powinieneś skontaktować się z Microsoftem w tej sprawie.
Daniel B,
Warto zauważyć, że QEMU nie jest hiperwizorem. Hyper-V ma wsparcia zagnieżdżonego wirtualizacji.
Ramhound

Odpowiedzi:

66

VirtualBox i VMware Workstation (i VMware Player) to „hiperwizory poziomu 2”. Hyper-V i VMware ESXi to „hiperwizory poziomu 1”.

Główna różnica polega na tym, że hiperwizor poziomu 2 to aplikacja działająca w istniejącym systemie operacyjnym, a hiperwizor poziomu 1 to sam system operacyjny.

Oznacza to, że po włączeniu funkcji Hyper-V „host” systemu Windows 10 stał się maszyną wirtualną. Specjalna, ale mimo to maszyna wirtualna.

Twoje pytanie brzmiałoby bardziej trafnie: „Dlaczego VirtualBox i VMware Workstation nie działają na maszynie wirtualnej Hyper-V?” Można odpowiedzieć, ponieważ jako maszyna wirtualna instrukcja Intel VT-X nie jest już dostępna z maszyny wirtualnej, tylko host ma do niej dostęp.

QEMU działa, ponieważ nie wykonuje wirtualizacji, lecz emulację, co jest zupełnie inne i wyjaśnia, dlaczego QEMU jest tak boleśnie powolny. Wirtualizacja to proces polegający na uruchomieniu całkowicie izolowanej maszyny na innej, ale z pomocą procesora. Wymaga to, aby maszyna wirtualna i host były kompatybilne z instrukcjami.

Emulacja to proces uruchamiania dowolnej maszyny w działającym systemie operacyjnym, nie ma ograniczeń platformy, i dlatego QEMU może uruchomić maszynę ARM na platformie amd64.

Uwaga: QEMU ma 2 tryby pracy:

  • może działać jako emulator, jest to ten tryb wyjaśniony powyżej
  • może działać jako oprogramowanie do wirtualizacji za pomocą KVM, jeśli architektura gościa jest kompatybilna z hostem i jeśli oczywiście jest dostępna instrukcja VT.
Veovis
źródło
1
Wirtualizacja tworzy cały „fałszywy” system, z wyjątkiem procesora, w którym hiperwizor ogranicza jedynie czas procesora, z którego może skorzystać vm. Możesz więc zwirtualizować uzbrojenie tylko na hoście uzbrojenia, x86 na hoście x86 / amd64, amd64 na hoście amd64 itp. Emulator ponownie skompiluje każdą instrukcję dla pliku binarnego skompilowanego dla konkretnej platformy do uruchomienia na innej platformie. QEMU należy do tej samej rodziny co na przykład emulatory konsoli (psx, delfin, virtualboy, project64, MAME ...)
Veovis
Wirtualizacja (tak, nie emulacja) była dostępna na długo przed udostępnieniem wirtualizacji wspomaganej sprzętowo. Można go zagnieżdżać według potrzeb.
Daniel B
2
Dlaczego VirtualBox nie może skorzystać z „Nested VT-x / AMD-V”? Czy to ograniczenie sprzętu? Hyper-V?
user643011,
21

Począwszy od kompilacji Windows Redstone 4, QEMU będzie mógł działać pod Hyper-V, wykorzystując interfejs API Windows Hypervisor Platform .

Akcelerator platformy Windows Hypervisor Platform (WHPX) jest integrowany z łatkami QEMU przesyłanymi do scalenia .

Interfejs API Windows Hypervisor Platform zostanie dołączony do kompilacji Redstone 4

Eksperymentalna obsługa WHPX jest zawarta w QEMU 2.12

Aktualizacja: Virtualbox 6.0 dodał obsługę listy zmian WHPX Virtualbox 6.0 .

Aktualizacja 2: VMWare doda obsługę WHPX w nadchodzącej wersji VMWare Workstation i fusion. VMware Workstation i Hyper-V - Współpraca

nkef
źródło
3
Teoretycznie ten interfejs API może być używany także przez VMWare i VirtualBox.
Ramhound
@Ramhound Czy można tego dokonać za pomocą VirtualBox lub VMware? Ten artykuł wspomina tylko qemu.
Biswapriyo
@Biswapriyo Ustaliłem, że VMWare i VirtualBox są możliwe bezpośrednio z dokumentacji. Jednak VMWare i VirtualBox musiałyby wprowadzić niezbędne zmiany w swojej aplikacji
Ramhound
Czy możesz wyjaśnić, czym to się różni od Nested VT-x / AMD-V?
user643011,
Obsługa WHPX w Virtualbox 6.0 jest bardzo alfa. Teraz ledwo działa.
user643011