Justin Merrill, MBA, BS .:|:. Platform Engineer

Platform | DevOps | SRE | K8s | GitOps | IaC | CICD | Security | IAM | Cloud | Software | Data | APIs

ComputersLinuxMacOS/iOS and Apple

The Journey of Upgrading a Mac Mini to Replace MacOS with Debian Linux

A few years ago, I bought a nearly decade old Mac Mini (Late 2014) for around $150. I wanted to try to have a companion device to my company-issued MacBook and re-learn the more recent versions of the MacOS operating system, since I was very out of practice. There had been substantial changes in configurations, menu options and security features since I last used MacOS, regularly.

After getting everything all set up, being forced to create an account for personal use, and giving away my exact location, blood type, next of kin and Sunday brunch meal preferences, I was finally able to start the upgrade processes from “Catalina” to “Monterey”.

The performance was AWFUL, so far. But sound and video quality was above average for an older system.

I was finally able to have a fully updated MacOS only a few versions behind of the much more modern MacBook I was using for work. Awesome.

But the performance was TERRIBLE. So much frustration. 5+ minute reboot times just to open a single browser tab. Unresponsive keyboard and choppy mouse operation. It was BAD.

I upgraded to a cheap NVMe drive. It was the only thing I could upgrade (easily, without hours of toil, special tools and lots of research to get to the HDD to replace it with an SSD).

I had to buy a “special kit” that allowed for the addition of an NVMe drive (sometimes referred to as a “fusion kit”) the boot time improved but it was quite a pain to copy the existing OS boot drive to the NVMe device. Even after that, the system performance was still rather disappointing.

So after a few months of REALLY trying to love Mac again, I was over it, already. Maybe I need to sell my car and buy a higher end MacBook Pro to enjoy the full experience of MacOS. But I’ve been upgrading and building my own systems for Linux and Windows for decades. The number of Mac products I’ve used in the past never impressed me with their performance, but rather in graphic displays, audio quality, form factor and battery life. None of those were particularly important enough for me to double my spend on similar specs, so I left it up to “workplace chance” should I need to use MacOS over Linux for some reason.

And while I use Windows, MacOS, KDE Plasma, Gnome, xfce, LXDE and a variety of other Desktop GUIs, I am not particularly partial to any one. They all have strengths and weaknesses, pros and con.

Similarly, the command line tools for MacOS -vs- Windows -vs- Linux are considerably important, too.

I like the strides that PowerShell has made in the last decade, but MacOS terminal is much closer to the familiar (sh)ell in Linux. Even though it might be a minor annoyance to manage the host operating system from a CLI that I don’t prefer, it’s still doable. And there are countless client tools for remotely connecting to other terminals of other machines for every operating system, so again, just a minor annoyance at worst, at best a lack of personal preference.

That said, every OS and desktop environment combination has its own nuances when it comes to “out-to-the-box” features, quirks and functions.

I generally prefer bash at the command line (preferably with tabbed windows), and a GUI that can configure multiple network adapters, control sound volume and manage my disks and files systems. Windows, MacOS and Gnome can do this very well, but to varying degrees. LXDE requires some extra effort, whereas xfce is typically “the goldilock” between performance and features for most of my use cases. At the same time, I wouldn’t want to use xfce for my personal PC, but would rather lean on Gnome, Windows or KDE Plasma (in that order). MacOS is rather similar to Gnome in look and feel, but the settings and “hidden menus” to perform software development-centric tasks is tedious and cumbersome for me. Windows and its constant notifications and update requirements exhaust my patience, too.

So in my exploration of options for what I could do with this “beautiful silver brick” with an Apple logo on it (Mac Mini – Late 2014), I came across a few articles on how to install a Debian OS instead of MacOS, with minimal sacrifices.

While it is technically possible to upgrade the HHD to an SSD in the 2014 Mac Mini, it would take more time and effort and specialty tools that I’m willing to spend, since the NVMe is already installed much more easily. So not only could I “switch back” to the MacOS boot disk, if a Debian Linux installation failed for some reason, but I could also benefit from the NVMe as a boot disk and test drive Debian on a Mac with various desktop options.

In the use case of only having 4GB of RAM available (soldered in, not upgradable…), I mentally selected xfce.

Now I have a plan, and I’m ready to do this!

I figured out the magic key combos needed to boot from a USB device with Debian 11.

Tracking down these nuances and variations for simply booting from a USB device was also often painful. Depending on the year/model of the Mac Mini, these key combinations might be different. On a non-Mac (PC) Keyboard, the combination for the Intel-based Mac Mini (Late 2014) model that gets you into the boot menus for starting from a USB drive with an ISO image “burned” to it is:

Alt + WindowsKey + R

I was finally able to boot from my USB Device with a recent Debian 11 ISO image added. I went through the usual steps, making sure to use the NVMe drive as the boot and system drive and watched the installation unfold *nearly* flawlessly.

After upgrading to Debian, there were a few things that were not quite perfect, though. For example I never did get the native Wi-Fi to work correctly. The Wi-Fi networks appear to be present, but I never was able to actually connect to any networks properly. The same is somehow true for the Bluetooth device drivers, too. I couldn’t use the built-in Bluetooth after the upgrade to Linux Debian 11, but I could see that “an attempt was made”. What I also found frustrating and interesting was even with an external USB dongle added in for Bluetooth, there seemed to be an issue with the already present (and non working) onboard Bluetooth adapter, so I never could get Bluetooth working properly in Debian, either. Perhaps there was a conflict with the device drivers? I tried a few crafty hacks to get things up and running for some form of wireless device communication, but ultimately to no avail. But, ok. At least the system has ethernet and it’s actually useable again.

