Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Install macOS Sierra in VirtualBox on macOS host

Step 1 (Creating a bootable macOS Sierra ISO for VirtualBox):

  1. hdiutil attach /Applications/Install\ macOS\ Sierra\ Public\ -noverify -nobrowse -mountpoint /Volumes/install_app
  2. hdiutil create -o /tmp/Sierra.cdr -size 7316m -layout SPUD -fs HFS+J
  3. hdiutil attach /tmp/Sierra.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/install_build
  4. asr restore -source /Volumes/install_app/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase
  5. rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages
  6. cp -rp /Volumes/install_app/Packages /Volumes/OS\ X\ Base\ System/System/Installation/
  7. cp -rp /Volumes/install_app/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System/BaseSystem.chunklist
  8. cp -rp /Volumes/install_app/BaseSystem.dmg /Volumes/OS\ X\ Base\ System/BaseSystem.dmg
  9. hdiutil detach /Volumes/install_app
  10. hdiutil detach /Volumes/OS\ X\ Base\ System/
  11. hdiutil convert /tmp/Sierra.cdr.dmg -format UDTO -o /tmp/Sierra.iso
  12. mv /tmp/Sierra.iso.cdr ~/Desktop/Sierra.iso

Step 2 (Installing in VirtualBox)

This is pretty straightforward.

  1. Create a new El Capitan (there is no option for Sierra at the moment) machine. Leave everything at default
  2. Boot the virtual machine from the Sierra.iso you created, which you'll find on your desktop. I had to mash F12 while the machine was starting up and then choose 'EFI CD/DVD' in the boot manager. YMMV.
  3. The install process should be familiar to you. If not, you probably shouldn't be playing with a beta OS ;)
  4. Grab a coffee, the 15 minute estimation the installer gives you is a complete work of fiction. My install took over an hour.
  5. Once installed, reboot and complete the new user process. Skip the AppleID login bit, it'll fail on a VirtualBox.
  6. Shut down the virtual machine and quit VirtualBox.
Copy link

TeodorKolev commented Feb 7, 2017

I have done steps from 1 to 12 and I get: Disk image is corrupted

Copy link

christianbauer commented Apr 14, 2017

If you get a black screen when starting the VM, change the Chipset to PIIX3. In the Installer, open the Disk Utility and Erase the virtual disk before installing.

Copy link

blimmer commented Apr 23, 2017

I followed these instructions and I get stuck at this screen:

gIOScreenLockState 3, hs 0, bs 0, now 0, sm 0x0

anyone have ideas?

Copy link

kyeb commented Apr 25, 2017

Same issue here. Any solution for you yet?

Copy link

dbodyas commented May 1, 2017

Copy link

adespoton commented May 6, 2017

Having the same issue guys, but I also tried a different image creation technique and a few other settings.

Instead of this script, I just created an 8GB RW DMG, mounted it, and used sudo Install\ macOS\ --volume /Volumes/Install\ macOS\ Sierra/ --applicationpath /Applications/Install\ macOS\

Then I unmounted the disk, and used VBoxManage convertdd Install-10.12.4.dmg Install10.12.3.vdi to create a vdi from it. Added that to my VM and...

...exact same results as this method.

To avoid the black screen, I found I had to increase video mem from 16 to 112 or more. But it still stalls out at the same point. The log provides no useful info.

Copy link

McManoli commented May 20, 2017

Hi there,

The problem I guess is in macOS Sierra installer 10.12.4

I used the above technique with previous version of installer 10.12.3 and works with no problems. Then you can just download and install combo update for latest one, which is 10.12.5 these days and thats it.

Copy link

si294r commented Jun 7, 2017

Hi @mcmanole,

Where i can get macOS Sierra installer 10.12.3 ?

Copy link

hist0gram commented Jun 12, 2017

trying to make a iso for the new 10.13 beta but get stuck at the step:

asr restore -source /Volumes/install_app/BaseSystem.dmg -target /Volumes/install_build -noprompt -noverify -erase

get the error:

Could not recognize "/Volumes/install_app/BaseSystem.dmg" as an image file
Could not retrieve scan information - Invalid argument

it seems that the install ESD does not include a BaseSystem.dmg anymore ... from what I can see it only includes the following:


not sure where to go from here but would be great to get a high Sierra version working on a VM for some testing.


Copy link

mabam commented Jul 3, 2017

The following worked for me:

