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

99 lines
5.4 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
2022-01-20 16:57:14 +01:00
By: notAperson
2022-01-25 22:00:42 +01:00
Original maker is [@FoxletFox](https://twitter.com/foxletfox), and the help of many others. You can donate to him [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).
I did not make the download script, Kholia did.
New to macOS and KVM? Check [the FAQs.](docs/FAQs.md)
2019-05-11 23:25:09 +02:00
2021-12-29 23:59:52 +01:00
## IMPORTANT
You must download or clone this GitHub repository before you begin
2022-01-28 23:12:44 +01:00
Do not use forks of `notAperson535/OneClick-macOS-Simple-KVM` as I update this repository a lot, and forks are usually behind.
2021-12-29 23:59:52 +01:00
2021-12-10 21:20:44 +01:00
## OneClick Method
Run `./setup.sh` to make the VM. Monterey may not work, as it is very picky about hardware.
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, go to reinstall macOS and install it to the newly formatted hard drive.
2021-12-10 21:20:44 +01:00
Once installed, run `./basic.sh` to boot up the VM again. Do not run `./setup.sh` twice if the install was succesful, as it will redownload the image and that is not needed.
2022-01-30 15:10:40 +01:00
## You're done!
2022-01-30 15:10:40 +01:00
If the mouse is not aligned properly, edit the basic.sh file and change `-usb -device usb-kbd -device usb-tablet \` to `-usb -device usb-kbd -device usb-mouse \`
2021-12-10 21:46:54 +01:00
2022-01-30 15:10:40 +01:00
If you get an error that says access denied, run `sudo ./basic.sh` which will give it admin privelages.
2021-12-10 21:33:43 +01: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.
2022-01-25 21:54:34 +01:00
## Manual method (distros that aren't debian based (don't have apt-get) require this)
2021-12-10 21:33:43 +01:00
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
```
2022-02-01 21:55:14 +01:00
sudo apt-get install qemu-system qemu-utils python python-pip # for Ubuntu, Debian, Mint, and PopOS.
sudo pacman -S qemu python python-pip python-wheel # for Arch.
2022-02-01 21:55:14 +01:00
sudo xbps-install -Su qemu python python-pip # for Void Linux.
sudo zypper in qemu-tools qemu-kvm qemu-x86 qemu-audio-pa python-pip # for openSUSE Tumbleweed
sudo dnf install qemu qemu-img python python-pip # for Fedora
sudo emerge -a qemu python 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
2022-01-19 21:37:49 +01:00
Run `fetch-macOS-v2.py` to download installation media for macOS (internet required).
2022-01-19 21:38:28 +01:00
```
2021-12-10 21:31:39 +01:00
./fetch-macOS-v2.py
```
Then run
```
qemu-img convert BaseSystem.dmg -O raw BaseSystem.img
2019-06-07 01:53:57 +02:00
```
2019-04-23 00:08:10 +02:00
2022-01-19 21:37:49 +01:00
## Bringing Your Own macOS bootable file
2022-01-19 21:39:25 +01:00
If you want to bring your own bootable file, whether it be for an older version of macOS or you already have a file, drag it into the OneCLick-macOS-Simple-KVM folder. Then, Check if it is named BaseSystem. If not, rename it.
2022-01-19 21:37:49 +01:00
If the file is now named BaseSystem.dmg, you must run this command to convert it to BaseSystem.img
```
qemu-img convert BaseSystem.dmg -O raw BaseSystem.img
```
2022-01-19 21:39:25 +01:00
If it is named BaseSystem.img, you are good to go
2022-01-19 21:37:49 +01:00
2022-01-30 15:12:24 +01:00
Hint (If you want to use an older version of macOS, OpenCore can go back to macOS 10.4)
2022-01-19 21:37:49 +01: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:
```
2021-12-10 21:25:51 +01:00
qemu-img create -f qcow2 macOS.qcow2 64G
```
2021-12-10 21:25:51 +01:00
if you change the drive name, change the line below according to the new name in `basic.sh`:
```
2021-12-10 21:25:51 +01:00
-drive id=SystemDisk,if=none,file=macOS.qcow2 \
```
2021-12-12 18:03:26 +01:00
> Note: If you're running on a headless system (such as on Cloud providers), you will need `-nographic` and `-vnc :0 -k en-us` to the end of basic.sh for VNC support.
2021-12-10 21:30:11 +01:00
Then run `basic.sh` to start the machine and install macOS. Remember to partition in Disk Utility first! (macOS extended journaled)
2019-04-23 00:08:10 +02:00
If the mouse is not aligned properly, edit the basic.sh file and change `-usb -device usb-kbd -device usb-mouse \` to `-usb -device usb-kbd -device usb-tablet \`
If you get an error that says access denied, run `sudo ./basic.sh` which will give it admin privelages.
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`.
2021-12-10 21:30:11 +01:00
2. After running the above command, add `macOS.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
2022-01-30 15:10:40 +01:00
## You're done!
If the mouse is not aligned properly, edit the basic.sh file and change `-usb -device usb-kbd -device usb-tablet \` to `-usb -device usb-kbd -device usb-mouse \`
2019-04-30 23:48:10 +02:00
2022-01-30 15:10:40 +01:00
If you get an error that says access denied, run `sudo ./basic.sh` which will give it admin privelages.
2019-04-30 23:48:10 +02:00
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.