1
0
Fork 0
mirror of https://github.com/foxlet/macOS-Simple-KVM.git synced 2024-11-15 07:39:42 +01:00
macOS-Simple-KVM/README.md

2.2 KiB

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.