But, for my use particular use case, I used a hard wired 1000M ethernet cable connection and have been running a few different services like Docker, DNS, Web Servers and more. The generous 500GB of storage space could serve as critical backups or ISOs, etc.

So now that I was able to install Debian to the NVMe drive that I added, I could still theoretically switch back to the “Monterey” MacOS Desktop which was installed in the HDD. But after weeks of fighting with it to perform more than one task at a time, that felt painful to my sanity.

I would still like to find a use for a full 500GB drive that would hopefully last for my more years, given the light use of the machine, despite it being a refurbished purchase. But In order to do that, I would have to commit to never having MacOS run on the device ever again. Or at least without immense effort that I just was not willing to put forth for this device. This is because there are not any easy methods to flash a bootable USB drive with a working MacOS installer for the more modern MacOS versions. There are some people other there on the internet that have gotten very creative and crafty, doing things like getting an older MacOS image through disassembling their machines and

So I made the leap, and overwrote the Apple File System formatted HDD and used the additional 500GB of HDD to benefit my home lab.

Using Alternative Debian Linux Distros – Enter DietPi

As a “happy medium” for my ever revised-downward expectations for this Debian-on-Mac endeavor, I discovered DietPi.

DietPi is a minimalist Debian distribution that comes PACKED with a large variety of lightweight, easy-to-install and configure server and client applications.

There is a terse, yet comforting guide for installing DietPi on a MacMini. There is a bit more detail on possibly getting WiFi to work, also (alas, no mention of Bluetooth, though). Since the Mac Mini is WPA3 capable, I thought it would be awesome to use the device as an in-house VPN and WiFi router to connect mobile devices to for Development and Testing purposes in my home lab. For example, I could store ISO images and iPXE NETBOOT my Hypervisors from them, use Docker Containers as DevContainers in VSCode or VSCodium, I could even keep my modest media library on the 500GB hard drive and connect an HDMI, Thunderbolt or AUX device as a speaker (at least until I sorted out the Bluetooth issue, if ever).

But I admittedly gave up on fighting both the non-working Wi-Fi and Bluetooth drivers/devices and settled for Ethernet with an RF remote keyboard device with some media center control functions built in. Those features aren’t that critical, just more of a fun idea of using the WPA3-enabled Mac Mini Wi-Fi function as an AP for a VPN and using my Bluetooth speakers to listen to audio while remotely controlling playlists. Maybe someday.

I tried DietPi for awhile and was rather impressed by the newfound life that it afforded the Late 2014 Mac Mini. It was now EXPONENTIALLY faster and more powerful than I thought possible, despite having some significant limitations for tasks that require large amounts of RAM or extensive CPU cycles.

I had a fully functional xfce desktop environment (that I could VNC/xRDP into) with docker containers, web servers, DNS Servers, and so many self-hosted cloud and VPN options that I had a hard time choosing between them. This was a *VAST* improvement from the frustratingly slow and inconsistent operation of MacOS.

Win!

But was the end result what I thought it would be?

Hard No.

I did get the experience that I was seeking of using MacOS again, as I wanted, but I have to say that I was very unimpressed with MacOS.

Gnome still wins in design and function, but even more importantly in resource management (in modern systems, xcfe wins for older systems, still).

Unfortunately there are often cases and situations where specific software only works on Windows or Mac enabled devices.

Even more rare there is software that only runs on specific Linux distros.

So there is still immense value in learning each of them well.

I am now confident and able to deem myself a “Power User” with MacOS, again. But rather than spending time learning Apple product-specific details, I would prefer to spend my energies learning new skills, like writing in specific programming languages better, dabble with new features in the latest networking software or hardware or just getting sunlight on my face and taking a break from screen time.

The same is true for Microsoft, outside of AD, Hyper-V evolutions and new Windows Server features.

There are many other Debian based Linux Distributions I may eventually test for the use cases that fit the Mac Mini. Such as perhaps the latest DSL (Revived in 2024 after a 12 year hiatus, that I last used in 2007), Puppy Linux, AntiX or maybe even Alpine or FreeBSD in IntelMacMini. Linux Mint seems to have solved the issue with Wi-Fi on an older Mac Mini, so that might be an option worth exploring. Ubuntu is reportedly working well, too.

Please feel free to reach out and ask questions about any details you might want me to add, or tell me about your own experiences with upgrading to Linux Debian on Apple hardware. I’d be curious to know if there is better compatibility and experiences with other devices or improved specs. Extra bonus points and shoutouts if you can help me solved the Wi-Fi and/or Bluetooth issues with Debian, too (Every deb-based distro I’ve tried has the same flaws described above).

I may or may not spend the additional time and effort one day for moving away from the current Debian distro I found useful enough to change my mind and not to want to throw the device in the trash.

Would I recommend purchasing this device in 2024?

No way.

But, if you already have one, find one for free (or for extremely cheap), there is hope to make it useful again. You might be surprised with what you could do with 1+Ghz of Dual Core CPU power and 4GB of RAM with an efficient software stack and adequate networking.

So for now, having SOME use for the device and its storage capabilities over a hard wired connection is better than what it was before.

I can live with that!

j-merrill

Justin Merrill, MBA, BS .:|:. Platform Engineer Engineer | Software | DevOps | CICD | Cloud | Security | IAM | SRE | K8s | GitOps | IaC | Data | APIs | Platform

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.