Toepassingen voor virtualisatie werken niet: Wat doe je?

Wanneer u een virtualisatieapplicatie installeert op een Windows-machine waarop Hyper-V of gerelateerde services zijn geïnstalleerd, kunnen er vaak fouten optreden. Fouten die zich voordoen bij het uitvoeren van VM’s op niet-Hyper-V-virtualisatieapplicaties veroorzaken aanzienlijke problemen. In deze blogpost wordt uitgelegd wat deze fouten veroorzaakt, hoe u ze kunt oplossen en hoe u andere virtualisatieapplicaties kunt uitvoeren op een computer met Hyper-V.

Achtergrond en Werkingsprincipe

Na het installeren van VMware Workstation, VMware Player of Oracle VirtualBox op een Windows-machine, kunt u fouten krijgen bij het starten van een VM in deze virtualisatieapplicaties. De fouten doen zich voor, zelfs als er op dat moment geen Hyper-V-VM’s worden uitgevoerd. U kunt VMware Workstation en VirtualBox installeren en VMware-VM’s en VirtualBox-VM’s op dezelfde computer uitvoeren, maar niet tegelijkertijd. Wat veroorzaakt dit probleem met Hyper-V? Laten we eens nader kijken.

VMware Workstation, VMware Player en VirtualBox zijn type 2 hypervisors, terwijl Hyper-V een type 1 hypervisor is. Een type 2 hypervisor is geïnstalleerd op het besturingssysteem dat op de hardware draait. Een type 1 hypervisor is geïnstalleerd bovenop de hardware. Alle hypervisors vereisen processorvirtualisatie-extensies, dit zijn instructiesets voor hardwarevirtualisatie – Intel VT-x of AMD-V. Hyper-V neemt de controle over de virtualisatie-extensies wanneer Windows opstart. Deze virtualisatie-extensies zijn niet beschikbaar voor VMware Workstation en VirtualBox wanneer Windows wordt geladen. Slechts één softwarecomponent kan Intel VT-x of AMD-V tegelijkertijd gebruiken.

Deze onverenigbaarheid wordt veroorzaakt door Hyper-V omdat virtualisatie-extensies niet worden blootgesteld aan type 2 hypervisors geïnstalleerd op een Windows-machine waar de Hyper-V rol is ingeschakeld.

VMware Workstation fouten:

VMware Workstation en Hyper-V zijn niet compatibel. Verwijder de Hyper-V rol van het systeem voordat u VMware Workstation uitvoert.

VMware Workstation en Device/Credential Guard zijn niet compatibel. VMware Workstation kan worden uitgevoerd nadat Device/Credential Guard is uitgeschakeld.

VirtualBox fouten:

BSOD, zoals BSOD met SYSTEM_SERVICE_EXCEPTION

VT-x is niet beschikbaar (VER_VMX_NO_VMX). E_FAIL (0x80004005).

A VirtualBox VM works too slowly and uses the paravirtualisation (emulation) mode.

De meest interessante situatie is wanneer een gebruiker Hyper-V niet installeert en toch een van de eerder genoemde fouten tegenkomt bij het gebruik van VMware Workstation of VirtualBox. De fout treedt op wanneer automatische Windows-updates zijn ingeschakeld. Met de updates (Windows 10 v1607 en de bijbehorende Windows Server-versies vanaf Windows Server 2016) worden automatisch en zonder toestemming van de Windows-gebruiker enkele nieuwe Hyper-V-gerelateerde functies geïnstalleerd en ingeschakeld. Deze functies zijn Device Guard en Credential Guard. Windows-updates kennen kwetsbaarheden maar kunnen problemen toevoegen en een werkende configuratie vernietigen. Daarom houden veel gebruikers niet van automatische updates.

Device Guard is een groep beveiligingsfuncties in Windows. Het idee van het implementeren van deze functie is om de uitvoering van schadelijke code te versterken. Device Guard is beschikbaar in Windows 10, Windows Server 2019 en Windows Server 2019. De belangrijkste vereisten zijn: UEFI die in native modus draait en Secure Boot ingeschakeld.

Credential Guard is een functie om de impact van aanvallen te minimaliseren als kwaadaardige code al actief is door systeem- en gebruikersgeheimen te isoleren om compromittering moeilijker te maken.

