All Posts by Date or last 15, 30, 90 or 180 days.
also by Lloyd: diglloyd.com photography and WindInMyFace.com
Thank you for purchasing through links and ads on this site.
OWC / MacSales.com...
diglloyd Deal Finder...
Buy other stuff at Amazon.com...
Up to 1527MB/s sustained performance
877-865-7002
Today’s Deal Zone Items... Handpicked deals...
$1399 $1199
SAVE $200

$120 $40
SAVE $80

$849 $599
SAVE $250

$610 $444
SAVE $165

$1299 $999
SAVE $300

$299 $169
SAVE $130

$2799 $2499
SAVE $300

$1499 $899
SAVE $600

$799 $639
SAVE $160

$1180 $1050
SAVE $130

$150 $90
SAVE $60

$2399 $2159
SAVE $240

$1999 $1799
SAVE $200

$1099 $929
SAVE $170

$220 $170
SAVE $50

$1199 $1079
SAVE $120

$599 $199
SAVE $400

$819 $649
SAVE $170

$348 $298
SAVE $50

$2799 $2149
SAVE $650

$750 $450
SAVE $300

$1099 $929
SAVE $170

$280 $225
SAVE $55

$1299 $1169
SAVE $130

$998 $498
SAVE $500

macOS Catalina: Read-Only Boot Volume Precludes Use of Top-Level File System Namespace / Paths (UPDATE: Solution with /etc/synthetic.conf)

How to Stop macOS from Urging You to “Upgrade” to macOS Catalina
Professionals Should Stay Away from macOS Catalina for Six Months
Caution on Upgrading to macOS Catalina — Could Cost You Money and Functionality

Original post follows, or go to the solution using /etc/synthetic.conf.

...

What follows won’t matter to ordinary users, who run mainstream apps and such. But for developers like myself and those using a Mac for complicated tasks, it’s a sticky “forever downgrade”. As in a headache that has no cure.

I run 5 Macs with development code and web servers with various versions of macOS. Each of these has differing hardware, in particular the drive/volume setup. They run different OS versions, so standardizing on things like paths is important to being able to share setup, launch daemons, scripts, etc.

No more top-level namespace in macOS Catalina

In macOS Catalina, the boot volume is now a read-only volume. That may be a good thing for security on its own, but it means that a convenient top-level namespace is now impossible.

For example, a short and sweet path such as “/web/” prior to Catalina could be made with a symbolic links via “ln -s” at the command line.

Every benefit has a cost, and the cost here is zero for most users, so in numeric terms “no one cares”. But for me and other developers it is a forever downgrade.

Apple does not see fit to offer any tool to map in such paths, not even for symlinks.

Would it really be that hard for Apple to offer a “firmlink” tool? Of course not, but it is a longstanding pattern in which the needs of professionals and advanced users are ignored. Such hassles drive people to things like Linux and Windows.

What namespace to use for paths?

To tie together the location of things and especially for command line convenience and efficiency, I have used symbolic links (“symlinks”) for years, e.g.:

ln -s /Volumes/Master /Master

On some other machine, Master may just be the directory itself (not a symlink). On another system, a volume that is a partition off the internal SSD. On another system, a separate drive/volume.

The root level namespace is valuable in creating the same apparent file structure across all my machines machines regardless of whether it is one drive or several, mapping a fixed path to a variable place on different volumes, e.g.:

/web
/tools
/Master
/Scratch
/Attic
etc

The new read-only file system in Catalina precludes creation of any such paths. In some senses this is the most damaging aspect of Catalina, because it incurs a hit forever whenever working at the command line.

This type of usage becomes impossible:

cd /web/...

... changing to the hassle of a longer path with the constant hassle of typos in typing it:

cd ~/web/...                           <=== home directory not good for a daemon process
cd /Users/lloyd/web/...                <=== home directory not good for a daemon process
cd ${WEB}/...                          <=== uggg...
cd /System/Volumes/Data/web/...        <=== painfully long and tedious
cd /usr/local/bin/web/...              <=== painfully long and tedious

Since I use such paths at the command line extensively, this is not a minor matter, leading to more typing and more errors. Aliases and scripts can reduce the pain, but the bottom line is that it is a unfixable never-ending nuisance.

Best alternative

I cannot think of any alternative that is not a headache or problem is some way. For example, using one’s home directory (the ~/ prefix) is generally unsuitable for a daemon process since a daemon process should not be tied to some particular user account.

I don’t yet know how I’ll handle this. I cannot find any way to have a short namespace root to which I can appen “web”, “tools”, etc. Moreover, the change must happen on all five of my machines, including my web servers.

Solution: mount points vs /etc/synthetic.conf

Thanks to reader Mark A for sending me this information. It is incredible that Apple does not see fit to mention this key workaround in About the read-only system volume in macOS Catalina.

Mark A writes:

A few pages that you should be able to cobble together a solution short of reworking your entire scheme.

http://www.drukspijker.nl/drukspijker/personal/directories-at-root-on-osx-catelina-how-to/
https://arstechnica.com/civis/viewtopic.php?f=19&t=1459515
https://superuser.com/questions/1467982/how-to-create-a-firm-link-in-latest-apfs
https://github.com/NixOS/nix/issues/2925

MPG: awesome! Tested and it works.

A snippet from the /etc/synthetic.conf I created:

Master Volumes/Master
tools Volumes/Master/diglloyd/tools
web Volumes/Master/diglloyd/web


Save the tax, we pay you back, instantly!
View all handpicked deals...

ezviz CV-200 Mini Plus 1080p Wi-Fi Camera with Night Vision & 16GB microSD Card (Black)
$120 $40
SAVE $80

diglloyd.com | Terms of Use | PRIVACY POLICY
Contact | About Lloyd Chambers | Consulting | Photo Tours
Mailing Lists | RSS Feeds | Twitter
Copyright © 2020 diglloyd Inc, all rights reserved.
Display info: __RETINA_INFO_STATUS__