macOS启动卷默认只读是Catalina起的安全设计,通过只读快照隔离系统文件与用户数据;日常操作应使用~/bin、/opt/homebrew等可写路径,确需修改系统文件须进恢复模式禁用SIP和authenticated-root后挂载操作并生成新快照。
macos apfs 启动卷(如 macintosh hd)默认只读,不是故障,而是从 catalina 开始的系统保护机制——它通过只读快照隔离系统文件(/system、/usr、/bin 等)与用户数据,防止意外篡改。你无法用 sudo 直接保存或删除这些路径下的内容,这是正常设计。
先确认是不是系统卷只读
在终端执行:ls -l / 或尝试向 /usr/local/bin 放一个文件,若提示 “Read-only file system”,且目标是本机启动盘(非外接硬盘),那基本就是系统卷保护生效。
此时:
– 不要运行 sudo mount -uw /(Big Sur 及之后会失败);
– 不要盲目关 SIP,除非你清楚自己在做什么;
– 日常开发、装 Homebrew、配环境等,完全不需要碰系统卷。
日常需求请绕开系统路径
绝大多数“写不了”的问题,其实是把文件放错了地方。推荐做法:
• 自定义脚本或工具放在 ~/bin 或 /opt/bin,再把该路径加入 $PATH
• Homebrew 默认装到 /opt/homebrew(Apple Silicon)或 /usr/local(Intel),这两个位置本身可写
• 系统级配置(如 launchd plist)应存入 /Library/LaunchDaemons(需管理员密码),而非 /System/Library
• 字体统一放进 ~/Library/Fonts 或 /Library/Fonts,不碰 /System/Library/Fonts
确需修改系统文件?必须进恢复模式操作
仅适用于调试内核扩展、替换系统字体、定制启动项等高级场景,且需承担安全风险:
1. 重启并长按电源键 → 进入启动选项 → 选「选项」→「继续」进入恢复模式
2. 菜单栏打开「终端」,依次执行:csrutil disablecsrutil authenticated-root disable
(注意:这会临时削弱防护,务必记下,后续要恢复)
3. 重启回正常系统,查出系统宗卷标识符:diskutil apfs list(找到类似 disk1s1 的系统宗卷)
4. 挂载到临时目录:sudo mkdir /mnt && sudo mount -o nobrowse -t apfs /dev/disk1s1 /mnt
5. 所有修改都在 /mnt 下进行,完成后必须生成新快照才能生效:sudo bless --folder /mnt/System/Library/CoreServices --bootefi --create-snapshot
6. 重启,再进恢复模式,运行 csrutil enable 恢复保护
如果是外接 APFS 硬盘显示只读
那就不是系统保护,而是权限或挂载异常,按以下顺序排查:
• 右键硬盘图标 →「显示简介」→ 展开「共享与权限」→ 点锁图标输密码解锁 → 选中你的账户 → 设为「读与写」→ 齿轮图标 →「应用到包含的项目」
• 检查底部是否勾选了「忽略此卷的物品的所有权」,如有,请取消勾选
• 打开「磁盘工具」→ 左侧选中该硬盘的卷标(不是物理设备)→ 点「急救」→「运行」
• 终端验证:diskutil info /Volumes/你的硬盘名 | grep "Read-Only",若输出 Yes,说明仍被只读挂载,需重做上述步骤


















