20d8871c09
Tech support staff and users often confuse the host node's use of KVM with the ability to run _nested_ KVM instances. Probably good to clarify this. |
||
---|---|---|
docs | ||
firmware | ||
tools | ||
.gitignore | ||
basic.sh | ||
ESP.qcow2 | ||
jumpstart.sh | ||
make.sh | ||
README.md |
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 haveBaseSystem.dmg
, you will need to convert it with thedmg2img
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)
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.