Documentation about optional configuration, iCloud and iMessage connectivity, resuming the script by stages, and other topics can be viewed with the following command:./ documentation less -R Press enter to review the script configuration vmname='macOS' macOSreleasename='Catalina' # install 'HighSierra' 'Mojave. A VirtualBox host can be run on Linux, Windows, or macOS. Using VirtualBox, supervisors can adapt the host from ISO images or VDI / VMDK / VHD images. The most important and beneficial thing for a user is that it is free anyone can use it and easily can run as administrators. In order to install Guest Additions and make VirtualBox full screen for Linux guests, do the following: In the VM window hit Devices Insert Guest Additions CD image. If autorun is enabled, you will see the autorun window. Hit Run and enter your password to confirm running the installer.

VirtualBox is a popular virtualization application that provides a lot of features. VirtualBox provides some extra features to the existing features with the Extension Pack. In this tutorial, we will learn what is Extension Pack and how to install an extension pack on Windows, Linux, or via command line.

What Is VirtualBox Extension Pack

VirtualBox Extension Pack provides some extra features to the existing VirtualBox features which are very useful. VirtualBox extension is provided as a binary file and provided by the Oracle VirtualBox team. VirtualBox Extension Pack provides features like USB 2.0, 3.0, Host Webcam Pass-through, VirtualBox Remote Desktop Protocol (VRDP), AES Encryption of Disk Images, Intel PXE Boot ROM.

  • Support for USB 2.03 and 3.0 will provides support for USB protocol for version 2.0 and 3.0. With this feature, USB devices can be pass through the host USB devices into the guest operating systems.
  • Host Webcam Pass-through feature can pass the host webcam to the guest operating systems.
  • VirtualBox Remote Desktop Protocol (VRDP)feature will provide access to the guests via RDP protocol. This feature can be very useful even the guest virtual machine does not has any network access. The RDP access can be provided via the host operating system network connection via some ports.
  • AES Encryption of Virtual Machine Disk Images feature can be used to encrypt the virtual machines disk images via a reliable and secure AES algorithm. The data can be encrypted with 128 or 256-bit keys.
  • Intel PXE Boot ROM feature is used to boot a remote operating system via the network. This can be also used to install the operating system to the guest via the computer network. The install or boot files should be prepared in /VirtualBox/TFTP directory before boot.

Download VirtualBox Extension Pack


VirtualBox Extension Pack is provided as a binary file. This binary file can be used for all operating systems installation because it will be used by the existing VirtualBox. The Extension Pack can be downloaded from the following link. The size of the Extension Pack is about 22MB.

Install VirtualBox Extension Pack On Windows, Linux, and Ubuntu

In the Windows, Linux, and Ubuntu operating system from the VirtualBox main screen, we will click to the Preferences button like below. This will open the VirtualBox related settings screen. For Linux and Ubuntu systems we should start the VirtualBox with root privileges with the following command.

In the VirtualBox – Preferences screen we will select the Extensions screen like below. which will list existing extensions. But as we can see there is not extension currently installed.

We will click on the plus button which can be shown above and select the extension pack like below. then we will click to the Open.

We will see the following question where it will ask us to install the extension pack. We will click on the install as below.

We will be asked to accept the provided license agreement. We have to scroll down to the bottom and click to the I Agree button like below.

As this extension pack requires some Administrative rights we will be asked with the following screen for Administrative rights for the Windows operating systems.

After the extension pack is successfully installed we will be informed that The extension pack was installed successfully.

Also, the installed extension pack will be listed in the preferences Extensions menu like below. with Name and Version information while showing it is active or passive.

Install VirtualBox Extension Pack via Command-Line VBoxManage

Extension Pack of VirtualBox can be also installed from the command-line interface. In order to install an extension pack, we will use the VBoxManage command with the extpack install option like below. First, we will download the extension pack from the following URL and then navigate to the download path.

Now we will use the VBoxManage command like below.


We will be asked to accept the License Agreement. We will accept the license agreement with the Y like below and the installation will continue. When the installation of the extension pack is successful we will see the message Successfully installed 'Oracle VM VirtualBox Extension Pack'.

