Voilà, install macOS on ANY Computer! This is really and magic easiest way! PVE 7.XX ~ 8.XX Support and macOS High Sierra ~ macOS Sequoia Support.
Go to file
Benjamin 40319656c6 Update README.md to enhance installation instructions and add script functionality details 2025-11-22 20:59:57 -05:00
Artefacts Include backup of pve-q35-4.0.cfg 2025-04-25 16:58:53 -03:00
EFI Improvements in opencore-osx-proxmox-vm.iso 2025-04-24 10:23:27 -03:00
tools Auto generate new Serial numbers! 2025-07-23 09:56:02 -04:00
.gitignore Add log directory to gitignore 2022-02-27 19:11:15 +01:00
.gitmodules Auto generate new Serial numbers! 2025-07-23 09:56:02 -04:00
CHANGELOG.md Upgrade to Opencore 0.7.9 2022-03-09 19:09:02 +01:00
README.md Update README.md to enhance installation instructions and add script functionality details 2025-11-22 20:59:57 -05:00
install.sh Refactor: Add boot media verification and path variables 2025-11-23 01:34:19 +00:00
setup Update setup 2025-10-28 09:51:51 +11:00

README.md

🚀 OSX-PROXMOX - Run macOS on ANY Computer (AMD & Intel)

GitHub stars GitHub forks GitHub license GitHub issues

v15 - Sequoia Easily install macOS on Proxmox VE with just a few steps! This guide provides the simplest and most effective way to set up macOS on Proxmox, whether you're using AMD or Intel hardware.


🛠 Installation Guide

  1. Install a FRESH/CLEAN version of Proxmox VE (7.x or 8.x preliminary 9.x support) and finish the basic wizard.
  2. Log in to the Proxmox Web Console, open Datacenter > YOUR_HOST_NAME > Shell, and elevate to root (the installer exits if you are not root).
  3. Download and run the installer script that lives in this repository:
curl -fsSL https://raw.githubusercontent.com/braffour/OSX-PROXMOX/refs/heads/main/install.sh -o install-osx-proxmox.sh
chmod +x install-osx-proxmox.sh
./install-osx-proxmox.sh

💡 Replace the URL above with the raw install.sh from your fork if you maintain one.