Virtual Secure Mode (VSM) is een functie om gebruik te maken van processorvirtualisatie-extensies die gegevens beveiligen in een geïsoleerd geheugengebied. HVCI staat voor Hypervisor-beschermde code-integriteit. LSA staat voor Local Security Authority.

Virtualization Based Security (VBS) is een klasse van technologieën die virtualisatie-extensies gebruiken, waaronder VSM, om beveiliging te bieden in Windows. De Hyper-V rol is vereist om deze functies te laten werken (Hyper-V beheertools zijn niet nodig).

De hypervisor (Hyper-V) laadt eerst, en daarna het besturingssysteem (Windows). Hyper-V biedt een abstractielaag tussen hardware en het besturingssysteem. Een VSM maakt het taggen van specifieke kritieke processen en het geheugen dat door hen wordt gebruikt mogelijk, omdat ze behoren tot een apart onafhankelijk besturingssysteem dat wordt gecontroleerd door Hyper-V. Het principe is vergelijkbaar met de isolatie van twee VM’s die op een Hyper-V-host worden uitgevoerd, waarbij elke VM alleen de aan haar toegewezen hardwarebronnen kan gebruiken.

Opmerking: Als u een type 1-hypervisor van VMware nodig heeft, gebruikt u VMware ESXi en de VMware vSphere-omgeving. Meer informatie vindt u in deze blogposts: Hyper-V vs VMware, VMware Workstation vs VMware Player en Hoe installeer je ESXi op Hyper-V.

Laten we eens kijken hoe we het onverenigbaarheidsprobleem van Hyper-V en andere virtuele applicaties in detail kunnen oplossen.

Methode 1: Uninstall Hyper-V in de GUI

Controleer systeeminformatie over de Windows-configuratie door de volgende opdracht uit te voeren in CMD:

msinfo32.exe

A System Information window opens. On the following screenshot, you see that Hyper-V is enabled (a hypervisor has been detected), and Device Guard Virtualization-based security is running. Now you can remove these features.

U moet weten dat de volgende Hyper-V-gerelateerde functies niet beschikbaar zijn nadat u Hyper-V verwijdert:

  • Hyper-V
  • Credential Guard en Device Guard
  • Virtual Machine Platform
  • Windows Sandbox
  • WSL2.

Verwijder de Hyper-V-functie in de grafische gebruikersinterface (GUI) door de Control Panel, Add Roles, and Features wizard te gebruiken.

In Windows 10, open Control Panel, klik Programs and Features, dan klik Turn Windows features on or off.

Het venster Windows-functies wordt geopend.

Schakel het selectievakje Hyper-V uit en klik op OK.

Om Hyper-V volledig te verwijderen, start de computer opnieuw op.

De stappen voor het verwijderen van Hyper-V op Windows 10 en Windows Server 2016 zijn vergelijkbaar.

In Windows Server 2016, open Server Manager en klik op Beheren > Rollen en functies verwijderen. In de Wizard Rollen en functies verwijderen, ga naar de Serverrollen stap en schakel Hyper-V uit. Klik op Volgende bij elke stap om door te gaan. Een herstart is vereist om de Hyper-V-rol volledig te verwijderen.

Methode 2: Hyper-V-functie uitschakelen met PowerShell

Je kunt een vergelijkbare actie uitvoeren door de command-line-interface te gebruiken in plaats van de GUI.

Log in bij PowerShell als Administrator en voer de opdracht uit om de Hyper-V-functie uit te schakelen:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

Start je host-machine opnieuw op:

shutdown -r -t 0

Methode 3: Hyper-V uitschakelen met behulp van BCDedit

Het idee achter deze methode is om de opstartconfiguratiegegevens te bewerken en het opstarten van Hyper-V uit te schakelen zonder de Hyper-V-rol te deinstalleren.

Log in bij PowerShell als Administrator, of voer de opdracht uit vanuit een verhoogde opdrachtprompt om Hyper-V uit te schakelen:

bcdedit /set hypervisorlaunchtype off

Als je Hyper-V weer wilt inschakelen en de standaardwaarde terug wilt zetten, voer deze opdracht uit:

bcdedit /set hypervisorlaunchtype auto

Om meer controle en gemak te hebben, schakel de snelle start in Windows 10 uit. Open de Register-editor van Windows en ga naar:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power

Stel de parameter HiberbootEnabled in op 0

