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

22
我需要创建一个目录在 /reports/2019/ 来复制我们的生产环境。你知道在 Catalina 中这是不可能的,除非禁用 SIP。但这样做实际上是禁用了安全性,我想肯定有正确的方法来处理这个问题。
有没有一种方法可以创建一个符号链接像 /reports,它链接到可读写的卷,而不需要禁用 SIP 或者妥协安全性?

1
您可以禁用SIP,创建符号链接或目录,然后重新启用SIP。 - Ken Thomases
2个回答

32

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

synthetic.conf(5)手册页可知:

synthetic.conf每行指定一个合成实体。 每行可能有一列或两列,由制表符分隔。 如果一行只有一列,则表示要在/创建虚拟空目录。 如果一行有两列,则表示/ 上的符号链接,其链接目标在第二列中给出。

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

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

重启后该目录应该出现在列表中。


1
太好了!文件/etc/synthetic.conf不存在,所以我不得不创建它。一切都像魔法般地运行。 - Federico Piazza
3
哇,感谢您对制表符的澄清。我最初试用了空格,结果导致了无限重启循环。我不得不通过进入恢复模式来删除 synthetic.conf 文件。 - Matt
2
我遇到了和Matt一样的问题——由于在文件中使用了空格而不是制表符,系统似乎陷入了启动循环。为了解决这个问题,我必须(1)进入恢复模式(开机时按住CMD-R),(2)打开终端(实用工具->终端)(3)通过diskutil apfs unlock "Macintosh HD"挂载APFS驱动器,然后(4)从挂载的磁盘中删除synthetic.conf文件(5)再次启动,并使用正确的制表符创建synthetic.conf - eqzx

4
非常感谢您记录了这个@eqzx。
2021年,随着Big Sur的到来,有些事情发生了变化。由于未知原因,我遇到了崩溃循环。安全模式对您没有帮助。如上所述,从恢复模式启动是可能的。苹果支持将不会帮助您,但会告诉您进行修复。 修复系统将浪费您的时间,却解决不了任何问题。
解决方案为:
- 在恢复模式下启动(CMD+R)。 - 打开终端。 - 您可以期望在 /etc 或 private/etc 下看到您的 synthetic.conf...但它不在那里。 - 挂载数据卷:diskutil apfs unlock "Macintosh HD - Data" - 如果您好奇:diskutil info disk2s2 - 进入数据卷:cd /Volumes/"Macintosh HD - Data" - cd private/etc - 从这里可以使用 rm synthetic.conf 删除文件。
现在,您可以重新启动、创建新文件,并可能再次出现卡顿 :),但可以用相同的解决方案修复它。

1
谢谢@Chevdor 我被同样的问题困扰了半天。 这让我今天很开心。 - Raja Vikram
我正在使用Big Sur,并且在/etc/synthetic.conf中添加条目对我有效。创建此文件并填充条目时需要遵循一些约定。这些在AskDifferent网站的一个答案中有很好的文档记录。遵循这些说明可能会防止发生崩溃循环。但结果因人而异。 - Karthic Raghupathi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接