All right! After you’re basically done with the virtual machine configuration, everything should work great. But things don’t go always as expected. When you switch on the machine, you’ll see a lovely screen with an error that points to “The CPU have been disabled by default. Power off or reset the virtual machine”. Here’s How to Fix The CPU has been disabled by the guest OS

While Windows computer isn’t the default system to install macOS. The important thing is, Apple doesn’t support installing macOS on non-Apple hardware and is neither willing to do. But that’s not the only one who does this. Perhaps, when we use the patch for VMware, that is because, unlike VirtualBox, VMware Workstation Player doesn’t support installing macOS by default. In this case, when you try to install macOS on VMware without the patch, you’ll end up without installing.

Since installing macOS, whatever version isn’t the supported way, there will be likely problems messing around. Whether you’ve an Intel or AMD processor, you’ll probably need to play the tricky steps. But if you’re installing Mojave on an AMD system, you’ll need to pull off a few more steps including the actual steps which are for both processors. This is a tiny change but really matters. How to Fix The CPU has been disabled by the guest OS

There are several reasons which might cause the problem. The first one is that you may have not configured the virtual machine for your AMD system. While AMD systems are different from Intel ones, we will need to use the different config key for setting up correctly. The other reason that the error can pop up is if you’ve installed the VMware or VirtualBox while the Hyper-v is installed.

While this problem usually happens when installing macOS on VMware, so we will take a look at How to Fix The CPU has been disabled by the guest OS

Change The VM Hardware Compatibility to 10.x

All the usual installing steps are important, but you need to perform some more steps in addition to them. The nice thing is, it’s all done from the vmx file. There are two ways you do get it done. The first way you could do it is from the VMware with the wizard. The other way you could do is from the vmx file. We’ll move with the easier one. This is simple as we have covered you with every step with shots.  Here’s how to do it real quick. How to Fix The CPU has been disabled by the guest OS

Go ahead and navigate to the virtual machine files. Now right click on the .vmx file and select Open with and choose Notepad.

Open VMX with Notepad
Open VMX with Notepad

When the file opened, change the version number to 10. It will change the virtual machine hardware compatibility to 10.

Change The VM Hardware Compatibility to 10
Change The VM Hardware Compatibility to 10

If you miss changing the hardware compatibility of the machine from VMware, you’ll likely encounter this problem.

Add The Config Key For The Virtual Machine (For AMD Systems Only)

Now without closing the .vmx file, copy the following code and paste it at the end of all lines. If you’ve the config key smc.version = 0 already there, you may remove it and paste this in place of it. It should look like this.

cpuid.0.eax = “0000:0000:0000:0000:0000:0000:0000:1011”
cpuid.0.ebx = “0111:0101:0110:1110:0110:0101:0100:0111”
cpuid.0.ecx = “0110:1100:0110:0101:0111:0100:0110:1110”
cpuid.0.edx = “0100:1001:0110:0101:0110:1110:0110:1001”
cpuid.1.eax = “0000:0000:0000:0001:0000:0110:0111:0001”
cpuid.1.ebx = “0000:0010:0000:0001:0000:1000:0000:0000”
cpuid.1.ecx = “1000:0010:1001:1000:0010:0010:0000:0011”
cpuid.1.edx = “0000:1111:1010:1011:1111:1011:1111:1111”
featureCompat.enable = “FALSE”

How to Fix The CPU has been disabled by the guest OS
Insert Code

When you’re done with it, simply save it.

Save
Save

And you’re all set! All there’s left to do is switch the machine on and proceed with the installation.

Power on virtual machine
Power on the virtual machine

That’s all well and good. Everything should work

Here are some important fixes given by one of our users @DOUG! Thanks man, so many people found this helpful so I have added your comment to the post for easier access…

Managed to get it working on VMWare 16.0 & a 3700X after looking at the vmware logs for a bit.

Several issues:

1) Ensure you are using normal double-quotes. When copying and pasting it’ll use pretty quotes but vmware will complain (not a valid boolean, etc.)

2) Disabling featureCompat.enable is only supported on hardware versions less than 9. Change that to TRUE (probably can just delete but haven’t tested that yet)

3) cpuid.ss & cpuid.ds are no longer supported on the cpus so need to be removed from the enabled features. Change cpuid.1.edx line to

“0000:0111:1000:1011:1111:1011:1111:1111”

4) With those changes I was then able to bump the virtualHW.version back up to 16.

