macOS is an operating system that runs on every Mac. It was previously named Mac OS X and later OS X. MacOS was developed and marketed by Apple Inc from 2001. MacOS succeeded classic MacOS, a macintosh operating system with nine releases from 1984 to 1999. The first desktop version of macOS X was 10.0, released in 2001 and an update 10.1 coming a year later. Apple in 2012 shortened the name “macOS X” to “OS X” then later in 2016 changed it to macOS in order to align with other Apple’s operating systems i.e iOS, watchOS, and tvOS.
The sixteenth version of macOS (10.15) was called macOS Catalina which was the first version of macOS to support 64-bit applications and also the first to include Activation Lock. After these 16 distinct versions of macOS 10 came macOS Big Sur (version 11) in 2020 and macOS Monterey in 2021. You can check out detailed article on macOS Big Sur vs Catalina.
macOS Mojave has the following major features:
- Has the dark mode.
- Supports desktop stacks
- Has dynamic desktops
- Has improved OS and Safari security
- screenshot markup
- Continuity camera
In this guide, I will demonstrate how to install macOS Catalina & Big Sur on VirtualBox.
macOS installation on VirtualBox requirements
The following are macOS installation requirements on Virtualbox.
- Primary display resolutions supported are 5120×2880, 2880×1800, 2560×1600, 2560×1440, 1920×1200, 1600×1200, 1680×1050, 1440×900, 1280×800, 1024×768, 640×480
- VirtualBox version 5.2 and above.
- RAM above 4 GB
- Storage size above 25 GB.
- icloud and imessage connectivity and NVRAM
Step 1: Install required Dependencies
There are several dependencies required when installing macOS on VirtualBox.
These are Wget, Coreutils, dmg2img, xxd, bash-completion, gzip and unzip
### RHEL/ Centos 8/ Rocky Linux 8 / Fedora ###
sudo dnf install wget coreutils vim-common p7zip p7zip-plugins bash-completion gzip unzip
#### Debian/Ubuntu ###
sudo apt-get install wget coreutils dmg2img xxd bash-completion gzip unzip
### macOS ###
brew install wget bash-completion gzip unzip
brew install coreutils dmg2img
Step 2: Download and Install macOS on Virtualbox
We will proceed and install macOS Catalina on VirtualBox using the push-button installer.
Here we will download macos-guest-virtualbox.sh using Wget as below.
### With curl ###
curl -sLO https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh
### With wget ###
wget https://raw.githubusercontent.com/myspaghetti/macos-guest-virtualbox/master/macos-guest-virtualbox.sh
Then make the file executable.
chmod +x macos-guest-virtualbox.sh
Then proceed and install as below:
./macos-guest-virtualbox.sh
Sample Output:
Push-button installer of macOS on VirtualBox
This script installs only open-source software and unmodified Apple binaries,
and requires about 50GB of available storage, of which 25GB are for temporary
installation files that may be deleted when the script is finished.
The script interacts with the virtual machine twice, please do not interact
with the virtual machine manually before the script is finished.
Documentation about optional configuration, iCloud and iMessage connectivity,
resuming the script by stages, and other topics can be viewed with the
following command:
./macos-guest-virtualbox.sh documentation | less -R
Press enter to review the script configuration
vm_name="macOS"
macOS_release_name="Catalina" # install "HighSierra" "Mojave" "Catalina"
storage_size=80000 # VM disk image size in MB, minimum 22000
storage_format="vdi" # VM disk image file format, "vdi" or "vmdk"
cpu_count=2 # VM CPU cores, minimum 2
memory_size=4096 # VM RAM in MB, minimum 2048
gpu_vram=128 # VM video RAM in MB, minimum 34, maximum 128
resolution="1280x800" # VM display resolution
These values may be customized as described in the documentation.
Press enter to continue, CTRL-C to exit
You will be asked to press enter to review the script configuration, this gives the specifications of the VM to be created in VirtualBox such as the VM name, disk size the OS to be run e.t.c. Continue by pressing enter.
The installation starts as below;
Checking that VirtualBox starts the virtual machine without errors.
Checking that VirtualBox uses hardware-supported virtualization.
stage: prepare_macos_installation_files
Downloading Apple macOS Catalina software update catalog
Catalina_sucatalog 100%[===================>] 6.43M 4.34MB/s in 1.5s
Trying to find macOS Catalina InstallAssistant download URL
Catalina_sucatalog_ 100%[===================>] 40.05K --.-KB/s in 0.02s
Found download URL: http://swcdn.apple.com/content/downloads/26/37/001-68446/r1dbqtmf3mtpikjnd04cq31p4jk91dceh8/
.........
This opens and closes VirtualBox as it is checking and creating the macOS VM on it. Wait patiently for the downloading files to finish
Downloading macOS installation files from swcdn.apple.com
Catalina_BaseSystem 100%[===================>] 1.97K --.-KB/s in 0s
Catalina_InstallInf 100%[===================>] 1.55K --.-KB/s in 0s
Catalina_AppleDiagn 100%[===================>] 3.00M 2.73MB/s in 1.1s
Catalina_AppleDiagn 100%[===================>] 328 --.-KB/s in 0s
Catalina_BaseSystem 100%[===================>] 475.53M 2.28MB/s in 3m 56s
Catalina_InstallESD 100%[===================>] 7.21G 2.23MB/s in 54m 42s
With a successful download of the above files, the macOS Catalina installation begins.
Splitting the several-GB InstallESDDmg.pkg into 1GB parts because
VirtualBox hasn't implemented UDF/HFS VISO support yet and macOS
doesn't support ISO 9660 Level 3 with files larger than 2GB.
creating file 'Catalina_InstallESD.part00'
creating file 'Catalina_InstallESD.part01'
creating file 'Catalina_InstallESD.part02'
creating file 'Catalina_InstallESD.part03'
creating file 'Catalina_InstallESD.part04'
creating file 'Catalina_InstallESD.part05'
creating file 'Catalina_InstallESD.part06'
creating file 'Catalina_InstallESD.part07'
....
Creating VirtualBox 6 virtual ISO containing macOS Terminal script
for partitioning and populating the bootable installer virtual disk.
Starting virtual machine "macOS".
This should take a couple of minutes. If booting fails, exit the script by
pressing CTRL-C then see the documentation for information about applying
different CPU profiles in the section CPU profiles and CPUID settings.
Until the script completes, please do not manually interact with
the virtual machine.
Press enter when the Language window is ready.
While at this step, VirtualBox is launched and you will see the created macOS running.
When it has finished loading, you will see the language menu.
When you see this language menu on VirtualBox, go back to your terminal and press enter, do not select anything.
Next, you will see the macOS Utilities window.
When you see it on VirtualBox, go back to the terminal and press enter. The next window you will see is the Terminal command prompt.
Press enter on the terminal when you see it appear on VirtualBox. Wait patiently until disk partitioning is done. This happens on the VirtualBox Terminal command prompt.
When this is complete, the macOS VM reboots and the process repeats itself. You are required to do similar actions as above (pressing enter on the terminal after seeing the displayed item)
On completion, you will see this on your terminal.
After the installer finishes preparing and the EFI and NVRAM files are copied,
macOS will install and boot up when booting the target disk.
Please wait
For further information, such as applying EFI and NVRAM variables to enable
iMessage connectivity, see the documentation with the following command:
./macos-guest-virtualbox.sh documentation | less -R
That's it! Enjoy your virtual machine.
stage: prompt_delete_temporary_files
Temporary files may be deleted when the virtual machine is powered off
and without a suspended state by executing the following command at the script's
working directory:
./macos-guest-virtualbox.sh prompt_delete_temporary_files
- In the mean time installation is on going on VirtualBox terminal window prompt. When it is complete, the system reboots but takes quite sometime.
Step 3: Set up macOS Catalina on VirtualBox
When the system finishes loading, you will see this window. Here select your country.
Then select your prefered language and keyboard, the prefered language and keyboard for the Country you set is already given, although you can edit by clicking customize settings
Then next, you will see this privacy settings window.
The next step is choosing whether to transfer files from another mac or not.
Then log in to your apple account. Here enter your account ID/email address and password
You will be required to give the code sent to your device.
If you see this error at this point, just skip and log in to the apple account after completing this setup.
Next, agree to the License terms.
Now, create a user account and password.
Finish up with the express setup and analytics page.
The settings made are then applied.
Now we have successfully installed macOS Catalina on VirtualBox.
Step 4: Upgrade from macOS Catalina to Big Sur
Navigate to System preferences> Software Update. This will automatically start checking for macOS Big Sur Beta version update
With the update found (macOS Big Sur) click on Upgrade now. This starts downloading the macOS Big Sur. Remember this process might take some time depending on your internet speed.
When the download is complete, you will see this pop-up
Click continue and install macOS Big Sur. Agree with the terms and conditions.
Agree the new Big Sur to be installed on your VM’s hard disk.
Enter your password to authorize this installation.
The installation starts. This might take few minutes.
When complete, restart the system.
This takes some time as the system is still doing Big Sur installation. Wait patiently.
Step 5: Delete Temporary Files After Installation
Power off the Virtual Machine and delete temporary files using your client machine terminal.
./macos-guest-virtualbox.sh prompt_delete_temporary_files
Accept the files to be deleted:
Catalina selected to be downloaded and installed
stage: prompt_delete_temporary_files
The following temporary files are safe to delete:
ApfsDriverLoader.efi
AppleImageLoader.efi
AppleSupport-v2.0.4-RELEASE.zip
AppleUiSupport.efi
Catalina_AppleDiagnostics.chunklist
Catalina_AppleDiagnostics.dmg
Catalina_BaseSystem.chunklist
Catalina_BaseSystem.dmg
Catalina_BaseSystem.vdi
Catalina_bootable_installer.vdi
Catalina_installation_files.viso
Catalina_InstallESDDmg.pkg
Catalina_InstallESD.part00
Catalina_InstallESD.part01
Catalina_InstallESD.part02
Catalina_InstallESD.part03
Catalina_InstallESD.part04
Catalina_InstallESD.part05
Catalina_InstallESD.part06
Catalina_InstallESD.part07
Catalina_InstallInfo.plist
macOS_bootinst.txt
macOS_configure_nvram.txt
macOS_csr-active-config.bin
macOS_MLB.bin
macOS_populate_bootable_installer_virtual_disk.viso
macOS_populate_macos_target_disk.viso
macOS_ROM.bin
macOS_startosinstall.txt
macOS_startup.nsh
macOS_system-id.bin
Delete temporary files listed above? [y/N] y
Now power on your macOS VM and enjoy!
Conclusion
In the above article, I have demonstrated how to install macOS Catalina & Big Sur on VirtualBox. I hope this article was of value to you.
See more articles