Uninstall/Remove VirtualBox Extension Pack

We can uninstall the VirtualBox Extension Pack from the GUI easily. We will open the Extension Pack List from Preferences->Extensions. We will see the list of installed VirtualBox Extensions Packs. We will select the version we want to uninstall or remove and then click to the x of the right side like below which is red.

We will be asked for the Extension Pack removal like below and we will click to the Remove button.

You can run MacOS in Virtualbox. Because? Because.

In the pursuit of Hackintosh, you need a Mac. That’s well and great, but I didn’t want to screw around with my partner’s Macbook. So what if you want to sandbox something? Virtualbox!

I had no expectations that this was going to work. OS X has always been runnable in Virtualbox for a while, but the performance has normally been lacklustre. While it’s not exactly daily-driver level, the performance in Virtualbox wasn’t too bad!

The macOS Virtualbox option is designed for genuine Apple hardware. You will not get community support from Virtualbox if you have trouble with this process, as it’s against Apple ToS.

VMware more your jam? We’ve got this working in there too.

🤔️ What do I need?

You need a donor Mac to start this process. You will not need access to it permanently, but just during the process of creating an ISO for your VM to setup with. Else, you need:

  • A Mac to create an ISO with.
  • MacOS Mojave installer from the Mac App Store.
  • Virtualbox (Windows, Linux or MacOS).
    • Virtualbox Extension Pack is required.
  • At least 4GB of RAM (8GB or more recommended).
  • 40GB of free disk space (more preferred).
  • 2 core CPU or more.

Install Macos Virtualbox Linux Download

This guide will discuss installing MacOS Mojave, however installation process should be similar for all MacOS versions.

⚠️ At the time of writing, Virtualbox and Hyper-V cannot co-exist on Windows. MacOS is also not installable on Hyper-V. I use Linux in my screenshots as I use Docker on Windows. This also includes Windows Subsystem for Linux, which tripped me up from installing.

💿 Creating the ISO

Virtualbox installs generally prefer to use an ISO file, which unfortunately will require some handiwork to get a hold of. Persevere and you will get there!


On the MacOS machine, download the Mojave installer. Don’t worry about actually running this application, as we’re going to use some terminal magic to build the ISO from the package.

This process is not affected by MacOS Installer expiry.If your MacOS installer has expired, you can continue with this guide.

Once the package has been downloaded, pop open Terminal (Utilities folder in Launcher), and run the following commands:

hdiutil create -o /tmp/Mojave.cdr -size 8000m -layout SPUD -fs JHFS+

This will create a virtual ‘disc’ stored in your temporary directory. This is what we’ll stuff the Mojave installation stuff into.

hdiutil attach /tmp/Mojave.cdr.dmg -noverify -nobrowse -mountpoint /Volumes/installer_goes_here

Now MacOS can ‘see’ your disc as an actual disc, ready for writing to!

asr restore -source /Applications/Install macOS -target /Volumes/installer_goes_here -noprompt -noverify -erase

We’re now grabbing the installation DMG from within the updater package, and storing it within the disc image. This will rename the disc image, so don’t panic that ‘installer_goes_here’ has vanished.

Now, detach the image from our MacOS. You can just eject it like regular DMGs. If not, run the command:

hdiutil detach /Volumes/OS X Base System

(it may change since OS X is legacy. To check, run ls /Volumes and see if it’s there, renamed).

Now for the final process, let’s convert our CDR image to an ISO!

hdiutil convert /tmp/Mojave.cdr.dmg -format UDTO -o ~/Desktop/Mojave.iso

You should now have a file on the Mac desktop called ‘Mojave.iso’. Congratulations, you have your installation disc! Copy this over to where your Virtualbox is setup. The Mac is no longer needed at this point.

🛠️ Setting up Virtualbox

⚠️ Before continuing, install the Virtualbox Extension Pack, if you haven’t already. This comes with a special USB 3 driver that without, the Mac simply won’t see USB devices.

Virtualbox has the option for a MacOS virtual machine in it’s New VM dialog, but we will need to make further adjustments to make it truly Mac-ready.