58 Comments

  1. Thanks a lot :))

    Started with trouble with my Linux Journey….this promises nothing good for me as windows administrator.

    • You might want to check that. I’m running 2 processors x 4 cores and MacOS sees them fine.

      [~] sysctl -a | grep hw\..*cpu:
      hw.ncpu: 8
      hw.activecpu: 8
      hw.physicalcpu: 8
      hw.logicalcpu: 8

  2. Hi Doug,
    Thank you thank you thank you!!!!
    This is what worked for me:

    smc.version = “0”
    cpuid.0.eax = “0000:0000:0000:0000:0000:0000:0000:1011”
    cpuid.0.ebx = “0111:0101:0110:1110:0110:0101:0100:0111”
    cpuid.0.ecx = “0110:1100:0110:0101:0111:0100:0110:1110”
    cpuid.0.edx = “0100:1001:0110:0101:0110:1110:0110:1001″
    cpuid.1.eax = “0000:0000:0000:0001:0000:0110:1010:0101”
    cpuid.1.ebx = “0000:0010:0000:0001:0000:1000:0000:0000”
    cpuid.1.ecx = “1000:0010:1001:1000:0010:0010:0000:0011”
    cpuid.1.edx = “0000:0111:1000:1011:1111:1011:1111:1111”
    featureCompat.enable = “TRUE”

    nothing else nothing more I have lost hope after trying for days to get big sur on vmware, i even read that it won’t happen if I have an APU, low and behold I couldn’t believe it when I saw the installation going on!
    Quick question: I noticed that the sound while playing a youtube video is choppy, having never dealt with a mac before is there a driver fix perhaps for this?
    Also I tried to create an Apple ID but it seems to be stuck and not following through.
    Peace
    Steve

    • Ali Reply

      Hey Steveo, Yeah Doug is awesome with that fix, and has help a lot of us out. I will check around and see if there is any known issues with audio or drive updates. We’re launching a forum to help users find solutions to these issues. Sign up whenever you can! forum.geekrar.com, we’ll start opening up the discussion board next month

    • I have no idea on the audio, only use the VM for Xcode and don’t have an audio device configured.

      I didn’t create an Apple ID in MacOS, however am successfully using ones that I had created previously, if that helps.

  3. -Update to my previous comment-
    The following line: cpuid.1.ecx = “1000:0010:1001:1000:0010:0010:0000:0011”
    gives me the following error (shortened it for ease):

    “Feature ‘cpuid.pclmulqdq, *ssse3 *sse41 *sse42 *aes’ was absent but must be present
    Module FeatureCompatLate power on failed.”

    FYI my Workshop is 16.

    • These changes are primary for AMD users to fool MacOS into thinking that an AMD CPU is an Intel CPU.

      In particular, the cpuid.0.eax line specifices a Nehalem-based processor, and other the cpuid.0.* lines spell out ‘GenuineIntel’. The cpuid.1.* lines are used to specify particular features. In your case, you’ve turned on the bits that tell the VM your CPU supports pclmulqdq, ssse3, sse41, sse42 & aes but when VMWare tries to validate that it determines that your physical CPU doesn’t actually support those features.

      Most likely your CPU is too old to support running the newer MacOS versions. Sorry.

  4. Doesn’t. Even. Work. Person with an Intel CPU coming through.
    I guess i’m one of those unlucky chosen ones that will never ever have these damn fancy things to work.

    • Ali Reply

      I feel the same way, I’ve had plenty of issues with intel. which os are you installing?

  5. I own a Ryzen 9 3900X, and I made all the recommended changes to the vmx file (including those from Doug), but when I try to start the VM I get the below errors:

    Feature ‘cpuid.ds’ was absent, but must be present.
    Feature ‘cpuid.ss’ was absent, but must be present.
    Module ‘FeatureCompatLate’ power on failed.
    Failed to start the virtual machine.

    I checked and all the quotation marks are correct.

  6. You saved my day 🙂
    AMD Ryzen 3950x, 32GB, Windows 10, VMWARE Workstation 16, guest MacOS 10.13.6
    Point 2) and 3) are the tricks.

  7. You Glorious Bastard, Thank you Doug. You fixed everything with one post.

  8. Thank you so much. I wasted so many hours getting a macOS VM to work and this finally solved the problem (Ryzen 3700X)

  9. Thank you so much for your contribution.

    I had the same issue and followed your instructions to resolve the issue.

    It is working fine now.

  10. Managed to get it working on VMWare 16.0 & a 3700X after looking at the vmware logs for a bit.

    Several issues:

    1) Ensure you are using normal double-quotes. When copying and pasting it’ll use pretty quotes but vmware will complain (not a valid boolean, etc.)

    2) Disabling featureCompat.enable is only supported on hardware versions less than 9. Change that to TRUE (probably can just delete but haven’t tested that yet)

    3) cpuid.ss & cpuid.ds are no longer supported on the cpus so need to be removed from the enabled features. Change cpuid.1.edx line to

    “0000:0111:1000:1011:1111:1011:1111:1111”

    4) With those changes I was then able to bump the virtualHW.version back up to 16.

    • Ali Nazarii Reply

      Thanks for your findings. This will be helpful to the community.

    • This worked for me on Ryzen 3950x, using the same CPU id keys.

      Seconding, if you’re copy/pasting to notepad, make sure you edit the quotes, as their character string on this website is not a regular quote. Delete them and re-enter the proper keyboard quote key for each one.

  11. I was able to run the VM on 3950X Processor with the following VMX details :

    .encoding = “windows-1252”
    config.version = “8”
    virtualHW.version = “10”
    pciBridge0.present = “TRUE”
    pciBridge4.present = “TRUE”
    pciBridge4.virtualDev = “pcieRootPort”
    pciBridge4.functions = “8”
    pciBridge5.present = “TRUE”
    pciBridge5.virtualDev = “pcieRootPort”
    pciBridge5.functions = “8”
    pciBridge6.present = “TRUE”
    pciBridge6.virtualDev = “pcieRootPort”
    pciBridge6.functions = “8”
    pciBridge7.present = “TRUE”
    pciBridge7.virtualDev = “pcieRootPort”
    pciBridge7.functions = “8”
    vmci0.present = “TRUE”
    hpet0.present = “TRUE”
    ich7m.present = “TRUE”
    board-id.reflectHost = “TRUE”
    displayName = “macOS Catalina”
    guestOS = “darwin19-64”
    nvram = “macOS Catalina.nvram”
    virtualHW.productCompatibility = “hosted”
    gui.exitOnCLIHLT = “FALSE”
    powerType.powerOff = “soft”
    powerType.powerOn = “soft”
    powerType.suspend = “soft”
    powerType.reset = “soft”
    usb.vbluetooth.startConnected = “TRUE”
    smc.present = “TRUE”
    smbios.restrictSerialCharset = “TRUE”
    firmware = “efi”
    tools.syncTime = “FALSE”
    sound.autoDetect = “TRUE”
    sound.virtualDev = “hdaudio”
    sound.fileName = “-1”
    sound.present = “TRUE”
    numvcpus = “8”
    cpuid.coresPerSocket = “8”
    memsize = “32000”
    sata0.present = “TRUE”
    sata0:0.fileName = “macOS Catalina.vmdk”
    sata0:0.present = “TRUE”
    sata0:1.deviceType = “cdrom-image”
    sata0:1.fileName = “C:\Users\Leon\Downloads\macOS Catalina ISO by Geekrar\macOS Catalina ISO by Geekrar\macOS Catalina Final [Geekrar].iso”
    sata0:1.present = “TRUE”
    usb.present = “TRUE”
    ehci.present = “TRUE”
    usb_xhci.present = “TRUE”
    ethernet0.connectionType = “nat”
    ethernet0.addressType = “generated”
    ethernet0.virtualDev = “e1000e”
    ethernet0.present = “TRUE”
    extendedConfigFile = “macOS Catalina.vmxf”
    floppy0.present = “FALSE”
    smc.version = “0”
    vhv.enable = “TRUE”
    numa.autosize.cookie = “80001”
    numa.autosize.vcpu.maxPerVirtualNode = “8”
    uuid.bios = “56 4d be 15 17 2a 61 bb-54 bc 19 ea 20 f5 a1 5f”
    uuid.location = “56 4d be 15 17 2a 61 bb-54 bc 19 ea 20 f5 a1 5f”
    sata0:0.redo = “”
    pciBridge0.pciSlotNumber = “17”
    pciBridge4.pciSlotNumber = “21”
    pciBridge5.pciSlotNumber = “22”
    pciBridge6.pciSlotNumber = “23”
    pciBridge7.pciSlotNumber = “24”
    usb.pciSlotNumber = “32”
    ethernet0.pciSlotNumber = “160”
    sound.pciSlotNumber = “33”
    ehci.pciSlotNumber = “34”
    usb_xhci.pciSlotNumber = “192”
    vmci0.pciSlotNumber = “35”
    sata0.pciSlotNumber = “36”
    svga.vramSize = “134217728”
    vmotion.checkpointFBSize = “134217728”
    vmotion.checkpointSVGAPrimarySize = “268435456”
    ethernet0.generatedAddress = “00:0c:29:f5:a1:5f”
    ethernet0.generatedAddressOffset = “0”
    vmci0.id = “552968543”
    monitor.phys_bits_used = “40”
    cleanShutdown = “TRUE”
    softPowerOff = “FALSE”
    usb_xhci:6.speed = “2”
    usb_xhci:6.present = “TRUE”
    usb_xhci:6.deviceType = “hub”
    usb_xhci:6.port = “6”
    usb_xhci:6.parent = “-1”
    usb_xhci:7.speed = “4”
    usb_xhci:7.present = “TRUE”
    usb_xhci:7.deviceType = “hub”
    usb_xhci:7.port = “7”
    usb_xhci:7.parent = “-1”
    toolsInstallManager.updateCounter = “4”
    usb:1.speed = “2”
    usb:1.present = “TRUE”
    usb:1.deviceType = “hub”
    usb:1.port = “1”
    usb:1.parent = “-1”
    usb_xhci:4.present = “TRUE”
    usb_xhci:4.deviceType = “hid”
    usb_xhci:4.port = “4”
    usb_xhci:4.parent = “-1”
    sata0:1.startConnected = “TRUE”
    toolsInstallManager.lastInstallError = “21004”
    tools.remindInstall = “TRUE”
    cpuid.0.eax = “0000:0000:0000:0000:0000:0000:0000:1011”
    cpuid.0.ebx = “0111:0101:0110:1110:0110:0101:0100:0111”
    cpuid.0.ecx = “0110:1100:0110:0101:0111:0100:0110:1110”
    cpuid.0.edx = “0100:1001:0110:0101:0110:1110:0110:1001”
    cpuid.1.eax = “0000:0000:0000:0001:0000:0110:0111:0001”
    cpuid.1.ebx = “0000:0010:0000:0001:0000:1000:0000:0000”
    cpuid.1.ecx = “1000:0010:1001:1000:0010:0010:0000:0011”
    cpuid.1.edx = “0000:1111:1010:1011:1111:1011:1111:1111”
    featureCompat.enable = “FALSE”

  12. I also get:”

    Error while powering on : feature ‘cpuid.ds’ was absent, but must be present.

    feature cpuid.ss was absent, but must be present

    feature cpuid.intel was abset but must be present

    module featurecompatlate power on failed

    value (random unreadable text) for variable featurecompat.enable is not a valid boolean value
    using value TRUE

    failed to start virtual machine”

  13. Same here with a Ryzen 3800X: “Failed to start the virtual machine.”

  14. Chanchana Sornsoontorn Reply

    This is exactly what happens to me. I use AMD Ryzen 7 3700X

  15. Adam Joel Stepansky Reply

    Anyone figure this out for 15.5 with AMD? New error appears regarding feature cpuids

  16. I have done all this steps. I still cant rund mac mojave, I use AMD ryzen 7, 2700

  17. Gary Stewart Reply

    That’s a few us with amd CPUs following all the fixes and ending up with “Failed to start the virtual machine” any ideas?

  18. Danijel Lukic Reply

    At first inserted:
    smc.version = “0”

    Getting the Message that Guest turned off CPU.

    Then changed the Version from 16 to 10
    Then added the following (Because i have an AMD CPU):
    cpuid.0.eax = “0000:0000:0000:0000:0000:0000:0000:1011”
    cpuid.0.ebx = “0111:0101:0110:1110:0110:0101:0100:0111”
    cpuid.0.ecx = “0110:1100:0110:0101:0111:0100:0110:1110”
    cpuid.0.edx = “0100:1001:0110:0101:0110:1110:0110:1001”
    cpuid.1.eax = “0000:0000:0000:0001:0000:0110:0111:0001”
    cpuid.1.ebx = “0000:0010:0000:0001:0000:1000:0000:0000”
    cpuid.1.ecx = “1000:0010:1001:1000:0010:0010:0000:0011”
    cpuid.1.edx = “0000:1111:1010:1011:1111:1011:1111:1111”
    featureCompat.enable = “FALSE”

    Now i get the following error:
    Failed to start the virtual machine

  19. Gary Stewart Reply

    “Failed to start the virtual machine.” error message for me as well, any ideas?

  20. Fernando Suarez Ornani Reply

    “Failed to start the virtual machine.” (no more explanation). What can I do?
    Regarding “feature cpuid.ss was absent” and the like, beware that the lines that you have to add have the wrong quotations. For example:
    featureCompat.enable = “FALSE”
    Should be:
    featureCompat.enable = “FALSE”
    Same goes for CPUID lines, although they wont give you errors.

  21. SAURISH MONGA Reply

    Error while powering on : feature ‘cpuid.ds’ was absent, but must be present.

    feature cpuid.ss was absent, but must be present

    feature cpuid.intel was abset but must be present

    module featurecompatlate power on failed

    value (random unreadable text) for variable featurecompat.enable is not a valid boolean value
    using value TRUE

    failed to start virtual machine

    this is the error i got from following this. Im using amd processor what should i do?

  22. Error while powering on : feature ‘cpuid.ds’ was absent, but must be present.

    feature cpuid.ss was absent, but must be present

    feature cpuid.intel was abset but must be present

    module featurecompatlate power on failed

    value (random unreadable text) for variable featurecompat.enable is not a valid boolean value
    using value TRUE

    failed to start virtual machine

    this is the error i got from following this. Im using ryzen 7 2700. please help.

Write A Comment