前言
升级这个事情尽量还是少做比较好,升级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 ......
这个是有效的~
后记
其实之前为了做恢复模式下面改配置折腾了好久,后面才看得这个配置,虽然最后比较简单,我觉得可以帮到一部分人,便记录下来了~~