What the script does

  • Cleans up old /etc/apt/sources.list.d/* entries, installs git, and clones the repo into /root/OSX-PROXMOX.
  • Streams all output to /root/install-osx-proxmox.log so you can tail -f it from another session if desired.
  • Runs the interactive setup menu, where you will:
    • Select the storage that will hold ISO/recovery media.
    • Install prerequisite packages, configure GRUB/IOMMU/VFIO, and optionally reboot if the host still needs those changes.
    • Download at least one recovery-<version>.iso (options 101/102 inside the menu) and refresh the bundled OpenCore ISO (option 201) so macOS can boot.
  • Verifies (via ensure_boot_media_ready) that ${ISODIR} now contains opencore-osx-proxmox-vm.iso and at least one recovery-*.iso. If either artifact is missing, the installer tells you exactly which menu option to re-run and exits safely.

Menu quick reference

  • Options 18: create macOS VMs (High Sierra → Sequoia). You will set VM ID, name, storage, bridge, CPU/RAM, and disk size.
  • Option 200: add the Proxmox no-subscription repository.
  • Option 201: download/update the OpenCore ISO (required once per host or whenever you want the latest EFI).
  • Option 202: delete all cached recovery ISOs.
  • Option 203: remove the “No Subscription” nag banner from the UI.
  • Option 204: add/configure extra Proxmox bridges (used for cloud-style deployments).
  • Option 205: customize OpenCore config.plist (SMBIOS, boot-args, SIP, etc.).

If the installer stops with “Boot media missing,” just re-run /root/OSX-PROXMOX/setup, choose option 201, then the recovery option for your macOS version, and rerun the installer script. Once boot media is detected, it will finish automatically and you can immediately create VMs from the menu.

🎉 After the menu completes without errors, you are ready to install macOS! osx-terminal

🔧 Additional Configuration

Install EFI Package in macOS (Disable Gatekeeper First)

sudo spctl --master-disable

🍏 macOS Versions Supported

macOS High Sierra - 10.13
macOS Mojave - 10.14
macOS Catalina - 10.15
macOS Big Sur - 11
macOS Monterey - 12
macOS Ventura - 13
macOS Sonoma - 14
macOS Sequoia - 15


🖥 Proxmox VE Versions Supported

v7.0.XX ~ 8.4.XX

🔄 OpenCore Version

  • April/2025 - 1.0.4 → with SIP Enabled, DMG only signed by Apple and all features of securities

☁️ Cloud Support (Run Hackintosh in the Cloud!)

  • 🌍 VultR
  • 📺 Video Tutorial (Enable captions for better understanding)
  • Now has configurable bridges, and can add as many bridges and specify the subnet for them.

⚠️ Disclaimer

🚨 FOR DEVELOPMENT, STUDENT, AND TESTING PURPOSES ONLY.

I am not responsible for any issues, damage, or data loss. Always back up your system before making any changes.


📌 Requirements

Since macOS Monterey, your host must have a working TSC (timestamp counter). Otherwise, if you assign multiple cores to the VM, macOS may crash due to time inconsistencies. To check if your host is compatible, run the following command in Proxmox:

dmesg | grep -i -e tsc -e clocksource

Expected Output (for working hosts):

clocksource: Switched to clocksource tsc

Problematic Output (for broken hosts):

tsc: Marking TSC unstable due to check_tsc_sync_source failed
clocksource: Switched to clocksource hpet

🛠 Possible Fixes

  1. Disable "ErP mode" and all C-state power-saving modes in your BIOS. Then power off your machine completely and restart.
  2. Try forcing TSC in GRUB:
    • Edit /etc/default/grub and add:
      clocksource=tsc tsc=reliable
      
    • Run update-grub and reboot (This may cause instability).
  3. Verify the TSC clock source:
    cat /sys/devices/system/clocksource/clocksource0/current_clocksource
    
    The output must be tsc.

Read More


🔍 Troubleshooting

High Sierra & Below - Recovery Server Could Not Be Contacted

If you encounter this error, you need to switch from HTTPS to HTTP in the installation URL:

  1. When the error appears, leave the window open.

  2. Open Installer Log (Window > Installer Log).

  3. Search for "Failed to load catalog" → Copy the log entry.

  4. Close the error message and return to macOS Utilities.

  5. Open Terminal, paste the copied data, and remove everything except the URL (e.g., https://example.sucatalog).

  6. Change https:// to http://.

  7. Run the command:

    nvram IASUCatalogURL="http://your-http-url.sucatalog"
    
  8. Quit Terminal and restart the installation.

Reference & More Details

Problem for GPU Passthrough

If you see an Apple logo and the bar doesnt move on your external display, you need to disable “above 4g decoding” in the motherboards BIOS.

In some environments it is necessary to segment the IOMMU Groups to be able to pass the GPU to the VM.

  1. Add the content pcie_acs_override=downstream,multifunction pci=nommconf in the file /etc/default/grub at the end of the line GRUB_CMDLINE_LINUX_DEFAULT;
  2. After changing the grub file, run the command update-grub and reboot your PVE.

🎥 Demonstration (in Portuguese)

📽️ Watch on YouTube
(Enable auto-translate captions for English subtitles!)


🎖 Credits

  • OpenCore/Acidanthera Team - Open-source bootloader
  • Corpnewt - Tools (ProperTree, GenSMBIOS, etc.)
  • Apple - macOS
  • Proxmox - Fantastic virtualization platform & documentation

🌎 Join Our Community - Universo Hackintosh Discord

💬 Join Here!