1
0
Fork 0
mirror of https://github.com/foxlet/macOS-Simple-KVM.git synced 2024-11-16 16:19:41 +01:00
macOS-Simple-KVM/README.md

61 lines
3.3 KiB
Markdown
Raw Normal View History

2019-04-22 09:25:21 +02:00
# macOS-Simple-KVM
2019-04-30 23:48:10 +02:00
Documentation to set up a simple macOS VM in QEMU, accelerated by KVM.
2019-04-23 00:08:10 +02:00
2019-10-30 08:11:31 +01:00
By [@FoxletFox](https://twitter.com/foxletfox), and the help of many others. Find this useful? You can donate [on Coinbase](https://commerce.coinbase.com/checkout/96dc5777-0abf-437d-a9b5-a78ae2c4c227) or [Paypal!](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=QFXXKKAB2B9MA&item_name=macOS-Simple-KVM).
New to macOS and KVM? Check [the FAQs.](docs/FAQs.md)
2019-05-11 23:25:09 +02:00
2021-12-10 21:20:44 +01:00
## OneClick Method
Simply run `sudo ./run.sh` to make the VM. Monterey may not work.
Once the VM boots up, just hit enter even if you don't see anything (do this every boot) Then format the biggest drive as macOS Extended Journaled, Then go to reinstall macOS and install it to the newly formatted hard drive.
2019-05-10 20:07:24 +02:00
## 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:
2019-06-07 01:53:57 +02:00
```
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
2019-09-25 02:03:51 +02:00
sudo dnf install qemu qemu-img python3 python3-pip # for Fedora
2020-07-17 11:09:02 +02:00
sudo emerge -a qemu python:3.4 pip # for Gentoo
2019-06-07 01:53:57 +02:00
```
2019-04-25 22:57:52 +02:00
2019-04-23 00:08:10 +02:00
## Step 1
2019-06-07 01:53:57 +02:00
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
```
2019-05-11 23:32:56 +02:00
> 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.
2019-04-23 00:08:10 +02:00
2019-04-30 23:48:10 +02:00
## Step 2
2019-05-10 20:07:24 +02:00
Create an empty hard disk using `qemu-img`, changing the name and size to preference:
```
qemu-img create -f qcow2 MyDisk.qcow2 64G
```
2019-05-10 20:07:24 +02:00
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.
2019-06-19 22:08:54 +02:00
Then run `basic.sh` to start the machine and install macOS. Remember to partition in Disk Utility first!
2019-04-23 00:08:10 +02:00
2019-05-10 20:07:24 +02:00
## 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
```
2019-05-10 20:07:24 +02:00
2019-04-23 00:08:10 +02:00
## Step 3
2019-04-30 23:48:10 +02:00
You're done!
2019-09-18 12:08:19 +02:00
To fine-tune the system and improve performance, look in the `docs` folder for more information on [adding memory](docs/guide-performance.md), setting up [bridged networking](docs/guide-networking.md), adding [passthrough hardware (for GPUs)](docs/guide-passthrough.md), tweaking [screen resolution](docs/guide-screen-resolution.md), and enabling sound features.