All Projects → myspaghetti → Macos Virtualbox

myspaghetti / Macos Virtualbox

Licence: gpl-2.0
Push-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox for Windows, Linux, and macOS

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Macos Virtualbox

Deploy Docker Swarm
Deploy scripts for docker-swarm.
Stars: ✭ 17 (-99.85%)
Mutual labels:  bash-script, virtualbox
Work Dummy
Ever needed to faff or pretend to be seriously at work? This repository hosts a powershell script that'd make anyone think you definitely bursting your ass solving problems.
Stars: ✭ 26 (-99.78%)
Mutual labels:  bash-script
Vagrant Projects
Vagrant projects for Oracle products and other examples
Stars: ✭ 642 (-94.48%)
Mutual labels:  virtualbox
Vagrant Docker
A lightweight Docker based development environment
Stars: ✭ 17 (-99.85%)
Mutual labels:  virtualbox
Termuxarch
You can use setupTermuxArch.bash 📲 to install Arch Linux in Amazon, Android, Chromebook and Windows. https://sdrausty.github.io/TermuxArch/docs/install
Stars: ✭ 653 (-94.39%)
Mutual labels:  bash-script
Deep Learning Vm
Sets up a VM with Keras, TensorFlow, TFLearn and Theano installed
Stars: ✭ 23 (-99.8%)
Mutual labels:  virtualbox
Sultan
Sultan: Command and Rule over your Shell
Stars: ✭ 625 (-94.63%)
Mutual labels:  bash-script
Runmacosinvirtualbox
Run macOS 10.16 Big Sur (and other versions) in VirtualBox on macOS
Stars: ✭ 839 (-92.79%)
Mutual labels:  virtualbox
Safeharbor
local mirror of your Github stars (including ALL branches)
Stars: ✭ 16 (-99.86%)
Mutual labels:  bash-script
Linux Microsoft Ie Virtual Machines
Run Internet Explorer 8/9/10/11/MS-Edge Virtual machines from Microsoft under Linux via VirtualBox.
Stars: ✭ 934 (-91.97%)
Mutual labels:  virtualbox
Vm
💻☁📦 The (official) Nextcloud VM (virtual machine appliance), Home/SME Server and scripts for RPi (4).
Stars: ✭ 716 (-93.85%)
Mutual labels:  virtualbox
Pastebin Shell
bash pastebin.com client
Stars: ✭ 6 (-99.95%)
Mutual labels:  bash-script
Craft Do Forge Recipe
Digital Ocean / Forge Recipe for CraftCMS websites
Stars: ✭ 24 (-99.79%)
Mutual labels:  bash-script
Bootiso
A bash program to securely create a bootable USB device from one image file.
Stars: ✭ 645 (-94.46%)
Mutual labels:  bash-script
Add Copyright
This is a Script to Automate adding the Copyright text to one or more source files Recursively.
Stars: ✭ 27 (-99.77%)
Mutual labels:  bash-script
Vboxhardenedloader
VirtualBox VM detection mitigation loader
Stars: ✭ 641 (-94.49%)
Mutual labels:  virtualbox
Wsl Docker Git Setup
Shell script to configure Windows Subsystem for Linux (WSL) & Ubuntu on Windows to use docker and docker-compose as well as a git-enabled prompt
Stars: ✭ 23 (-99.8%)
Mutual labels:  bash-script
Ubuntu Setup
script to configure fresh ubuntu install, or to update existing install
Stars: ✭ 8 (-99.93%)
Mutual labels:  bash-script
Nixops
NixOps is a tool for deploying to NixOS machines in a network or cloud.
Stars: ✭ 838 (-92.8%)
Mutual labels:  virtualbox
Penetration Testing And Hacking
Collection of tips, tools and tutorials around infosec
Stars: ✭ 25 (-99.79%)
Mutual labels:  virtualbox

macOS inside a VirtualBox window with the dock positioned on the left

Push-button installer of macOS on VirtualBox

macos-guest-virtualbox.sh is a Bash script that creates a macOS virtual machine guest on VirtualBox with unmodified macOS installation files downloaded directly from Apple servers.

A default install only requires the user to sit patiently and, less than ten times, press enter when prompted by the script, without interacting with the virtual machine.

Tested on bash and zsh on Cygwin. Works on macOS, CentOS 7, and Windows. Should work on most modern Linux distros.

macOS Catalina (10.15), Mojave (10.14), and High Sierra (10.13) currently supported.

Documentation

Documentation can be viewed by executing the command ./macos-guest-virtualbox.sh documentation

The majority of the script is either documentation, comments, or actionable error messages, which should make the script straightforward to inspect and understand.

iCloud and iMessage connectivity and NVRAM

iCloud, iMessage, and other connected Apple services require a valid device name and serial number, board ID and serial number, and other genuine (or genuine-like) Apple parameters. These can be set in EFI and NVRAM by editing the script. See the documentation command for further information.

Storage size

The script by default assigns a target virtual disk storage size of 80GB, which is populated to about 25GB on the host on initial installation. After the installation is complete, the storage size may be increased. See the documentation command for further information.

Primary display resolution

The following primary display resolutions are supported by macOS on VirtualBox: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1440x900 1280x800 1024x768 640x480. See the documentation command for further information.

Unsupported features

Developing and maintaining VirtualBox or macOS features is beyond the scope of this script. Some features may behave unexpectedly, such as USB device support, audio support, FileVault boot password prompt support, and other features.

CPU compatibility

macOS guests on VirtualBox are incompatible with some CPU models. If the guest macOS boot process hangs on “LoadKernelFromStream”, “EndRandomSeed”, or "EXITBS", see the documentation command regarding VirtualBox CPU profiles and CPUID settings. Some CPU models released in 2020 and later may fail to start or complete the installer, and may require manually adjusting the CPUID settings.

Upgrading to Big Sur and Monterey

The virtual machine may be upgraded to the latest macOS Big Sur (11) and macOS Monterey (12) versions through Software Update. Big Sur may be installed in-place. Monterey may require attaching another volume to the virtual machine and selecting the volume as the installation target, otherwise the upgrade is prone to failing and entering a boot loop.

Performance and deployment

After successfully creating a working macOS virtual machine, consider importing it into more performant virtualization software, or packaging it for configuration management platforms for automated deployment. These virtualization and deployment applications require additional configuration that is beyond the scope of the script.

QEMU with KVM is capable of providing virtual machine hardware passthrough for near-native performance. QEMU supports the VMDK virtual disk image storage format, which can be configured to be created by the script. See the documentation command for further information. QEMU and KVM require additional configuration that is beyond the scope of the script.

VirtualBox Native Execution Manager (NEM)

The VirtualBox Native Execution Manager (NEM) is an experimental VirtualBox feature. VirtualBox uses NEM when access to VT-x and AMD-V is blocked by virtualization software or execution protection features such as Hyper-V, WSL2, WSLg, Windows Sandbox, memory integrity protection, Application Guard, Credential Guard, Device Guard, and other features and software. macOS and the macOS installer have memory corruption issues under NEM virtualization. The script checks for NEM and exits with an error message if it is detected.

VirtualBox can run on WSL2 and WSLg with some kernel module compilation, though performance is extremely low. At the point that kernel module compilation is required, it's preferable to use QEMU/KVM. QEMU/KVM on WSL2 and WSLg is orders of magnitude faster than VirtualBox. WSL2, WSLg, QEMU, and KVM require additional configuration that is beyond the scope of the script.

Bootloaders

The macOS VirtualBox guest is loaded without extra bootloaders, but it is compatible with OpenCore. OpenCore requires additional configuration that is beyond the scope of the script.

Audio

macOS may not support any built-in VirtualBox audio controllers. The bootloader OpenCore may be able to load open-source or built-in audio drivers in VirtualBox, providing the configuration for STAC9221 (Intel HD Audio) or SigmaTel STAC9700,83,84 (ICH AC97) is available.

Display scaling

VirtualBox does not supply an EDID for its virtual display, and macOS does not enable display scaling (high PPI) without an EDID. The bootloader OpenCore can inject an EDID which enables display scaling.

FileVault

The VirtualBox EFI implementation does not properly load the FileVault full disk encryption password prompt upon boot. The bootloader OpenCore is able to load the password prompt with the parameter ProvideConsoleGop set to true. See sample config.plist

Dependencies

The following dependencies should be available through a package manager:
bash coreutils gzip unzip wget xxd dmg2img virtualbox

The following optional packages provide optical character recognition that reduces the required interaction with the script:
tesseract-ocr tesseract-ocr-eng

Supported versions:

  • VirtualBox ≥ 6.1.6, though versions as low as 5.2 may work.
  • GNU Bash ≥ 4.3, on Windows run through Cygwin or WSL "1", see NEM
  • GNU coreutils ≥ 8.22, GNU gzip ≥ 1.5, Info-ZIP unzip ≥ v6.0, GNU wget ≥ 1.14, xxd ≥ 1.11
  • dmg2img ≥ 1.6.5, on Cygwin the package is not available through the package manager so the script downloads it automatically.
  • tesseract-ocr ≥ 4
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].