Many Developers and other IT Professionals use macOS (via a Macbook Pro or other Apple computer) and do need to run Windows on their machine under virtualization using Parallels or VMWare. Doing this allows you to run both macOS and Windows, or even Linux, operating systems and software on a single computer at the same time. When running Windows on top of macOS through virtualization you can use developer tools like Visual Studio, Windows Terminal, and others on macOS! However, using Windows Hyper-V to be able to run Windows VMs within your Windows VM requires the Intel VT-x virtualization support of the Intel CPU in the macOS computer to be enabled. This feature may not always enabled by default on macOS.

Let’s take a look at checking for status of Virtualization (VT-x) support, and enabling it so you can use Hyper-V and other virtualization within your Windows VMs running on macOS. This is something that may be necessary for running things like the Windows Subsystem for Linux 2 (WSL2) successfully within your Windows VM on top of macOS.

Check if VT-x is supported on macOS

To see if the CPU within your macOS computer (Macbook Pro, Mac Pro, or other Apple machines) support nested virtualization via the VT-x feature of the CPU, you will need to open the macOS Terminal and execute a command.

Run the following command:

sysctl -a | grep machdep.cpu.features

This command will output the instruction sets supported by your machines CPU. When running this command, look for the VMX feature in the list. If this is listed, then your CPU does in fact support VT-x virtualization.

Check Hyper-V (Intel VT-x) Virtualization Support on macOS Computer 1
Terminal output looking for VMX cpu feature support

You can run the following command to check for hardware virtualization support on macOS as well:

sysctl kern.hv_support

The command output will look as follows when turned on showing the kern.hv_support value returning 1:

chris@Chriss-MBP ~ % sysctl kern.hv_support
kern.hv_support: 1

Just because the VMX feature of the CPU is listed, doesn’t mean it’s enabled within macOS, so let’s look at that next.

Enable VT-x Virtualization on macOS

All macOS computers that have an Intel i7 or i9 cpu should have VT-x virtualization support enabled by default. It is possible that if it’s not turned on for your computer, then you will need to update your computer to the latest software / firmware. This can be done through the Software Update feature of macOS, or by downloading Apple’s Firmware Update utilities.

It is also possible that for some reason it was disabled, and to re-enable the VT-x virtualization support, you will need to Reset the NVRAM or PRAM on your Mac. This can be done with the Option + Command + P + R keyboard combination at startup of your Mac.

Unfortunately, if you still don’t have the VT-x virtualization support enabled, even though your CPU does support it, then you may need to wait for a new update from Apple to enable it if the above methods do not work. There’s no BIOS update setting you can access on Mac computers like other traditional desktop computer hardware.

FYI, If you are using Parallels Desktop for Mac Home Edition, this edition of Parallels does not support Nested Virtualization. To get Nested Virtualization support you will need to upgrade to the Parallels Desktop for Mac Pro edition to get this feature.

Happy running Windows or Linux in virtualization on macOS!

Microsoft MVP

Chris Pietschmann is a Microsoft MVP (Azure & IoT) and HashiCorp Ambassador (2021) with 20+ years of experience designing and building Cloud & Enterprise systems. He has worked with companies of all sizes from startups to Fortune 100. He is also a Microsoft Certified Azure Solutions Architect and developer, a Microsoft Certified Trainer (MCT), and Cloud Advocate. He has a passion for technology and sharing what he learns with others to help enable them to learn faster and be more productive.