在 Catalina 中创建根符号 link 的正确方法是什么

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

我需要通过在 /reports/2019/ 放置一个目录来复制我们的生产环境,正如你所知,这在 Catalina 中不再可行(至少在不禁用 SIP 的情况下。

这样做实际上是在禁用安全性,但我想有一种正确的方法可以做到这一点。

有没有办法在不禁用 SIP 或不损害安全性的情况下创建像 /reports 这样的链接到读写卷的符号链接?

您可以通过向 /etc/synthetic.conf 添加条目来向根文件系统添加符号链接。

来自 synthetic.conf(5) 手册页:

synthetic.conf specifies a single synthetic entity per line. Each line may have one or two columns, separated by a tab character. If a line has a single column, it denotes a virtual empty directory to be created at /. If a line has two columns, it denotes a symbolic link at / whose link target is given in the second column.

因此,如果您的可写目录位于 /Users/myself/reports,您可以通过执行以下操作将其符号链接到 /reports

  1. sudo vi /etc/synthetic.conf
  2. 添加条目 reports Users/myself/reports,其中空的 space 是制表符 (Ctrl-V + Tab)。
  3. 重启

目录应该在重启后显示。

非常感谢记录@eqzx

在 2021 年的大苏尔,情况发生了一些变化。出于未定义的原因,我得到了 crashloop。安全模式不会帮助你。如前所述,从恢复开始是可能的。 Apple 支持不会帮助您,只会告诉您进行维修。 修复系统,除了浪费你的时间,什么也解决不了。

解决方法是:

  • 以恢复模式启动 (CMD+R)
  • 打开一个终端
  • 您可能希望在 /etc 或 private/etc 下看到您的 synthetic.conf...它不会在那里
  • 装载数据卷:diskutil apfs unlock "Macintosh HD - Data"
  • 如果你好奇:diskutil info disk2s2
  • cd 进入数据卷:cd /Volumes/"Macintosh HD - Data"
  • cd private/etc
  • 从这里您可以使用 rm synthetic.conf
  • 删除文件

您现在可以重新启动,创建一个新文件,可能会再次卡住 :) 并使用相同的解决方案修复它。