在 macOS(Apple Silicon)根目录下创建目录的正确方式
在 macOS 上,我想在根目录(/)下创建一个目录,比如 /data1,用于放置项目数据。
mkdir /data1
结果系统提示:
mkdir: /data1: Read-only file system
一开始我以为是权限问题,于是又试了:
sudo mkdir /data1
但依然报错,说明即使 sudo 也不行。
为什么会这样?
从 macOS Big Sur(11) 开始,苹果对系统盘启用了 Signed System Volume(SSV)签名保护机制。
这意味着:
系统卷 / 是 只读的 APFS 快照;
即使是 root 用户,也不能直接修改;
mount -uw / 在 Apple Silicon(M1/M2/M3)上会报错:
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66
简单来说:根目录是锁死的。
发现关键:synthetic.conf
在查资料的过程中,我找到了苹果文档中提到的机制:
/etc/synthetic.conf – macOS Big Sur 引入的配置文件,用于在根目录创建“虚拟目录”或符号链接。
这就是系统官方预留的“安全白名单”,
允许我们在 / 下扩展目录结构,而不会破坏系统签名卷。
实战步骤
编辑配置文件
sudo vim /etc/synthetic.conf添加内容(每行一个条目,字段间用 Tab 键)
data0 /Users/cuiliang/data0 data1 /Users/cuiliang/data1⚠️ 注意:是 Tab,不是空格! macOS 对这个非常严格,如果用空格分隔会被忽略。
创建实际目录
mkdir -p ~/data0 ~/data1重启系统(必须)
sudo reboot验证结果
重启后执行:
ls -ld /data*
输出:
lrwxr-xr-x 1 root wheel 21 10月 29 17:22 /data0 -> /Users/cuiliang/data0
lrwxr-xr-x 1 root wheel 21 10月 29 17:22 /data1 -> /Users/cuiliang/data1
此时 /data0 和 /data1 都能直接访问:
cd /data1
pwd
# /data1
我要评论
文章归档
2025 年 10 月
2
2025 年 09 月
1
2025 年 04 月
1
2025 年 01 月
1
2024 年 12 月
1
2024 年 11 月
1
2024 年 10 月
2
2024 年 09 月
2
2024 年 07 月
1
2024 年 06 月
1
文章日历
| 2025 年 11 月 | ||||||
|---|---|---|---|---|---|---|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
| 25 | 26 | 27 | 28 | 29 | 30 | 01 |
| 02 | 03 | 04 | 05 | 06 | 07 | 08 |
| 09 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 01 | 02 | 03 | 04 | 05 | 06 | 07 |
文章标签
- Linux
- Go
- Yii
- 新浪
- CentOS
- PHP
- Git
- WSL
- Composer
- Mac
- 入职
- Bootstrap
- macOS
- UCenter
- 厦门
- 出差
- 长沙
- 湖南卫视
- 微博
- Tengine
- YUI
- 泰国
- pecl
- 优化
- GitLab
- 迁移
- rootless
- 年会
- 生日
- Tengin
- RedHat
- Sphinx
- cygwin
- Windows
- Tmux
- Zsh
- 升级
- MySQL
- sql_mode
- Shadowsockets
- 面向对象
- HTTP
- 状态码
- grep
- unoconv
- PPT
- Nginx
- htpasswd
- golang
共 0 条评论