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 on Coinbase or Paypal!.
New to macOS and KVM? Check the FAQs.
You'll need a Linux system with qemu (3.1 or later), python3, pip and the KVM modules enabled. 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 python-wheel # for Arch.
sudo xbps-install -Su qemu python3 python3-pip # for Void Linux.
sudo zypper in qemu-tools qemu-kvm qemu-x86 qemu-audio-pa python3-pip # for openSUSE Tumbleweed
sudo dnf install qemu qemu-img python3 python3-pip # for Fedora
sudo emerge -a qemu python:3.4 pip # for Gentoo
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.imgdownloaded. If you haveBaseSystem.dmg, you will need to convert it with thedmg2imgtool.
Create an empty hard disk using qemu-img, changing the name and size to preference:
qemu-img create -f qcow2 MyDisk.qcow2 64G
and add it to the end of basic.sh:
-drive id=SystemDisk,if=none,file=MyDisk.qcow2 \
-device ide-hd,bus=sata.4,drive=SystemDisk \
Note: If you're running on a headless system (such as on Cloud providers), you will need
-nographicand-vnc :0 -k en-usfor VNC support.
Then run basic.sh to start the machine and install macOS. Remember to partition in Disk Utility first!
- If instead of QEMU, you'd like to import the setup into Virt-Manager for further configuration, just run
sudo ./make.sh --add. - After running the above command, add
MyDisk.qcow2as storage in the properties of the newly added entry for VM.