Mac pro升级 MacOS 10.15 Catalina 后根目录是只读的, Recovery OS不能访问

  • Post author:
  • Post category:其他




前言

升级这个事情尽量还是少做比较好,升级MacOS之后很多以前的文件换目录了,头痛了很久!因为代码里面的目录是从跟目录开始的,数据转移之后程序没法跑起来,直接建立新目录的话会报错:

xuemins-MacBook-Pro:/ zhuxuemin$ mkdir -p /test
mkdir: /test: Read-only file system

当然很多百度出来的文章是关闭系统文件保护,然后执行csrutil disable

c。在开机状态下按住alt键可以选择RecoveryOS,但是我没得那个选项。

估计找到了那个选项就可以了,我把方法也贴出来



方案一

Macbook pro 升级 MacOS 10.15 Catalina 后不能在根目录 创建文件 文件夹,根目录是只读的 ,不能创建不能移动 不能删除

解决办法:

1、关闭SIP 命令行执行csrutil disable 正常启动

2、重新挂载根目录 命令执行 sudo mount -uw /

3、命令执行 mount

操作完之后 为了计算机安全可以打开 SIP 命令行执行csrutil enable 正常启动

我这招不顶用



方案二

这个主要是synthetic.conf文件中的配置,首先可以使用man synthetic.conf看到这个文件的,我大致解释一下:

  synthetic.conf describes virtual symbolic links and empty directories to be created at the root mount point.
     Because the root mount point is read-only as of macOS 10.15, physical files may not be created at this loca-
     tion. All writeable paths must reside on the data volume, which is mounted at /System/Volumes/Data.

这里其实就是说在macOS 10.15之后物理文件是不能在root目录下面穿件的,所有的文件都放到了/System/Volumes/Data目录下面

     synthetic.conf provides a mechanism for some limited, user-controlled file-creation at /.  The synthetic
     entities described in this file are synthesized by the kernel during early system boot. They are not physi-
     cally present on the disk, but when the system is booted, they behave as if they were within certain parame-
     ters.

synthetic.conf提供了用户希望把文件创建到/目录下面的机制,当然即使我们这样子看到,实际文件也不会真正放到根目录下面,配置参数之后重启会生效,其实这里就是提供一种映射机制

     synthetic.conf is intended to be used for creating mount points at / (e.g. for use as NFS mount points in
     enterprise deployments) and symbolic links (e.g. for creating a package manager root without modifying the
     system volume).  synthetic.conf is read by apfs.util(8) during early system boot.

synthetic.conf 的目的其实就是把目录挂载到我们的/下面,其实这个就是我们要。

读完之后我们可以了解到这个其实就是升级之后Mac提供给我们的官方做法。

于是乎我按照文档配置。

sudo vim /etc/synthetic.conf
添加一行记录(如果有两列需要使用 tab 进行分割,注意空格分割是无效的),然后重启即可
举例
bar System/Volumes/Data/bar
将会在根目录下创建 bar 软连接到根目录下的 System/Volumes/Data/bar 目录

重启之后我的目录是这个样子的:

......
lrwxr-xr-x   1 root  wheel    23  6 25 14:59 bar -> System/Volumes/Data/bar
......

这个是有效的~



后记

其实之前为了做恢复模式下面改配置折腾了好久,后面才看得这个配置,虽然最后比较简单,我觉得可以帮到一部分人,便记录下来了~~



版权声明:本文为zhuxuemin1991原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。