myspaghetti / macos-virtualbox

Push-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox on x86 CPUs for Windows, Linux, and macOS
GNU General Public License v2.0
13.46k stars 1.11k forks source link

"Virtualbox is not using hardware-supported virtualization features" #651

Closed kklmn closed 1 year ago

kklmn commented 1 year ago

Hello,

I get the following complaint:

Checking that VirtualBox uses hardware-supported virtualization.

Virtualbox is not using hardware-supported virtualization features.
Check that software such as Hyper-V, Windows Sandbox, WSL2, memory integrity
protection, and other Windows features that lock virtualization are turned off.
Exiting.

Is there a way to tell which feature is to blame? Those listed above (not sure about memory integrity protection) are unselected in my case: image

myspaghetti commented 1 year ago

Is there a way to tell which feature is to blame?

Unfortunately not, Windows doesn't provide a way to show which feature or software is using VT-x/AMD-V.

You can turn off all features that use Hyper-V virtualization by running the following command in an admin console then rebooting twice:

bcdedit /set hypervisorlaunchtype off 
kklmn commented 1 year ago

@myspaghetti, thank you for your reply! Doing bcdedit /set hypervisorlaunchtype off (admin, rebooting twice) didn't help.

myspaghetti commented 1 year ago

Then either other software is preventing access to VT-x/AMD-V or the CPU does not have the required features.

kklmn commented 1 year ago

... or the CPU does not have the required features.

i7-12700H is the CPU

RICCIARDI-Adrien commented 1 year ago

@kklmn Is the virtualization support enabled in your BIOS ?

kklmn commented 1 year ago

Certainly yes, I do run a few other virtual machines.

RICCIARDI-Adrien commented 1 year ago

Maybe some application like Docker is keeping Hyper-V enabled ? https://forums.virtualbox.org/viewtopic.php?f=6&t=105951

kklmn commented 1 year ago

Thanks for the hint, but I don't have Docker running and I have 3 other VMs in VirtualBox. I've checked now, I can start them normally.

RICCIARDI-Adrien commented 1 year ago

Do your working VMs use hardware virtualization (if you look at the Virtual Box system settings for such VMs) ?

kklmn commented 1 year ago

These are the settings: image image image

RICCIARDI-Adrien commented 1 year ago

