Run macOS on a Linux desktop to test Mac apps or use Mac-only software without buying Apple hardware.
Set up a headless macOS VM on a Linux server and connect to its display remotely via VNC.
Import the VM into Virt-Manager for graphical configuration including GPU passthrough and bridged networking.
Download and install a specific macOS version such as Catalina, Mojave, or High Sierra inside a virtual machine.
Requires a Linux host with KVM support, QEMU, and Python 3, the full macOS install inside the VM adds significant time before first use.
This repository is a set of scripts and instructions for running Apple's macOS operating system inside a virtual machine on a Linux computer. A virtual machine is a fake computer that runs as a program on your real one, so you can boot a completely different operating system in a window without buying separate hardware. The tools here use QEMU, which is the software that creates the virtual machine, sped up by a Linux feature called KVM. The README points out that you do not need to own a Mac to do this. The project is documentation-led: most of the README is a numbered walkthrough. Before starting, you need a Linux system with QEMU, Python 3, and a few related packages, and the README gives the exact install command for several Linux distributions including Ubuntu, Arch, Fedora, and openSUSE. Step one runs a script called jumpstart.sh, which downloads the official macOS install files from the internet. By default it fetches the Catalina version, but you can ask for High Sierra or Mojave with a command-line flag. Step two creates an empty virtual hard disk with a chosen name and size using a tool called qemu-img, wires that disk into the provided basic.sh script, and then runs that script to boot the machine and install macOS, partitioning the disk first inside Apple's Disk Utility. There are two alternative paths for step two. One lets you import the setup into Virt-Manager, a graphical manager for virtual machines, for more configuration. The other, headless.sh, is for servers or cloud machines with no screen attached: it starts a VNC instance so you can connect to the virtual machine's display remotely, with memory, CPU count, and disk passed in as settings. Step three simply says you are done. For people who want to go further, the README points to a docs folder with separate guides on adding memory, setting up bridged networking, passing through real hardware such as a GPU, adjusting screen resolution, and enabling sound. The project also links to donation pages and an FAQ for newcomers.
← foxlet on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.