Windows, macOS – which one do you want to use today? On a traditional setup, you’re stuck with one or the other. But with virtual box, you actually have macOS on a Windows PC.
It’s the freedom that computer users have enjoyed with Linux and other operating systems.
Type the name for virtual machine and Mac OS X for type. Choose your version (if you have Mojave or Catalina, choose Mac OS X (64 bit)). Select memory size. Select 'Create Virtual Disk Now' Choose VDI for format. Select storage name and size. The size should be at least 32 GB. Go to 'Settings' Go to 'Storage' Tab. Created by Dell Computer's VMWare, the latest version of Fusion (11.5), has been designed to take advantage of macOS Catalina tools, including Sidecar and Dark Mode. Like Parallels, Fusion lets you create a virtual machine through software that can run separately from your macOS installation.
But Apple has made it difficult to install their operating system on anything other than their own hardware. All of that is changing, and Virtual Box is responsible for it and the rise of the Hackintosh.
New to hackintosh? Learn more about it in our what is hackintosh? overview.
Note: A lot of people will be able to get a mac virtual machine one Windows running smoothly, but sound doesn’t seem to work well. That’s really not an issue because you’ll still be able to access all of your apps and software.
I also recommend that you have access to a real Mac. You might be able to find some distributions of the High Sierra ISO online, but there is always a risk when downloading from an unofficial source. Instead, borrow a Mac from a friend, or use your own and download the High Sierra OS from the App Store.
Check out our high sierra installation guide for hackintosh
Everything You Need to Get Started with Installing macOS on VirtualBox
Before we go through the steps on how to install macOS on Virtual Box, let’s get everything together that you’ll need to get started.
- Open up your Mac
- Go to the App Store
- Type in “High Sierra”
You’ll want to search for your desired operating system (we’ll be using High Sierra), and Download it.
Note: You’ll need a decent computer to be able to run Virtual Box. Your computer will need to meet these minimum requirements:
- Dual core processor
- 4GB Ram or higher
- 64-bit
If your computer doesn’t meet these requirements, you won’t be able to run macOS properly. You’ll be able to download VirtualBox from the official website. I’m not going to go through the installation process, as the website will have all of the information you need to be able to install VirtualBox.
I do recommend that you read all of the documentation and ask any questions that you have in the community section of the website.
VirtualBox 6.0 was just released, so it’s definitely a great time to get started with your own macOS.
Extract macOS Sierra
Make sure you’ve downloaded High Sierra, and then you’ll want to run a few commands from your terminal . You’ll be able to open the terminal at: Applications > Utilities > Terminal. Once inside of the terminal, you’ll want to run the following commands:
Go to your desktop and rename the file, removing the “.cdr” extension. You need this extension to read “.iso” for it to work properly.
You’ve successfully created your own ISO file so that you can bootup your macOS.
The next step is to copy the file over to your Windows machine (using a large USB drive seems to work best). This file will be mounted in your virtual machine later on in the article, so it’s very important that this step is completed successfully.
Creating a mac Virtual Machine on Windows
You’ll want to create a virtual machine, and this is really easy. You’ll open up VirtualBox and click New. You’ll want to have the following parameters selected or entered before clicking Next.
- Name: High Sierra
- Type: Mac OS X
- Version: Mac OS X (64-bit)
Pay attention when selecting the version because you may find that High Sierra is offered as a version when you go to install it. But if it’s not, you can just choose the settings I listed above and they should work fine.
You’ll then be proceeding through all of the settings.
When you come up to the RAM setting, you’ll want to be generous. VirtualBox requires a minimum of 4GB or RAM to run, but the more the better.
Why?
You’ll want to provide at least 4GB to your macOS, or 4096MB to be precise. A general rule of thumb is that if you can spare it, supply more RAM to your virtual machine. RAM will allow the operating system to put more information into memory and retrieve it faster.
For better overall performance, supply as much RAM as you can.
The next steps are also important, and they’ll include:
- Hard Disk: Choose the “Create a virtual hard disk now” setting.
- Choose VDI when choosing the hard disk type.
- Choose Fixed Size instead of Dynamic for added speed.
- Set the size of the drive to at least 25GB.
You’ll now have your virtual machine using the RAM and disk space properly, and you’ll have to work your way through a few screen prompts before having everything setup properly.
Configuring Your VirtualBox to Run macOS High Sierra
We’ve made a lot of progress so far, and now it’s time to configure your virtual machine properly. You’ll see in the main window of VirtualBox that “High Sierra” is listed. Click on this and then click on the “Settings” button.
You’ll want to go to “System” and make sure that the following are unchecked on the Motherboard tab:
- Floppy
- Network
Click on the Processor tab and make sure that you have 2 or more CPUs set for your virtual machine.
The next few settings are rather simple:
- Display: Video Memory with a minimum of 128MB
- Storage: Click “Empty” and then click on the CD at the top right. Choose your High Sierra ISO file
Now you’ll need to click “Ok,” and save all of the changes you’ve made. Close out your VirtualBox now.
Apple is very strict on the system that their operating system runs on, so it’s very important that you do your best to configure your virtual machine in such a way that it tricks the installer to thinking you’re on a retail machine.
We’ll now be going into the Windowscommand prompt.
You’ll do this by:
- Clicking the Start Menu
- Typing “Command Prompt”
- Right-clicking on the Command Prompt desktop app
- Choosing Run as administrator
It’s very important to follow all of the following command prompts exactly. Your goal is to run each command, one by one, hitting the Enter button and waiting for the command to complete successfully.
Remember that VirtualBox needs to be closed before running these commands, or it won’t work properly.
You have to make sure that the virtual machine is properly named “High Sierra” for this method to work. If not, you’ll be able to go back and make changes to the name to get everything to work properly.
Once all of the commands are completed, and there are no errors, you’ll then be able to open up your VirtualBox and get macOS High Sierra installed properly on VirtualBox.
It’s a long process, but we’re almost done with your installation.
Running VirtualBox and the macOS Installer
You’ve almost learned how to install macOS on VirtualBox entirely, and we’re on the home stretch. You’ll want to open up your VirtualBox and then click on your virtual machine that you set up earlier.
Now, click “Start.”
There will be a lot of information displayed on the screen as everything starts running. I recommend stepping away from the machine and letting it run for a few minutes before coming back. Some errors can hang for 5 minutes or longer.
If you’ve done everything properly, you can be confident that the installer will boot properly.
You’ll eventually be presented with the option to pick a Language. If you’ve reached this point, you’re doing very well and are almost ready to run your macOS.
Using A Vm For Macos Operating System
The next steps can be followed:
- Choose your desired language, and click
- Click “Disk Utility” and then
- Click “View” and then “Show All Devices.”
- Click on your empty virtual drive that has been setup and click “Erase.”
- Choose the following settings:
- Name: Macintosh HD
- Format: Mac OS Extended (Journaled)
- Scheme: GUID Partition Map
- Click “Erase” and close Disk Utility when the process is complete.
- Click “Reinstall macOS.”
- Click “Continue.”
You’ll come up to one point where you’ll be asked to choose a hard drive, and you’ll want to select the Macintosh HD partition that you just created with the Disk Utility.
We’ve successfully copied all of the files on the virtual machine, but we’re not done just yet.
Exit your virtual machine and then go back to your virtual machine’s settings. You’ll need to change up your Storage settings. Click on your ISO for High Sierra in the “Storage Tree.” You’ll click that CD icon just like we did earlier and then choose “Remove Disk from Virtual Disk.”
You need to do this to unlink the ISO from your virtual machine.
Start up your virtual machine and you should come across a black screen with the EFI Internal Shell. You’ll want to look for FS1. If this is listed in yellow, click on the virtual machine and then type fs1: and hit the Enter button.
You should be in the fs1 directory.
Using A Vm For Macos High Sierra
Type in the following commands:
- cd “macOS Install Data”
- cd “Locked Files”
- cd “Boot Files”
Now we’ll run the installer by running: boot.efi and hitting enter.
If everything goes well, you’ll come across a graphical installer and will just have to work through the prompts. The virtual machine will reboot eventually and then you’ll need to go through the settings and the rest of the setup process.
Using A Vm For Macos Catalina
Soon enough, you’ll be right inside of macOS, where you’ll be able to start using your mac virtual machine on Windows.
Having a virtualbox mac OS is the easiest method of using mac as and when you need it. In addition, using virtualbox is far less complicated than the dual boot hackintosh method we have looked at previously.
Something I stumbled accross the other day was GitHub - foxlet/macOS-Simple-KVM: Tools to set up a quick macOS VM in QEMU, accelerated by KVM. This script makes creating a macOS VM really simple, especially for someone who does not have access to an actual Mac. This script even enables you to install it headless to use with a server or cloud provider so that you can remotely use the VM through VNC or a similar method.
Resolving Dependencies
The first step is to install the necessary dependencies which will vary based on your distro. The GitHub readme lists the dependencies for most distrobutions, which comes down to qemu and python-pip.
I would also recommend installing virt-manager to add a GUI for simplification of QEMU management. You will also need to install and enable the libvirtd service for this to work.
Getting the Virtual Machine Setup
You need to clone the repository of the script, but your disk will also live in this folder so make sure it is on a drive with probably at least 50 gigabytes of space on it.
git clone https://github.com/foxlet/macOS-Simple-KVM.git
Then go into the folder and execute the jumpstart script:
cd macOs-Simple-KVM && ./jumpstart.sh
This script will download the installation media and any other dependencies that the script needs.
Now you need to actually create the virtual disk for the virtual machine.
qemu-img create -f qcow2 <diskname>.qcow2 <size>G
After creating that disk, you need to append it to the qemu command in basic.sh
$EDITOR basic.sh
If you are intending to run this on a headless system, the readme also recommands adding the following options as well:
Installing macOS on the Virtual Machine
Now just run basic.sh to start the virtual machine with the Clover bootloader
./basic.sh
The clover bootloader should come up, and you can select the first option here to boot into the recovery utility.
First, make sure to format the drive using the disk utility so that the installer lets you use it.
Then exit back into the recovery utility and select re-install macOS and follow the prompts to install. This will take a while and probably downloads dependencies from my experience. One important thing is to not sign into your AppleID at all until later as it may lock your AppleID because of the serial number of the VM. We will fix this later.
Configuring the Virtual Machine and Enabling iMessage
Adding RAM
The first thing to do is to give the virtual machine more memory. Simply edit the basic.sh script again. Locate the line which has the -m 2G and edit it.
$EDITOR basic.sh
Configuring Screen Resolution
You will need to set the screen resolution unless you like to work with 1280x720. Thankfully, this is somewhat simple. I recommend installing Clover Configurator to simplify this process. Either way, you will need to mount the EFI partition and then edit the config.plst contained within the Clover directory.
With Clover Configurator, simply select mount on the proper partition.
Then navigate to GUI and select the proper screen resolution from the dropdown.
Keep in mind that certain screen resolutions do not work properly, so the creator of the script recommends a normal 16:9 or 16:10 resolution.
Enabling iMessage
You should be done with that for now. Next you will need to generate new serial numbers to enable iMessage and other services.
In Clover Configurator, navigate to the RT variables section and choose “UseMacAddr0” in the ROM dropdown. Also enter 0x28 into the BooterConfig and 0x67 into the CsrActiveConfig.
Now select SMBIOS. On the far right there should be a small dropdown. Select any Mac model you’d like from it; I chose a recent iMac model.
Now select Generate New a couple of times for both the Serial Number and SmUUID fields. You can verify that your Serial Number is correct by visiting EveryMac and entering your serial number. If the correct model shows up, then you can proceed, otherwise just generate a new Serial Number. Next, go to Apple’s website and enter the Serial Number there. The website should return you an error that the Serial Number is invalid. This is correct as you do not want to have an actual Mac’s serial number that someone owns. If it does give a model, you need to generate a new Serial Number and repeat the process.
Finishing up Configuration
Save your clover config. Clover Configurator might complain that the partition does not support file history, but you can safely ignore that.
Now shut down the VM. Re-run basic.sh
./basic.sh
Press escape when the VM comes up to enter the virtual machine BIOS. Select Device Manager, then OVMF Platform Configuration, and finally Change Preferred to select the correct screen resolution that you entered earlier. Press F10 to save the settings and then exit the VM after you exit the BIOS.
Adding the VM to Virt-Manager
For actual use, you will probably want to add it to virt-manager.
Luckily, the script author made it very simple. Execute this command to import it into virt-manager:
sudo ./make.sh –add
Lastly, go into virt-manager and add the virtual disk you originally created to the virtual machine and then start and open the virtual machine.
Finishing Up
When Clover comes up, use the arrow keys to select macOS on <diskname>.
If everything is done correctly, simply login to your account and you can now use your macOS VM as usual. You can login to your AppleID to use iMessage and iCloud, and it should work.
The only thing that unfortunately does not work is USB passthrough for an iOS device. The only way to do this is to actually use PCI passthrough to pass the USB controller to the Mac VM which is quite complicated, especially if you use a laptop like me. If you would like to attempt this, there is a nice article on the script’s GitHub repository which covers PCI passthrough.
You now have a fully functional macOS VM with KVM/QEMU.