I'm using a 8th gen Intel CPU and I'm able to tick the "Enable Nested VT-x/AMD-V" checkbox (I'm running Linux as host OS).

Capture d’écran_2023-04-11_14-38-10

I think this should be also available to you on your 12th gen CPU.

The selected paravirtualization interface is displayed in the VM description (see screenshot below). Which one is selected on your Fedora VM ?

Capture d’écran_2023-04-11_14-41-54

kklmn commented 1 year ago

"Enable Nested VT-x/AMD-V" stays gray. Don't know on what it depends. The host OS is Windows 11 Enterprise 22H2.

Paravirtualization: image

RICCIARDI-Adrien commented 1 year ago

Maybe you can use the same commands than macos-virtualbox script to find if hardware virtualization is also supported on your other VMs ? A command like VBoxManage showvminfo "Fedora 37" --log 0 | grep "Attempting fall back to NEM" (borrowed from https://github.com/myspaghetti/macos-virtualbox/blob/master/macos-guest-virtualbox.sh#L463).

kklmn commented 1 year ago

Searching for Attempting fall back to NEM (grep is not available in Windows) after .\VBoxManage showvminfo "Fedora37" --log 0 gives

00:00:12.731956 HM: HMR3Init: Attempting fall back to NEM: VT-x is not available
00:00:12.766428 NEM:  info: Found optional import WinHvPlatform.dll!WHvQueryGpaRangeDirtyBitmap.
00:00:12.766449 NEM:  info: Found optional import vid.dll!VidGetHvPartitionId.
00:00:12.766457 NEM:  info: Found optional import vid.dll!VidGetPartitionProperty.
00:00:12.766553 NEM: WHvCapabilityCodeHypervisorPresent is TRUE, so this might work...
00:00:12.766560 NEM: WHvCapabilityCodeExtendedVmExits      = 0x0000000000007fff
00:00:12.766570 NEM:                       fExtendedMsrExit: 1
00:00:12.766577 NEM:                     fExtendedCpuIdExit: 1
00:00:12.766583 NEM:                      fExtendedXcptExit: 1
00:00:12.766589 NEM: Warning! Unknown VM exit definitions: 0x7fff
00:00:12.766596 NEM: Warning! Unknown feature definitions: 0x2ff
00:00:12.766602 NEM: Supported exception exit bitmap: 0xf7dfb
00:00:12.766615 NEM: WHvCapabilityCodeProcessorVendor      = 1 - Intel
00:00:12.766640 NEM: WHvCapabilityCodeProcessorFeatures    = 0x2e1b7bcfe7f7859f
00:00:12.766648 NEM:                            Sse3Support: 1
00:00:12.766655 NEM:                        LahfSahfSupport: 1
00:00:12.766661 NEM:                           Ssse3Support: 1
00:00:12.766743 NEM:                          Sse4_1Support: 1
00:00:12.766751 NEM:                          Sse4_2Support: 1
00:00:12.766757 NEM:                           Sse4aSupport: 0
00:00:12.766764 NEM:                             XopSupport: 0
00:00:12.766770 NEM:                          PopCntSupport: 1
00:00:12.766776 NEM:                      Cmpxchg16bSupport: 1
00:00:12.766782 NEM:                       Altmovcr8Support: 0
00:00:12.766788 NEM:                           LzcntSupport: 1
00:00:12.766794 NEM:                     MisAlignSseSupport: 0
00:00:12.766800 NEM:                          MmxExtSupport: 0
00:00:12.766806 NEM:                        Amd3DNowSupport: 0
00:00:12.766812 NEM:                ExtendedAmd3DNowSupport: 0
00:00:12.766818 NEM:                         Page1GbSupport: 1
00:00:12.766825 NEM:                             AesSupport: 1
00:00:12.766831 NEM:                       PclmulqdqSupport: 1
00:00:12.766837 NEM:                            PcidSupport: 1
00:00:12.766843 NEM:                            Fma4Support: 0
00:00:12.766849 NEM:                            F16CSupport: 1
00:00:12.766855 NEM:                          RdRandSupport: 1
00:00:12.766861 NEM:                        RdWrFsGsSupport: 1
00:00:12.766867 NEM:                            SmepSupport: 1
00:00:12.766873 NEM:              EnhancedFastStringSupport: 1
00:00:12.766879 NEM:                            Bmi1Support: 1
00:00:12.766885 NEM:                            Bmi2Support: 1
00:00:12.766891 NEM:                           MovbeSupport: 1
00:00:12.766897 NEM:                          Npiep1Support: 1
00:00:12.766903 NEM:                   DepX87FPUSaveSupport: 1
00:00:12.766909 NEM:                          RdSeedSupport: 1
00:00:12.766915 NEM:                             AdxSupport: 1
00:00:12.766921 NEM:                   IntelPrefetchSupport: 1
00:00:12.766927 NEM:                            SmapSupport: 1
00:00:12.766933 NEM:                             HleSupport: 0
00:00:12.766939 NEM:                             RtmSupport: 0
00:00:12.766945 NEM:                          RdtscpSupport: 1
00:00:12.766951 NEM:                      ClflushoptSupport: 1
00:00:12.766957 NEM:                            ClwbSupport: 1
00:00:12.766963 NEM:                             ShaSupport: 1
00:00:12.766969 NEM:                X87PointersSavedSupport: 0
00:00:12.766975 NEM: Warning! Unknown CPU features: 0x2e1b7bcfe7f7859f
00:00:12.766990 NEM: WHvCapabilityCodeProcessorClFlushSize = 2^8
00:00:12.766998 NEM: Warning! Unknown capability 0x4 returning: 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767009 NEM: Warning! Unknown capability 0x5 returning: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767035 NEM: Warning! Unknown capability 0x6 returning: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767749 NEM: Warning! Unknown capability 0x1003 returning: 1f 38 58 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767775 NEM: Warning! Unknown capability 0x1004 returning: 7e 9f 37 a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767781 NEM: Warning! Unknown capability 0x1005 returning: 00 c2 eb 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767787 NEM: Warning! Unknown capability 0x1006 returning: 02 00 00 00 00 00 00 00 9f 85 f7 e7 cf 7b 1b 2e 43 77 17 00 00 00 00 00
00:00:12.767792 NEM: Warning! Unknown capability 0x1007 returning: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767801 NEM: Warning! Unknown capability 0x1008 returning: 01 00 00 00 00 00 00 00 ff 8f 44 7f 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.767811 NEM: Warning! Unknown capability 0x1009 returning: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00:00:12.769094 NEM: Created partition 000002449b663fd0.
00:00:12.769115 NEM: Adjusting APIC configuration from X2APIC to APIC max mode.  X2APIC is not supported by the WinHvPlatform API!
00:00:12.769123 NEM: Disable Hyper-V if you need X2APIC for your guests!
00:00:12.769510 NEM:
00:00:12.769511 NEM: NEMR3Init: Snail execution mode is active!
00:00:12.769511 NEM: Note! VirtualBox is not able to run at its full potential in this execution mode.
00:00:12.769511 NEM:       To see VirtualBox run at max speed you need to disable all Windows features
00:00:12.769511 NEM:       making use of Hyper-V.  That is a moving target, so google how and carefully
00:00:12.769512 NEM:       consider the consequences of disabling these features.
00:00:12.769512 NEM:
00:00:12.780122 NEM: HvPartitionPropertyProcessorVendor=0x1 (1)
00:00:12.781669 NEM: Successfully set up partition (device handle 000000000000112d, partition ID 0x0)
00:00:12.954333 TM: NEM overrides the /TM/TSCModeSwitchAllowed setting.

It reports on "Snail execution mode", will google about it.

kklmn commented 1 year ago

I've got it! First, I've found a great guide "How to Disable or Remove Hyper-V in Windows 11" and followed it. In my case, I needed to turn off Memory Integrity ("How to Turn Off Virtualization-Based Security (Memory Integrity)"). This alone, with a restart, of course, didn't help. But then doing bcdedit /set hypervisorlaunchtype off as admin, double restart, did the trick. Thanks all!