Skip to main content

Manual Method

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 install qemu-system qemu-utils python3 python3-pip  # for Ubuntu, Debian, Mint, and PopOS.
sudo pacman -Syu qemu-desktop python python-pip python-wheel --needed # for Arch and Manjaro.
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 libvirt-client # for Fedora
sudo eopkg install qemu python3 python3-pip # for Solus OS
sudo emerge -a qemu python dev-python/pip # for Gentoo
sudo dnf install qemu qemu-img python3 python3-pip libvirt-utils -y # for Mageia
To use in NIXOS add qemu, pyton3, and python3-pip to your packages list.

If you are installing on Solus OS, extracting qemu may take a while, so be patient.

First, clone the repo

git clone https://github.com/notAperson535/OneClick-macOS-Simple-KVM.git

Step 1

Run fetch-macOS-v2.py to download installation media for macOS (internet required).

./fetch-macOS-v2.py

If the resulting file is named BaseSystem.dmg then run

qemu-img convert BaseSystem.dmg -O raw BaseSystem.img

If it is named RecoveryImage.dmg run

qemu-img convert RecoveryImage.dmg -O raw BaseSystem.img

Bringing Your Own macOS bootable file

If you want to bring your own bootable file, whether you already have a file or you have a custom version, drag it into the OneClick-macOS-Simple-KVM folder. If it is a dmg file, use this command to convert it into an img file, replacing FILENAME with your file's name.

qemu-img convert FILENAME.dmg -O raw BaseSystem.img

If it is already an img file, rename it to BaseSystem.img.

Step 2

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

qemu-img create -f qcow2 macOS.qcow2 100G

if you change the drive name, change the line below according to the new name in basic.sh:

    -drive id=SystemDisk,if=none,file="$VMDIR/macOS.qcow2" \

Step 2a (Virtual Machine Manager)

  1. If instead of QEMU, you'd like to import the setup into Virt-Manager for further configuration, just run
sudo ./make.sh --add
  1. After running the above command, add macOS.qcow2 as storage in the properties of the newly added entry for VM.

Step 2b (Headless Systems)

If you're running on a headless system (such as on Cloud providers), set the HEADLESS environment variable to 1 (The VM VNC will be accessible on port 5900):

HEADLESS=1 ./basic.sh

Now head over to installing macOS for instructions on correctly installing macOS