可能有一些无法更改源码的老项目或智障项目会使用根目录来搞事情,但现在默认已经不支持对根目录进行修改了。

我是因为想在 Markdown 博客的本地根目录与网站根目录使用同一个图片链接

关闭 SIP 的方法

  1. 重启并按住 Cmd + R 进入恢复模式
  2. 菜单栏 - 实用工具 - 终端
  3. 输入命令 csrutil disable
  4. 重启

macOS 10.15 Catalina

在恢复模式关闭 SIP 后接着执行:

$ sudo mount -uw /

重启后就可以在根目录创建文件夹了。

macOS 11 Big Sur 和 macOS 12 Monterey

不确定 11 和 12 是否需要关闭 SIP,因为我在使用 XtraFinder 所以一直是关着的。

直接对根目录进行软链接会报错:

$ ln -s /Users/dvel/foo/bar /bar
ln: /bar: Read-only file system

现在根目录是只读的,但可以使用 synthetic.conf 文件来创建一个虚拟链接连接到数据盘,类似 ln -s 的软链接。


假设要在根目录创建 abc 文件夹。

编辑 synthetic.conf

$ sudo vim /etc/synthetic.conf

输入内容(中间是 Tab,不是空格):

abc	/Users/dvel/abc

第一个是要创建的文件夹名,第二个是要链接到的现有路径。

保存后重启即可。

示例,创建后的文件夹:

在根目录创建文件夹

Tab 写成空格的解决办法

如果写成了空格,会导致频繁重启,无法进入系统。

进入恢复模式,打开终端输入命令来挂载磁盘后删除 /etc/synthetic.conf 文件::

$ diskutil apfs unlock "Macintosh HD - Data"
$ cd /Volumes/"Macintosh HD - Data"
$ cd private/etc
$ rm synthetic.conf

重启即可。

参考

What is the proper way to create a root sym link in Catalina