Alternative title: “How I Wasted Five Hours of my Life Doing Something That Should Have Been Really Simple”.
A few months ago, my original Apple AirPort Time Capsule, purchased October 2009, finally bit the dust. The original 1TB hard disk drive built into the network router + wireless access point + file share server device succumbed to its age. 11 years in tech years is basically 111 years, after all.
As sad as it was to lose the oldest working piece of tech I owned (along with all my historical snapshots), I had been mentally prepared for the inevitability and what the next steps were.
Since macOS High Sierra, all Macs are capable of sharing any storage volume — internal or external — as a Time Machine backup disk over the local network. Previously that feature had been reserved for the now-defunct macOS Server suite. That feature relocated into the File Sharing pane of System Preferences, allowing anyone to setup their own Time Machine destination.
So now all I had to do was purchase a large solid state drive, plug it into the family Mac mini, and BOOM! Time Machine lives again on the network. Easy.
It wasn’t.— Narrator
If you want to jump right to the solution and skip my rambling and public troubleshooting, just go to the bottom.
A Quick Word on File Systems
I’m not going to break down all the differences between HFS+ and APFS. It’s entirely irrelevant to this discussion and quite honestly is way beyond my understanding. Just know this:
For about fifteen years, HFS+, labeled “Mac OS X Extended (Journaled)”, was the default file system on Macs since MacOS 8.1. It was neat and did a lot of things. Apple introduced APFS as the default file system with macOS High Sierra in 2013, along with the adjacent iOS releases. APFS was neater and did even more things.
From then on, all new Macs shipped with macOS High Sierra and above were formatted as APFS. Anytime you format a new storage device, it defaults to APFS. When I received my new SSD that was destined to be the Time Machine volume, naturally I plugged it in and formatted it as APFS.
And here’s where the trouble begins…
Time Machine, a key feature of macOS since Mac OS X 10.5 Leopard, does not support APFS. Well, currently it does’t. Apparently Time Machine on macOS Big Sur will support APFS. I’m running the macOS Big Sur Beta on my personal MacBook Pro. The Mac mini acts as a media server as well as a VM host for many network resources, including a web server for this website. Therefore, it’s still on the last stable build of macOS, 10.15 Catalina.
The differences of APFS support became really problematic in troubleshooting the ultimate cause of the upcoming fiasco.
You cannot have your cake and eat it, too. Unless you have two cakes.
The first thing I did was plug the empty SSD into the Mac mini via the USB 3 port. Once I got the Mac mini backed up, I would share the drive over SMB. I turned on Time Machine, selected the SSD, enabled encrypted backups, and started the backup.
However, right before the backup initialized, Time Machine informed me that the drive would have to be “erased” because the drive was not compatible. In Apple speak, that means it has to be reformatted. It was here that I realized APFS was a no-go. It reformatted the SSD as HFS+ Encrypted, since I had selected encrypted backups; this, later, proved to be an issue.
Since the Mac mini is basically a glorified internal server, there was not much to backup when excluding the /System and /Applications directories, so the initial backup went really quick.
(Aside: My old Time Capsule had a 5400rpm hard disk drive and a 100Mbps network card. A 10Gb initial backup would have taken an hour. This Samsung EVO SSD over a 5Gbps USB 3 bus took about 30 seconds with the symlink overhead. Pure ecstasy.)
With the Mac mini backup completed, I went into System Preferences > File Sharing, selected the drive, and enabled it for use with Time Machine. What this does is broadcast the drive’s availability and feature set over Bonjour. If your network is set to block multicast packets, Bonjour, and thusly Time Machine over the network, will not work. You won’t even see the drive as an option on networked Macs.
On my MacBook Pro, I enabled Time Machine, selected the networked drive (yay, that part worked), logged in with my Mac mini credentials, and started it up.
Except, there was an error: “You do not have the necessary read, write and append privileges on the selected network backup disk.”
… okay. That doesn’t make sense. So just to be sure, I added my local account to the file sharing pane for the shared Time Machine drive, and I added my account to the drive’s permission set (CMD+I).
Still, same error.
To be safe and because I’m relatively insane, I repeated the process to no avail.
Solution: A Pair of Volumes
To summarize the previous discoveries:
- To use a volume as a local Time Machine, it can and should be formatted as APFS
- To use a volume as a networked Time Machine, it can only be formatted as HFS+.
- A networked volume cannot be used by the host/local machine.
So what do you do if you only have one external drive (or only one free USB port) and you want to have a networked Time Machine drive and backup the host machine? The “duh” solution I came up with after hours of pulling my hair was to partition the drive. One partition was ten percent of the drive, formatted APFS for host backups, and the remainder was an HFS+ partition for networked backups. Time Machine does not know the difference between two partitions/volumes and two separate external storage devices.
Of course this is not the most efficient use of space because these partitions are not flexible per the needs of the backup. You’ll have to figure out how much your host machine needs. (Pro tip: backup volumes should be 5x-10x the size of the data being backed up. If your estimated initial backup size is 200GB, you’ll need 2TB.)
Finally. Both the host Mac and networked Macs were able to backup to the external SSD.
Is this annoying? Yes. Should Apple fix it? Yes. Will they? Hell no.