Create the ISO for VirtualBox as described here (luckily I already downloaded Sierra in January, so I have version 10.12.2 and don't run into problems as mentioned by McManoli).

Then perform step 3 and 4 from this guide: (don't use the downloads provided there).
Except that in step 3, you create a blank image i.s.o. using an existing one. And in step 4, add the ISO created above as optical medium and change the MAC address of the network adapter to a random one of the addresses found here: .

The following lines are based on step 5 of above mentioned guide:

cd /Applications/
VBoxManage modifyvm "macOS Sierra" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "BOARD-PRODUCT"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "SERIAL"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "macOS Sierra" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

Substitute "macOS Sierra" by your VM name. "BOARD-PRODUCT" and "SERIAL" have to be substituted by values obtained by Chameleon Wizard. You could use a different "System Product" than "iMac11,3". See on how to obtain the correct information from Chameleon Wizard (ignore the rest of the guide as it is not for VirtualBox).

(See under "modifications" on how to change the resolution.)

Enter your version of the above lines in Terminal one by one.

Start the VM and install Sierra.
I have added 3D-acceleration afterwards.

You can even log in with your Apple ID and also authorize iTunes. My host system is too old to backup or update my iPhone, so I do that using this Sierra VM.

If you have already installed Sierra as a VirtualBox VM, add the lines above (make sure you don't create duplicates) and enter into Terminal:
sudo rm /Library/Preferences/
sudo launchctl load -w /System/Library/LaunchDaemons/
(Taken from )
Restart the VM and you should be able to use your AppleID.

• During startup Sierra reports no valid driver for the USB 3 interface. I had trouble updating my iPhone when using USB 3. So I set it back to USB 2.
This one is a bit specific:
• When updating iOS you sometimes have to reconnect the iPhone manually via the menu a few times. If you have iTunes installed on the host as well, make sure to delete the from the login items of the host first or you go crazy.

Copy link

soomonsoon commented Aug 15, 2017

I'm new, so apologies if this is obvious or already asked in a different way. I'm getting errors about legacy APIs, shown in the attached image. I have no idea how to fix that or what the root of the problem is. Does anyone know?

screen shot 2017-08-15 at 11 08 09 am

Copy link

ron23 commented Aug 29, 2017

same issue ^^^.
Did you found a solution?

Copy link

aeekayy commented Aug 29, 2017

@soomonsoon @ron23 I'm seeing the same issue. Any ideas on what's up?

Copy link

lpbas commented Sep 1, 2017

I'm seeing the same issue as you guys (latests Sierra installer from the AppStore). If anyone has a solution please let us know.

Copy link

DariushMazlumi commented Sep 3, 2017

same here ):

Copy link

oscarsaleta commented Sep 15, 2017

FWIW, check this geerlingguy/macos-virtualbox-vm#24 where they discuss the same issue and seem to have been able to finally install the VM

Copy link

xy90321 commented Sep 24, 2017

since the official macOS app already embedded with a tool to help us make install media, there's no need to manually create install image by those cp commands.

try the commands below which I've verified on my mac and successfully create a VM on my mac host.

  1. create a blank disk image (by using the command provided in Step1.2)

hdiutil create -o /tmp/Sierra.cdr -size 7316m -layout SPUD -fs HFS+J

  1. mount the blank disk image you've created and find out the volume name (normally should be '/Volumes/untitled' )

  2. create the install media by using the official tool

sudo /Applications/Install\ macOS\ --volume "/Volumes/untitled" --applicationpath /Applications/Install\ macOS\ --nointeraction

notice: replace the content in the double quotation mark with the volume name you found in 2)

  1. unmount the disk image that mounted automatically in 3), which should be named 'Install macOS Sierra'.

  2. convert the disk image to a loadable virtual drive image (by using the command provided in Step 1.11)

hdiutil convert "/tmp/Sierra.cdr.dmg" -format UDTO -o "/tmp/Sierra.iso"

then here you go.

Copy link

sghiassy commented Sep 25, 2017

Or skip all of this and do it the easy way...

  1. Install Vagrant
  2. In the cli type: vagrant init jhcook/macos-sierra; vagrant up
  3. Grab cup of

P.S: Make sure you have Virtual Box Extension pack installed (link)

Copy link

darkn3rd commented Nov 15, 2017

It seems like you have to enable USB3 according to this ticket:

Anyone know how to do that through the command line with VBoxManage?

Copy link

drobtitan commented Nov 26, 2017

Download all Mac OS X versions from this place:

Copy link

titocr commented Jan 8, 2018

@sghiassy that is cool!

Copy link

bwgchung commented Feb 14, 2018

I have experienced getting stuck at the boot up process. I fixed it by setting more than one processor, 8 GB RAM and max graphic RAM.

The solution I got is to set more than one processor to the VM.

Copy link

mbigras commented May 25, 2018

I experienced an error while using the jhcook/macos-sierra box.

==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "b8a680e3-383b-44be-be74-8e914a8fb7e5", "--type", "headless"]

Stderr: VBoxManage: error: Implementation of the USB 2.0 controller not found!
VBoxManage: error: Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings.
VBoxManage: error: Note! This error could also mean that an incompatible version of the 'Oracle VM VirtualBox Extension Pack' is installed (VERR_NOT_FOUND)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

You can manually disable USB via VirtualBox but that customization can also be made via the Vagrantfile. Details discussed at:

jonschipp/vagrant#3 (comment)

Vagrant.configure("2") do |config| = "jhcook/macos-sierra"
  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--usb", "on"]
    vb.customize ["modifyvm", :id, "--usbehci", "off"]

Copy link

samiyuru commented Apr 11, 2020

If you are trying this with Catalina you can use this script to create the installer media that can be mounted directly on Virtualbox. More information can be found here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment