Go to file
Foxlet 5dd33000e4
[CONF] Setup simplification.
Setup simplification
2019-06-19 21:23:28 -04:00
docs [DOCS] Clarify CPUs. 2019-06-19 18:59:34 -04:00
firmware [FIRMWARE] Set default vars to 1280x720. 2019-05-06 03:29:38 -04:00
tools [CONF] Revert to e1000 due to iCloud services requirement. 2019-06-12 21:27:47 -04:00
.gitignore Add tools, jumpstart, and firmware. 2019-04-22 23:20:12 -04:00
ESP.qcow2 [ESP] Update Clover to r4945, enable sound in Catalina. 2019-06-05 17:52:30 -04:00
README.md Merge branch 'headless' into setup-simplification 2019-06-19 21:22:29 -04:00
basic.sh Merge branch 'headless' into setup-simplification 2019-06-19 21:22:29 -04:00
jumpstart.sh [TOOLS] Revamp FetchMacOS. 2019-06-07 02:55:09 -04:00
make.sh [TOOLS] Formatting. 2019-06-07 02:55:17 -04:00

README.md

macOS-Simple-KVM

Documentation to set up a simple macOS VM in QEMU, accelerated by KVM.

By @FoxletFox, and the help of many others. Find this useful? You can donate here!

New to macOS KVM? Check the FAQs.

Getting Started

You'll need a Linux system with qemu (3.1 or later), python3, pip and the KVM extensions installed for this project. A Mac is not required. Some examples for different distributions:

sudo apt-get install qemu-system qemu-utils python3 python3-pip  # for Ubuntu, Debian, Mint, and PopOS.
sudo pacman -S qemu python python-pip            # for Arch.
sudo xbps-install -Su qemu python3 python3-pip   # for Void Linux.

Step 1

Run jumpstart.sh to download installation media for macOS (internet required). The default installation uses Catalina, but you can choose which version to get by adding either --high-sierra, --mojave, or --catalina. For example:

./jumpstart.sh --mojave

Note: You can skip this if you already have BaseSystem.img downloaded. If you have BaseSystem.dmg, you will need to convert it with the dmg2img tool.

Step 2

Create an empty hard disk using qemu-img, changing the name and size to preference:

qemu-img create -f qcow2 MyDisk.qcow2 64G

Then run basic.sh to start the machine and install macOS, setting the SYSTEM_DISK environment variable to the path to your freshly created system disk image:

SYSTEM_DISK=MyDisk.qcow2 ./basic.sh

If you're running on a headless system (such as on Cloud providers), set the HEADLESS environment variable to 1:

SYSTEM_DISK=MyDisk.qcow2 HEADLESS=1 ./basic.sh

Remember to partition in Disk Utility first!

Step 2a (Virtual Machine Manager)

If instead of QEMU, you'd like to import the setup into Virt-Manager for further configuration, just run make.sh --add.

Step 3

You're done!

To fine-tune the system and improve performance, look in the docs folder for more information on adding memory, setting up bridged networking, adding passthrough hardware (for GPUs), and enabling sound features.