1
0
Fork 0
mirror of https://github.com/foxlet/macOS-Simple-KVM.git synced 2024-11-23 19:49:41 +01:00
No description
Find a file
2020-06-23 10:24:10 +02:00
.github [DOCS] Github Sponsors. 2019-11-15 16:27:57 -05:00
docs [DOCS] Updated instructions to use virt-manager 2020-02-07 09:01:47 -05:00
firmware [FIRMWARE] Set default vars to 1280x720. 2019-05-06 03:29:38 -04:00
tools Name with version, copy template, allow nested virtualization 2020-06-23 10:24:10 +02:00
.gitignore Don't run make before jumpstart, update gitignore 2020-06-23 10:24:10 +02:00
.gitmodules [TOOLS] Add dmg2img source submodule. 2019-07-30 22:16:43 -04:00
basic.sh [CONF] fixes from shellcheck 2019-07-30 22:22:53 -04:00
ESP.qcow2 [ESP] Update Clover to r5070, refix BOOTX64.EFI. 2019-10-06 04:17:52 -04:00
headless.sh [CONF] fixes from shellcheck 2019-07-30 22:22:53 -04:00
jumpstart.sh [TOOLS] Enable Big Sur support. 2020-06-22 17:28:15 -04:00
make.sh Don't run make before jumpstart, update gitignore 2020-06-23 10:24:10 +02:00
README.md Put user made data in data/ 2020-06-23 10:24:10 +02:00
virtio.sh [CONF] fixes from shellcheck 2019-07-30 22:22:53 -04:00

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            # 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

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 2a

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 2b (GNOME Boxes and Virtual Machine Manager)

If instead of QEMU, you'd like to import the setup into GNOME Boxes or Virt-Manager for convenience or for further configuration, just run ./make.sh --install or the shorter ./make.sh -i.

No root is needed because images will be installed in your home, with any other your Boxes virtual machine.

Step 2c (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.