Summary
- Apple's macOS has plenty of solid features, but building a Hackintosh can save you money on pricey MacBooks.
- Running macOS on Proxmox requires patience, as some applications may not work due to hardware limitations.
- Despite challenges, productivity apps like Ulysses and Google Chrome work well on a Proxmox-powered macOS VM.
With its sleek UI, robust functionality, and rock-solid integration with other Apple products, there’s no denying that macOS is an amazing operating system. The fact that it has clung to its spot as one of the Big Three desktop operating systems besides Windows and Linux – despite its exclusivity to a smaller set of devices – serves as a testament to macOS’ massive success.
A beginner's guide to setting up Proxmox
It's quite easy to configure Proxmox for your home lab server
Unfortunately, not everyone can spend thousands of dollars just to experience an intuitive OS. Plus, most of the affordable MacBooks are often crippled on the memory front, so you’re bound to spend a fortune just to use macOS. But thankfully, it’s still possible to build your own Hackintosh and, having previously turned my old PC into a Proxmox-powered macOS machine, I recently decided to test some popular applications on the makeshift macOS system. While the performance was equally surprising and predictable, here’s everything I learned after working on this experiment for well over a week.
My old PC and server rig couldn't make the cut
And I had to whip out my primary system for the project
If you’ve read my recent articles on XDA, you may have realized that I’ve grown fond of home servers. So, my initial idea was to try and run as many macOS applications on my dual Intel Xeon E5-2650 V4 system. Unfortunately, the server CPUs from 2016 failed miserably at running macOS Ventura, and outright refused to boot into Sonoma.
In fact, their performance was so bad that even after allocating a majority of cores and upwards of 60GBs of memory, the server machine was easily defeated by the measly 6-core, 12-thread Ryzen 5 1600 on my old PC. But it wasn’t much of a victory for the first-generation Ryzen family member either, as the macOS VM was still a little too sluggish for me to use it. Not to mention, the performance would plummet anytime I launched more than three applications at once.
Eventually, I had to relent and nominate my Ryzen 5 5600X PC for the project. As I flashed Proxmox onto a USB drive, I was feeling confident about the whole project. After all, a 5600X should, at the very least, deliver passable performance. Although it eventually provided some good results, my path was wrought with plenty of errors, bugs, and crashes. What’s hilarious is that I encountered my very first roadblock moments after flashing the Proxmox ISO onto a USB drive and using it to boot into the Proxmox installer.
Hours went by as I painstakingly solved each error
But the result was worth the hassle
Once I agreed to set up Proxmox using the graphical installation method, my PC froze up at the loading drivers phase. After dismissing it as a faulty ISO/USB drive combo, I repeated the process with older versions of the Proxmox image and different storage media, but the error kept rearing its ugly head every time. Even adding the nomodeset parameter resulted in slowdowns, meaning it was time to don my troubleshooting hat.
Turns out, the drivers on the RTX 3080 Ti in my PC were the source of these troubles, and replacing the GPU with the ol’ reliable GTX 1080 brought an end to my woes – at least for the next couple of minutes. One thing I noticed was that Proxmox refers to your processor’s threads (and not the cores) as the assignable CPUs for virtual machines. Since I could only assign the number of cores as some exponential value of 2 (besides 0), I decided to allocate 8 out of 12 threads as CPU cores to the macOS VM. For the memory, I went with 16384MB, or exactly 16GB out of the 32GB RAM available on the host machine.
After following the exact procedure detailed in my older post, I booted into macOS Ventura and encountered the next issue: the system failed to connect to the Internet. This time, the issue was with my PCIe Ethernet card, as macOS doesn’t detect devices attached to the PCI Express slots. Since setting up PCIe passthrough on macOS requires a lot of elbow grease, I took the short way out and reinstalled the OS after unplugging the NIC. This time, I was unable to sign in to my Apple account on the App Store, as macOS kept claiming the system was unable to connect to the server.
Fortunately, after a marathon of fixes involving everything from switching the network drivers to running terminal commands, I resolved the issue by following the oldest trick in the book, namely turning off all systems and reconnecting the LAN cables after unplugging them for a few seconds. At last, I was able to log into my Apple account and live my lifelong dream of running macOS on a semi-capable machine.
Productivity apps worked spectacularly
The rock-solid performance in Chrome and LLMs was quite unexpected
With the Ryzen 5 5600X providing a surprisingly snappy experience, I began my crusade to install practically every app I could scour from our macOS-centric articles. My first set of applications included the note-taking essentials Ulysses, Obsidian, Craft, and macOS’ very own Notes app, and all three worked so well that I was almost fooled into believing I was on an actual MacBook, albeit a slower one.
After downloading some demanding applications from the App Store (which I’ll get to in a bit), I wanted to grab some applications from external sources. But Safari had other plans, as the browser was afflicted with a glitch that caused it to render web pages for a short moment before going blank. With a little bit of memory retention and (perhaps, sheer luck), I managed to download Chrome on the VM. To my surprise, the browser worked incredibly well, to the point that I encountered zero performance issues even after opening as many as ten tabs alongside the note-taking apps from earlier!
I also dabbled with Firefox, which provided similar results as Chrome. Sadly, Arc was the outlier, as the new browser on the block froze everything, and I had to forcibly shut down the VM. Once I got back into OS, I ran Fantastical, TickTick, Freeform, and some other productivity-oriented macOS apps, and they all ran as well as you’d expect by now. Finally, the last success I had was with Ollama.
While I never expected macOS to be able to handle full-fledged LLMs, Ollama exceeded my expectations. After installing the app from the website, I used the terminal command to install Llama 3.1 and the regular variant of Mistral. The former was just a tad slower than running an LLM natively on my old PC, though Mistral wasn’t far behind either. And with that, it’s time to talk about the apps that didn’t work, and boy, are there plenty of them!
The macOS VM couldn’t run virtualization tools and demanding apps
My dreams of booting Windows 11 from macOS running on Proxmox were laid to rest
The Parallels Desktop app was one of the first things I tried to install on my Proxmox-powered macOS machine. Unfortunately, I couldn’t even get the tool to boot up, let alone run a Windows 11 VM. Meanwhile, I was able to enter the main menu and create a virtual machine in VMware Fusion Pro, though all my attempts at running said VMs ended in failure.
In a similar vein, Pixelmator refused to start, as my fake Macintosh (Fakeintosh?) was incompatible with Apple’s Metal graphics technology. Affinity Photos showed some promise when it immediately booted up, though the app couldn't display the imported images. Apple Maps had a similar issue where it couldn’t render any location when I explicitly searched for it.
Before going on a downloading frenzy, I tried to use Surkshark to fix the network issues. But as it turned out, the VPN provider couldn’t connect me to a single static or dedicated IP. Steam, too, failed at the beginning of the installation process. Not that I could play any games on a system without a proper GPU, mind you. Interestingly enough, I was able to get the built-in Chess game to run, though the performance was on the unbearably low side.
Finally, I tried to install Xcode from the App Store. Sadly, you need to be on the newer versions of macOS, like Sonoma, to access Xcode. And since I recalled Sonoma's terrible performance the last time I attempted this project, I decided not to upgrade to macOS version 14. I also tried the unofficial method to install Xcode 14 by grabbing its DMG file from the Internet Archive and using some terminal commands to set it up, though it didn’t go as well as I expected. Nevertheless, I’d had my fill of macOS and decided this was a good stopping point for the experiment.
So, what can you run on a macOS VM in Proxmox?
After compiling the list of apps that did and did not work, I saw a success rate of slightly above 60%. In 2024, the Ryzen 5 5600X isn’t worth writing home about, especially with the current-gen 9600X delivering amazing performance on all fronts, and I believe adding more RAM, especially DDR5 memory, could’ve produced better results.
AMD Ryzen 5 9600X and Ryzen 7 9700X review: The newly crowned kings of efficiency
Your power supply will be twiddling its thumbs.
If I were to upgrade this project, I’d start by getting a high-end CPU and pairing it with a GPU from AMD’s outdated RX 500/5000/6000 series, as Team Red’s graphics cards have much better chances of working with macOS than those manufactured by Nvidia or Intel. With the amount of work it takes to troubleshoot all the minor errors, running macOS on Proxmox is a test of patience. But if you’re willing to put up with this ordeal, it’s a good way to access basic macOS apps and gain some first-hand experience with the virtualization behemoth, Proxmox.
