Whether you want to occasionally test a website in Safari, or try out a little bit of software in the Mac environment, having access to the latest version of macOS in a virtual machine is useful. Unfortunately, you’re not really supposed to do this—so getting macOS running in VirtualBox is, to say the least, tricky.
It’s not impossible, however. Some of the folks at the InsanelyMac forums have figured out a process that works. The only thing not working is sound, which for some reason is highly distorted or nonexistent. Other than that, though, this is macOS High Sierra, running smoothly in VirtualBox.
To make things a little easier for people, we’ve combined methods from a few different forum threads into a single, step-by-step tutorial, complete with screenshots. Let’s dive in.
NOTE: In order to get this working, you will need access to a real Mac in order to download High Sierra. You could, we suppose, obtain a High Sierra ISO by other means, but we don’t recommend it. Borrow a friend’s Mac for an hour if you don’t have one, and you should be fine—everything beyond step one of this tutorial can be done on your Windows PC.
If you’re on a Mac and want a macOS virtual machine for use on that Mac, we recommend checking out out Parallels Desktop Lite instead, because it can create macOS virtual machines for free and is a lot easier to work with.
Ready to get started? Let’s jump in!
Step One: Create a macOS High Sierra ISO File
To start, we’ll need to create an ISO file of macOS High Sierra’s installer, so we can load it in VirtualBox on our Windows machine. Grab your borrowed Mac, head to the Mac App Store, search for Sierra, and click “Download.”
When the process is done, the installer will launch—that’s okay, just close it with Command+Q. We don’t want to upgrade your friend’s Mac; we just need the downloaded files.
To convert those files to an ISO, we’ll need to use the Terminal, which you can find in Applications > Utilities.
First, run the following command to create a blank disk image:
hdiutil create -o /tmp/HighSierra.cdr -size 7316m -layout SPUD -fs HFS+J
Next, mount your blank image:
hdiutil attach /tmp/HighSierra.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/install_build
Now you’re going to restore BaseSystem.dmg from the installer over to the newly mounted image:
asr restore -source /Applications/Install\ macOS\ High\ Sierra.app/Contents/SharedSupport/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
Note that, after doing this, the name of our destination mount point has changed to “OS X Base System/System.” You’re almost done! Unmount the image:
hdiutil detach /Volumes/OS\ X\ Base\ System
And, finally, convert the image you created into an ISO file:
hdiutil convert /tmp/HighSierra.cdr.dmg -format UDTO -o /tmp/HighSierra.iso
Move the ISO to the desktop:
mv /tmp/HighSierra.iso.cdr ~/Desktop/HighSierra.iso
And you’ve got a bootable High Sierra ISO file!
Copy it to your Windows machine using a large flash drive, an external hard drive, or over your local network.
Step Two: Create Your Virtual Machine in VirtualBox
Next, head to your Windows machine, and install VirtualBox if you haven’t already, making sure you have the latest version (seriously, older versions may not work.)
Open it up and click the “New” button. Name your Virtual Machine “High Sierra,” and choose “Mac OS X” for the operating system and “Mac OS X (64-bit)” for the version (as of this writing, “macOS High Sierra” is not offered, but that’s fine.)
Continue through the process. For memory, we recommend you use at least 4096MB, though you can opt for more if you have enough RAM to spare on your Windows machine.
Next, you’ll be asked about your hard drive. Choose “Create a Virtual Hard Disk Now” and click Create.
Choose VDI for hard disk type and click Next. You’ll be asked if you want a dynamically sized drive or fixed. We recommend Fixed Size, since it’s a bit faster, though it’ll take up a bit more hard drive space on your Windows machine.
Click Next. You’ll be asked how big a drive you want; we recommend at least 25GB, which is big enough for the OS and a few applications. Depending on your storage situation, you could offer more, but we don’t think you can really use much less than that.
Click through the prompts, and you’ve created an entry for your virtual machine! Now it’s time to do a little configuration.
Step Three: Configure Your Virtual Machine in VirtualBox
You should see your virtual machine in VirtualBox’s main window.
Select it, then click the big yellow “Settings” button. First, head to “System” in the left sidebar. On the Motherboard tab, make sure that “Floppy” is unchecked.
Next head to the “Processor” tab, and make sure you have at least two CPUs allocated to the virtual machine.
Next, click “Display” in the left sidebar, and make sure Video Memory is set to at least 128MB.
Next, click “Storage” in the left sidebar, then click the “Empty” CD drive. Click the CD icon at the top right, then browse to the High Sierra ISO file you created earlier.
Be sure to click “OK” to finalize all the changes you’ve made, then close VirtualBox. No, seriously: close VirtualBox now, or the next steps won’t work.
Step Four: Configure Your Virtual Machine From The Command Prompt
We’ve made a few tweaks, but we need to make a few more more in order to convince the operating system it’s running on a real Mac. Sadly, there are no options for this from VirtualBox’s interface, so you’ll need to open the Command Prompt.
Open the Start Menu, search for “Command Prompt,” then right-click it and select “Run as administrator.”
You need to run a number commands, in order. Paste the following commands, pressing Enter after each one and waiting for it to complete:
cd "C:Program FilesOracleVirtualBox"
VBoxManage.exe modifyvm "High Sierra" --cpuidset 00000001 000306a9 04100800 7fbae3ff bfebfbff
VBoxManage setextradata "High Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "MacBookPro11,3"
VBoxManage setextradata "High Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "High Sierra" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-2BD1B31983FE1663"
VBoxManage setextradata "High Sierra" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "High Sierra" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1
That’s it! If everything worked, you shouldn’t see any feedback; the commands will simply run. If the command did not work, make sure your virtual machine is named “High Sierra” exactly; if it isn’t, edit the commands above putting your machine’s name in the quotes. Go ahead and close the Command Prompt. We’re heading back to VirtualBox now.
Step Five: Boot and Run The Installer
Re-open VirtualBox, click your Sierra machine, then click “Start.” Your machine will start to boot. You will see a lot of superfluous information as this happens—and I mean a lot—but don’t worry about it. It’s normal, even some of the things that look like errors.
You should only worry if a specific error hangs for five minutes or more. Just walk away and let it run for a bit. If you’ve done everything right, it’ll boot.
Eventually, you’ll see the installer asking you to pick a language:
Pick “English,” or whatever language you prefer, then click “Next.” Before you do anything else, however, click “Disk Utility” then “Continue.”
You won’t see the drive: don’t panic, High Sierra hides blank drives by default. In the menu bar, click “View” followed by “Show All Devices.”
You should now see your empty virtual drive in the sidebar. Click it, then click the “Erase” option.
Name the drive “Macintosh HD,” and leave the other two settings as-is: “Mac OS Extended Journaled” and “GUID Partition Map”. Do not create an AFS partition, because it will not work and you’ll have to start over with a new virtual hard drive. Click “Erase,” then close Disk Utility when the process is complete. You’ll be brought back to the main window.
Select “Reinstall macOS” then click “Continue.” You’ll be asked to agree with the terms.
Agree and you’ll eventually be asked to choose a hard drive; select the partition you just made.
The installation will begin! This might take a while, so be patient. Eventually your virtual machine will restart and take you…back to the installer. Don’t panic: this is to be expected.
Step Six: Boot Installer Stage Two From the Virtual Hard Drive
At this point the installer has copied files onto the virtual hard drive, and expects to boot from there. For whatever reason this does not work on the virtual machine, which is why you’re seeing the installer again.
Turn off your virtual machine and open its settings. Head to Storage, click “HighSierra.iso” in the “Storage Tree” panel, then click the CD icon at top-right and click “Remove Disk from Virtual Drive.” This will completely disconnect our installation ISO.
Now start up the virtual machine and you’ll see this lovely screen.
This is the EFI Internal Shell, and as long as you see “FS1” listed in yellow, you can use it to launch the rest of the installer. Click the virtual machine and allow it to capture you mouse and keyboard, then type
fs1: and hit Enter. This will switch directories to FS1, where the rest of the installer is located.
Next we’re going to run a few commands in order to switch to the directory we need:
cd "macOS Install Data" cd "Locked Files" cd "Boot Files"
Now we can run the installer itself with the following command:
The installer will pick up where it left off. First you’ll see a series of text, like before, but eventually you’ll see the GUI installer come back. (Don’t worry, you only have to go through this process once.)
We’re getting there, just need a little bit more patience.
Step Eight: Log Into macOS High Sierra
Eventually the virtual machine will reboot again, this time into macOS High Sierra. If that doesn’t happen, try ejecting the ISO from the Virtual Machine. When High Sierra does boot, you’ll need to go through choosing your country, setting up a user, and the rest of the initial setup process.
Eventually, you’ll make it to the Mac desktop. Yay!
You can now try out any Mac software, though some functions, like FaceTime and Messages, won’t work because Apple won’t recognize your computer as a real Mac. But a lot of the basic stuff should work. Have fun!
Step Eight (Optional): Change Your Resolution
By default, your virtual machine will have a resolution of 1024×768, which is not a lot of room to work with. If you try to change the resolution from within macOS, however, you will see no option to do so. Instead, you need to enter a few commands.
Shut down your Virtual Machine by shutting down macOS: click the Apple in the menu bar, then click “Shut Down.” Next, close VirtualBox entirely (seriously, this step will not work if VirtualBox is still open!) and head back to Windows’ Command Prompt as an admin. You need to run the following two commands:
cd "C:Program FilesOracleVirtualBox"
VBoxManage setextradata "High Sierra" "VBoxInternal2/EfiGopMode" N
In the second command, you need to replace the
N with a number from one to five, depending on what resolution you want:
- 1 gives you a resolution of 800×600
- 2 gives you a resolution of 1024×768
- 3 gives you a resolution of 1280×1024
- 4 gives you a resolution of 1440×900
- 5 gives you a resolution of 1920×1200
Start up VirtualBox, load up your virtual machine, and it should boot to your preferred resolution!
From now on, you can open VirtualBox for any Mac-related testing you want to do. Again, you’ll see a lot of errors pop up during boot, but they’re fine; ignore them. Also, remember that audio won’t work, nor will things like FaceTime or iMessage, which require a real Mac. This isn’t going to be perfect, which is to be expected from an entirely unsupported setup. But it’s macOS, in a virtual machine, and that’s not bad! Be sure to check out our guide to VirtualBox’s advanced features to get the most out of your machine, too.
One more thing: a huge shout-out to Chad S. Samuels, without whom I could not have updated this guide for High Sierra. Thank you so much!