Need help with macOS-Simple-KVM?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

foxlet
8.8K Stars 697 Forks 74 Commits 209 Opened issues

Description

Tools to set up a quick macOS VM in QEMU, accelerated by KVM.

Services available

!
?

Need anything else?

Contributors list

No Data

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 on Coinbase or Paypal!.

New to macOS and KVM? Check the FAQs.

Getting Started

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

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

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

-nographic
and
-vnc :0 -k en-us
for VNC support.

Then run

basic.sh
to start the machine and install macOS. Remember to partition in Disk Utility first!

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
    .
  2. After running the above command, add
    MyDisk.qcow2
    as storage in the properties of the newly added entry for VM.

Step 2b (Headless Systems)

If you're using a cloud-based/headless system, you can use

headless.sh
to set up a quick VNC instance. Settings are defined through variables as seen in the following example. VNC will start on port
5900
by default.
HEADLESS=1 MEM=1G CPUS=2 SYSTEM_DISK=MyDisk.qcow2 ./headless.sh

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), tweaking screen resolution, and enabling sound features.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.