docs: document integrated OpenCore for macOS VMs

- Add mtools and gptfdisk to dependency lists (Debian, Fedora, Gentoo)
- Document new integrated OpenCore behaviour (single disk image)
- Explain backwards compatibility with legacy two-disk method
- Add instructions for using legacy method if needed
Martin Wimpress 2026-01-24 11:36:08 +00:00
parent 8e6d373785
commit 4695a97053
No known key found for this signature in database
2 changed files with 39 additions and 3 deletions

@ -129,9 +129,11 @@ requirements manually:
- [curl](https://curl.se/)
- [EDK II](https://github.com/tianocore/edk2)
- [gawk](https://www.gnu.org/software/gawk/)
- [gptfdisk](https://www.rodsbooks.com/gdisk/) (*for macOS VM creation*)
- [grep](https://www.gnu.org/software/grep/)
- [glxinfo](https://gitlab.freedesktop.org/mesa/demos)
- [jq](https://stedolan.github.io/jq/)
- [mtools](https://www.gnu.org/software/mtools/) (*for macOS VM creation*)
- [pciutils](https://github.com/pciutils/pciutils)
- [procps](https://gitlab.com/procps-ng/procps)
- [python3](https://www.python.org/)
@ -155,7 +157,7 @@ These should be handled by dependencies in Trixie and later. For earlier version
``` shell
sudo apt-get install bash coreutils curl genisoimage grep jq mesa-utils ovmf pciutils procps python3 qemu sed socat spice-client-gtk swtpm-tools unzip usbutils util-linux uuidgen-runtime xdg-user-dirs xrandr zsync
sudo apt-get install bash coreutils curl gdisk genisoimage grep jq mesa-utils mtools ovmf pciutils procps python3 qemu sed socat spice-client-gtk swtpm-tools unzip usbutils util-linux uuidgen-runtime xdg-user-dirs xrandr zsync
```
### Install requirements on Fedora
@ -166,7 +168,7 @@ These are handled natively for Fedora 41 on. For earlier versions:
# it may be needed to add additional installation sources to obtain some packages
# for example zsync is no longer in the fedora repo, but can be obtained from copr
#sudo dnf copr enable elxreno/zsync -y
sudo dnf install bash coreutils curl edk2-tools genisoimage grep jq mesa-demos pciutils procps python3 qemu sed socat spice-gtk-tools swtpm unzip usbutils util-linux xdg-user-dirs xrandr zsync
sudo dnf install bash coreutils curl edk2-tools gdisk genisoimage grep jq mesa-demos mtools pciutils procps python3 qemu sed socat spice-gtk-tools swtpm unzip usbutils util-linux xdg-user-dirs xrandr zsync
```
### Install requirements on Gentoo
@ -181,8 +183,10 @@ sudo emerge --ask --noreplace app-emulation/qemu \
sys-firmware/edk2-ovmf-bin \
sys-apps/gawk \
sys-apps/grep \
sys-block/gptfdisk \
x11-apps/mesa-progs \
app-misc/jq \
sys-fs/mtools \
sys-apps/pciutils \
sys-process/procps \
app-cdr/cdrtools \

@ -13,6 +13,37 @@ quickemu --vm macos-big-sur.conf
macOS `mojave`, `catalina`, `big-sur`, `monterey`, `ventura` and `sonoma` are supported.
# OpenCore bootloader
macOS VMs require [OpenCore](https://github.com/acidanthera/OpenCorePkg) as a bootloader. Quickemu handles this automatically, but the implementation differs depending on when your VM was created.
## Integrated OpenCore (new default)
New macOS VMs use **integrated OpenCore**, where the bootloader is embedded directly in the EFI partition of `disk.qcow2`. This approach:
- Creates a single disk image instead of two
- Simplifies VM management and backups
- Boots directly from the main disk
This requires `mtools` and `gptfdisk` on your system. If these are missing, `quickget` automatically falls back to the legacy method.
## Legacy OpenCore (separate disk)
VMs created before this change use a separate `OpenCore.qcow2` file that chainloads macOS from the main disk. This results in two disk images:
- `OpenCore.qcow2` - bootloader disk
- `disk.qcow2` - macOS system disk
**Existing VMs continue to work unchanged.** Quickemu automatically detects which method to use based on whether `OpenCore.qcow2` exists in the VM directory.
## Using the legacy method for new VMs
If you need the legacy two-disk setup for a new VM:
1. Download `OpenCore.qcow2` from [OSX-KVM](https://github.com/kholia/OSX-KVM)
2. Place it in your VM directory before running `quickget`
3. `quickget` will detect the existing file and skip integrated OpenCore creation
- Use cursor keys and enter key to select the **macOS Base System**
- From **macOS Utilities**
- Click **Disk Utility** and **Continue**
@ -106,7 +137,8 @@ There are some considerations when running macOS via Quickemu.
- Monterey
- Ventura
- Sonoma
- `quickemu` will automatically download the required [OpenCore](https://github.com/acidanthera/OpenCorePkg) bootloader and OVMF firmware from [OSX-KVM](https://github.com/kholia/OSX-KVM).
- `quickget` creates macOS VMs with integrated OpenCore by default (requires `mtools` and `gptfdisk`)
- `quickemu` will automatically download the required [OpenCore](https://github.com/acidanthera/OpenCorePkg) bootloader and OVMF firmware from [OSX-KVM](https://github.com/kholia/OSX-KVM) when using the legacy method.
- Optimised by default, but no GPU acceleration is available.
- Host CPU vendor is detected and guest CPU is optimised accordingly.
- [VirtIO Block Media](https://www.kraxel.org/blog/2019/06/macos-qemu-guest/) is used for the system disk where supported.