问题复现
我在升级 macOS Catalina 系统后,桌面创建了一个迁移的项目
文件夹,当时比较好奇,进入查看发现里面是我之前创建的一些,这些文件我都存放在 /data
目录下,于是我在 iTerm2 中 想进入这个文件夹,发现文件夹已经被删除了,而且所有的文件都在桌面文件夹中保存的,所有我想再次移动进去,但是提示Read-Only filesystem
。
于是查阅了资料(https://support.apple.com/en-us/HT210650)发现官方说是升级到catalina后,整个硬盘会分为2个区,一个是只读的,一个是可写的,用来存放数据。但是自己已经习惯了所有数据都存放在 /data
目录下,所以这个问题必须得解决呀!!!
关注本人公众号【冉野】免费领取1000G付费课程资料,总有一款适合你的,最主要是同步更新,活动有限,先到先得,最后一天。
解决方式
方式一(重启Mac失效,不推荐)
- 1.重启电脑 长按
command
+R
进入安全模式 - 2.关闭SIP:打开命令控制台输入
csrutil disable
- 3.重启电脑(正常启动)
- 4.打开 terminal 输入
csrutil status
此时状态应该是disabled
System Integrity Protection status: disabled.
- 5.在 terminal 中继续输入
sudo mount -uw /
经过上述步骤之后,我们就可以创建 mkdir /data
命令了,并且会创建成功,但是电脑重启后,操作这些文件还是会提示说只读,不允许修改,还需要执行命令 sudo mount -uw /
才可以,这就很不方便了,当然我们还可以设置开机启动自动执行,但是这都太 low了。
方式二(软链,推荐)
- 1.重启电脑 长按
command
+R
进入安全模式 - 2.关闭SIP:打开命令控制台输入
csrutil disable
- 3.重启电脑(正常启动)
- 4.打开 terminal 输入
csrutil status
此时状态应该是disabled
System Integrity Protection status: disabled.
- 5.在 terminal 中继续输入
sudo mount -uw /
是不是感觉上面步骤似曾相识呢,哈哈,接下来的步骤才是重点啦!!!
- 6.将需要的目录软链接到根目录
sudo ln -s /Users/用户名/data /
-
- 打开 SIP:重复1,2,3步骤,第2步命令修改为
csrutil enable
- 打开 SIP:重复1,2,3步骤,第2步命令修改为
上面第六步的/Users/用户名/data
可以替换到其他可以创建的目录都可以,第七步也可以不执行,如果不熟悉软链的可查看附录。
查看
方式二执行完成之后只执行以下命令查看
$ cd /
$ ls -al
其实我们可以看到,根目录的/etc
/home
/tmp
等都是软链过来的。所以肯定是相当可靠的。
附录
软链接
ln [option] source dist 建立软链接
[option]:
-f 建立时将同档案删除
-i 删除前进行询问
-s 建立软链接
ln source dist 建立硬链接
实例
# 建立软链接之前
vim /Users/XXX/a/b/c/d/e/f/g/h/test.txt
# 建立软链接
sudo ln -s /Users/XXX/a/b/c/d/e/f/g/h /h
# 建立软链接之后
vim /h/test.txt