foxlet/macOS-Simple-KVM

Shell
macOSLinux

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

macoskvmlinuxqemuhackintoshvirtual-machinecatalinamojavehigh-sierrabigsur
Star 增长趋势
Star
13.9k
Forks
1.1k
周增长
+1
Issues
328
5k10k
2019年4月2021年9月2024年3月2026年9月
README

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.

相关仓库
flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

DartlibraryBSD 3-Clause "New" or "Revised" Licensemobileandroid
flutter.dev
178.9k31.1k
jlevy/the-art-of-command-line

Master the command line, in one page

tutorialbashunix
162.3k14.8k
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Rustcrates.ioappGNU Affero General Public License v3.0remote-controlremote-desktop
rustdesk.com
123k18.9k
nodejs/node

Node.js JavaScript runtime ✨🐢🚀✨

JavaScriptnpmOthernodejsjavascript
nodejs.org
121.2k36.7k
jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

SwiftawesomeCreative Commons Zero v1.0 Universalmacossoftware
git.io/macx
113.3k8.8k
tw93/Mole

🐹 Clean, uninstall, analyze, optimize, and monitor your Mac. Free open-source CLI, plus a native Mac app.

ShellcliGNU General Public License v3.0cleancleaner
mole.fit
66.6k2.3k
alacritty/alacritty

A cross-platform, OpenGL terminal emulator.

Rustcrates.iocliApache License 2.0terminal-emulatorsopengl
alacritty.org
65.7k3.6k
warpdotdev/warp

Warp is an agentic development environment, born out of the terminal.

Rustcrates.iocliGNU Affero General Public License v3.0rustlinux
warp.dev
64.9k5.5k
warpdotdev/Warp

Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.

cliOtherrustlinux
warp.dev
64.7k5.5k
tldr-pages/tldr

Collaborative cheatsheets for console commands 📚.

MarkdowntutorialOthershellman-page
tldr.sh
63.6k5.4k
tw93/Pake

🤱🏻 Turn any webpage into a desktop app with one command.

Rustcrates.iolibraryGNU General Public License v3.0rusttauri
61.4k12.6k
marktext/marktext

📝A simple and elegant markdown editor, available for Linux, macOS and Windows.

TypeScriptnpmappMIT Licensemacostypewriter-mode
marktext.me
61.2k4.5k