Pop open Virtualbox, and Create a new Virtual Machine. Name this MacOS Mojave, and set it to Mac OS X (64-bit).

Set the RAM to 4096 MB (or higher if you can achieve it!).

When creating the disk, you can use either format versions. Dynamic will not immediately take up the storage size you chose, whereas Static immediately reserves the chosen size for the VM. The latter is slightly better for performance.

Now you should have a new, primed MacOS machine. But you will need to run some commands now. This can be hit-and-miss, and may require some Google-fu. The following works for my AMD FX computer:

Windows? Change VBoxManage to 'C:Program FilesOracleVirtualBoxVBoxManage.exe' (if you didn’t change your Virtualbox install location).

The above does the following, in order of command:

  • Sets a known CPU ID set that MacOS will recognise.
  • Especially for AMD machines, changes what MacOS sees as your processor to something it supports.
  • Tells MacOS you’re installing Mojave onto a mid-2010 iMac. You can change this to your preference.
  • These two specify a fake DMI, typically found in Apple PCs.
  • A device key to pass system checks.

Before starting the VM, open the VM settings and make the following changes:

  • System > Processor > Processor(s) is 2 or more.
  • System > Acceleration > uncheck Enable Nested Paging.
  • Display > Screen > Video Memory is 128MB.
  • USB > USB 3.0 Controller.
    • If greyed/not there, you did not install additions.

With all that done, we’re ready to start the VM!

You should be greeted with the following screen:

Click on the folder icon, and find your ISO created on the Mac before, then click Start.

And wait. yes, this process takes a long time. If your installation stops, try googling the last output message to see if there is a community fix, or post below… Otherwise, this is generally a slow process.

If all has gone well, you should be greeted by the MacOS installer language selection. If so, you’re almost there! On the top menu, open Utilities > Disk Utility.

There should be a disk named VBOX HARDDISK or similar. This is the VDI you created during the setup process, and not your actual hard drive. So go ahead and full-erase this disk, with Mac OS Extended (Journaled) and GUID Partition Map.

Once the disk formatting has completed, close it down. You should now be able to start the installation!

Once this is complete and you filled all the required details in, congratulations! You’re running MacOS Mojave within Virtualbox!

❓ What works?

✔️ Does

  • Screen (No 3D).
  • Regular input methods (mouse sharing).
  • Networking.
  • USB devices.
  • Mac App Store.

Virtualbox Linux Images

At the end of the day it’s still a virtual machine, and a technically unsupported one at that. However, considering the matter it’s still impressive how Virtualbox can cope with MacOS.

Files can be shared using typical Windows share features. If you share a folder on your network from your host machine, your Mac VM should be able to connect to it.

🌟 Special Thanks

This required a lot of Googling, and these are the people who saved me at the end of the process!

  • This How-to Geek article, that started this whole process. They have a much better step-by-step guide on this!
  • Forchia on Reddit for a different instruction set.
  • miranhasan on Reddit for AMD processors.
  • kvotheV on Reddit for disabling nested paging.

🐛 Troubleshooting

You get Guru Meditation, “A critical error has occurred while running the virtual machine and the machine execution has been stopped” when machine gets to RandomSeed.

This is a difficult one, and will require investigation. I checked the logs as the error message said, and discovered:

HM: HMR3Init: Attempting fall back to NEM: AMD-V is not available

If you’re on an Intel processor, it’ll likely say VT-x instead.

Obviously, check if this is enabled. If you’re on a legacy BIOS computer, it’s a straightfoward scan for AMD-V/VT-x in your settings. If it’s UEFI, you’re gonna have to Google it.

Strangely, on my machine it was enabled. Supposedly Virtualbox and Hyper-V can run side-by-side, so at this point I decided to remove Hyper-V, to see if that would improve. It didn’t, but I forgot something. For this to work, you must turn off Windows Subsystem for Linux!

Install Macos Catalina Virtualbox Linux

I completely forgot that WSL uses Hyper-V, and apparently still does when it’s disabled. Unfortunately, it would seem (for me at least) you need to trade it off for macOS in Virtualbox.

I will retest this when WSL2 is launched.