Als je af en toe Hyper-V-VM’s wilt gebruiken, maak twee vermeldingen aan voor een Windows-opstartprogramma: één om Windows op te starten met Hyper-V en een andere om Windows op te starten zonder Hyper-V. Kies vervolgens de benodigde optie voordat je Windows opstart. Met deze aanpak voorkom je dat je telkens handmatig opdrachten in PowerShell moet uitvoeren om Hyper-V in of uit te schakelen.

bcdedit /copy “{current}” /d “Geen Hyper-V”

“De vermelding is met succes gekopieerd naar {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.”

Kopieer en plak je waarde in plaats van xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

bcdedit /set “{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}” hypervisorlaunchtype off

Start de computer opnieuw op.

Zodra je computer opnieuw is opgestart, zou je twee opties in het Windows Boot Manager moeten zien.

Als je de Geen Hyper-V opstartoptie wilt verwijderen, gebruik dan de /delete optie voor bcdedit.

Haal een lijst op van de huidige opstartvermeldingen:

bcdedit /v

A list of all entries with their identifiers is displayed in the output. Copy the ID of the entry which you want to remove, and run the following command:

bcdedit /delete “{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”

Methode 4: Verwijder de Hyper-V-rol in PowerShell met dism.exe

Het idee achter deze methode is om het Deployment Image Servicing and Management-hulpprogramma in de opdrachtregelinterface te gebruiken om Hyper-V te verwijderen.

Log in bij CMD of PowerShell als Administrator. Voer de volgende opdracht uit om Hyper-V te verwijderen:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

Als u Hyper-V weer wilt installeren, gebruik deze opdracht:

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Methode 5: Schakel beveiliging op basis van virtualisatie in Windows uit

Deze methode wordt gebruikt om Device Guard en Credential Guard uit te schakelen, die Hyper-V-gerelateerde functies zijn.

Open de Groepsbeleidseditor voor een lokale machine. De Groepsbeleidseditor is beschikbaar in Windows 10 Pro, Enterprise en Education. Voer in de opdrachtprompt gpedit.msc

Ga naar Lokale Computerbeleid > Computerconfiguratie > Beheerdersjablonen > Systeem > Device Guard

Dubbelklik op Beveiliging op basis van virtualisatie inschakelen. Standaard is de status van deze instelling Niet geconfigureerd.

Selecteer in het venster dat wordt geopend Uitgeschakeld en druk op OK om de instellingen op te slaan en sluit het venster.

Registratie-editor bewerken als alternatief

In Windows 10 Home, waar de Group Policy Editor niet aanwezig is, kunt u Virtualization Based Security uitschakelen in het Windows Registry.

Maak een back-up van het Windows-register voordat u registerinstellingen wijzigt om fouten en problemen te voorkomen.

Open het Register-editor. Voer regedit in de opdrachtregel die als Administrator moet worden geopend.

Ga naar HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > DeviceGuard

Maak de EnableVirtualizationBasedSecurity vermelding als deze vermelding ontbreekt. Om een nieuwe vermelding te maken, klikt u met de rechtermuisknop op een lege plek in de DeviceGuard directory en klikt u in het contextmenu op Nieuw > DWORD (32-bit) Waarde. Voer de EnableVirtualizationBasedSecurity naam in voor deze registervermelding. Standaard moet de gegevensset voor deze vermelding 0 zijn (zie onderstaande schermafbeelding). U kunt dubbelklikken op de EnableVirtualizationBasedSecurity en 0 handmatig instellen.

Ga naar HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Lsa

Maak een nieuwe registervermelding in de Lsa directory. Klik met de rechtermuisknop op een lege plek in het rechterdeelvenster van het Register-editor venster. Klik in het contextmenu op Nieuw > DWORD (32-bit) Waarde.

Voer de LsaCfgFlags naam in voor deze waarde. Deze waarde moet worden ingesteld op 0.

Sluit het Register-editor en start uw computer opnieuw op.

U kunt de volgende opdrachten uitvoeren in PowerShell (als Administrator) om Device Guard en Credential Guard uit te schakelen bij de volgende Windows-opstart.

Maak een UEFI-systeempartitie op schijf X: (selecteer een ongebruikte volume):

mountvol X: /s

Kopieer de C:\Windows\System32\SecConfig.efi naar X:\EFI\Microsoft\Boot\SecConfig.efi met een optie om het bestand te overschrijven als het bestand bestaat. Dit bestand is een opstartbeeld voor de Windows-beveiligingsconfiguratietool.

copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y

Maak een nieuwe optie in het opstartmenu met de ID {0cb3b571-2f2e-4343-a879-d86a476d7215} en de DebugTool naam:

bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d “DebugTool” /application osloader

Stel de opstartoptie die u in de vorige stap hebt gemaakt in op \EFI\Microsoft\Boot\SecConfig.efi:

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path “\EFI\Microsoft\Boot\SecConfig.efi”

Stel Windows Boot Manager in om de nieuwe entry de standaardoptie te maken voor de volgende herstart. Daarna herstart u Windows, dat moet terugkeren naar de normale opstart.

bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}

Stel de bootloader in om de opties DISABLE-LSA-ISO,DISABLE-VBS door te geven aan het SecConfig.efi bestand wanneer de bootloader het bestand start.

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS

Stel de partitie voor de opgestarte schijf in op het X: station:

bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:

Ontkoppel het X: station van het systeem:

mountvol X: /d

Methode 6: Update VMware Workstation

Als u Windows 10 versie 2004 (20H1) build 19041 of hoger op uw fysieke computer heeft, kunt u VMware Workstation upgraden naar VMware Workstation 15.5.6 of hoger en VMware VMs op uw Windows-machine draaien zonder Hyper-V en Virtualization Based Security (VBS) functies uit te schakelen/te deinstalleren, inclusief Device Guard en Credential Guard.

Vanwege veel klachten van klanten, besloten Microsoft en VMware om een gezamenlijk project te ontwikkelen dat Microsoft Windows Hypervisor Platform (WHP) API’s gebruikt om type 2 hypervisoren, zoals VMware Workstation, te laten draaien op een host waarop Hyper-V is ingeschakeld. Deze API’s stellen applicaties in staat om CPU-resources te beheren, registerwaarden te lezen/schrijven, CPU-operaties te beëindigen en onderbrekingen te genereren.

VMware Workstation vóór versie 15.5.5 gebruikt een Virtual Machine Monitor (VMM) dat direct toegang heeft tot een CPU en virtuele instructiesets (Intel VT-x of AMD-V). Een VMM werkt in een geprivilegieerde modus. Als Virtualization Based Security functies zijn ingeschakeld op een Windows-host, wordt er een extra hypervisorlaag (Hyper-V) toegevoegd tussen hardware en Windows. Hyper-V heeft direct toegang tot CPU-functies die worden gebruikt voor hardwarevirtualisatie, en VMM heeft geen toegang tot CPU-virtualisatiefuncties.

VMware heeft wijzigingen aangebracht in de architectuur van VMware Workstation 15.5.6 om hun product in staat te stellen Microsoft WHP-API’s te gebruiken en het compatibiliteitsprobleem op te lossen. VMM kan nu op gebruikersniveau draaien (niet in de bevoorrechte modus) met behulp van de WHP-API’s en VM’s uitvoeren zonder directe toegang tot CPU-virtualisatie-extensies. Deze modus wordt User Level Monitor (ULM) of een Host VBS-modus genoemd. Als u Hyper-V-gerelateerde functies van uw Windows-host verwijdert, detecteert VMware Workstation dit automatisch en wordt VMM omgeschakeld naar directe toegang tot CPU-virtualisatie-extensies (die in de bevoorrechte modus draaien).

Windows Hypervisor Platform (WHP) moet geïnstalleerd zijn op een fysieke Windows-machine waar Hyper-V is ingeschakeld om VMware Workstation in staat te stellen VMware-VM’s op deze machine uit te voeren. Installeer de Windows Hypervisor Platform-functie in het Configuratiescherm door te klikken op Windows-onderdelen in- of uitschakelen.

Op deze manier kunt u Windows 10 en VMware Workstation op uw fysieke machine bijwerken naar versies die het uitvoeren van Hyper-V-gerelateerde functies en VMware Workstation-VM’s op dezelfde machine ondersteunen.

Beperkingen van de Host VBS-modus:

  • Windows Hypervisor Platform wordt niet ondersteund op Windows Server 2016 en andere Windows Server-versies en edities. Als gevolg hiervan kan VMware Workstation geen VM’s uitvoeren in de host VBS-modus op fysieke machines die Windows Server draaien.
  • Geneste virtualisatie wordt niet ondersteund. U kunt geen geneste VM’s uitvoeren (VM’s binnen VMware Workstation-VM’s).
  • VMware-VM’s kunnen langzamer draaien.
  • X86-prestatiebewakingscounters (PMC) worden niet ondersteund.
  • De mogelijkheid tot gebruikersmodusbeveiligingssleutels (PKU) is niet beschikbaar.
  • De mogelijkheden voor Restricted Transactional Memory (RTM) en hardware lock elision (HLE) zijn niet beschikbaar.

VirtualBox en Hyper-V

VirtualBox kunnen samenwerken met Hyper-V, Device Guard en Credential Guard vanaf VirtualBox 6.0. VirtualBox 6 kan werken met Hyper-V API’s op een vergelijkbare manier als VMware Workstation op Windows 10 v1803 x64.

Om VirtualBox te laten werken met Hyper-V API’s moeten deze functies zijn ingeschakeld op een host-Windowsmachine:

  • Hyper-V
  • Windows Hypervisor Platform

Als de Hyper-V-functie is ingeschakeld maar de Windows Hypervisor Platform-functie is uitgeschakeld, kun je in de samenvatting van de VM-configuratie onder Systeem > Versnelling zien dat de Paravirtualisatiemodus is ingeschakeld. Als je probeert een VM te starten, herinnert VirtualBox je eraan dat je Windows Hypervisor Platform moet inschakelen en geeft het een foutmelding weer.

De foutmelding:
WHvCapabilityCodeHypervisorPresent is FALSE! Zorg ervoor dat je de functie ‘Windows Hypervisor Platform’ hebt ingeschakeld.

(VERR_NEM_NOT_AVAILABLE).

VT-x is niet beschikbaar (VERR_VMX_NO_VMX).

Als de vereiste Hyper-V-gerelateerde functies in Windows zijn ingeschakeld, wordt de volgende informatie weergegeven voor de VM in het gedeelte Systeem:

Versnelling: VT-x/AMD-v, Nested Paging, Paravirtualisatie Hyper-V

De VM moet succesvol starten. Een groen schildpictogram wordt weergegeven in het onderste paneel van het VirtualBox-venster. Dit pictogram geeft aan dat een VM wordt uitgevoerd in de Hyper-V paravirtualisatiemodus in plaats van de native modus die meestal door VirtualBox wordt gebruikt bij directe interactie met CPU-virtualisatie-extensies. De prestaties van VirtualBox-VM’s verslechteren op machines waarop Hyper-V en gerelateerde functies zijn ingeschakeld. U kunt Hyper-V uitschakelen of verwijderen zoals eerder uitgelegd om VM’s op VirtualBox uit te voeren in de native modus met behulp van CPU-virtualisatie-extensies.

Lees ook de VirtualBox vs Hyper-V-vergelijking en de VirtualBox vs VMware-vergelijking.

Conclusie

Nieuwe Windows-functies zoals Virtualization Based Security (Device Guard en Credential Guard), Windows Sandbox, WSL die de Hyper-V-engine gebruiken, veroorzaken veel problemen voor gebruikers, beheerders en softwareontwikkelaars die andere hypervisors zoals VMware Workstation, VirtualBox, QEMU en Google Android Emulator op Windows-machines gebruiken. Er zijn twee benaderingen om deze incompatibiliteitsproblemen op te lossen: Hyper-V uitschakelen/verwijderen of nieuwe versies van virtualisatietoepassingen gebruiken die werken met Hyper-V-API’s, zoals de Windows Hypervisor Platform API die door Microsoft wordt geleverd.

Het uitvoeren van VM’s op VirtualBox, VMware Workstation en andere hypervisors op machines met Hyper-V door het gebruik van API’s kan de prestaties van niet-Hyper-V VM’s verminderen. Het maken van back-ups is cruciaal voor het geval virtualisatietoepassingen falen. Als je nog steeds niet de beste Hyper-V back-upoplossing voor jouw omgeving hebt gekozen, overweeg dan NAKIVO Backup & Replication. De oplossing biedt robuuste back-up, bescherming tegen ransomware, noodherstel en meer. Download de Gratis Editie om de oplossing in actie te zien.

Source:
https://www.nakivo.com/blog/virtualization-applications-with-hyper-v-device-guard-and-credential-guard/