macos系统卷默认只读是设计机制而非故障,从catalina起通过只读快照隔离系统与用户数据;需修改时须进恢复模式禁用sip和authenticated-root,挂载系统宗卷到临时目录操作并生成新快照,完成后应立即恢复保护。

macOS 系统卷(即启动盘,如 Macintosh HD)默认处于只读状态,这是从 macOS Catalina 开始引入的系统保护机制,目的是隔离系统文件与用户数据。它不是故障,而是设计使然——系统分区被挂载为只读快照,普通用户甚至 root 都无法直接修改 /System、/usr、/bin 等目录下的文件。
确认是否为系统卷只读(非外置硬盘)
如果你在终端执行 ls -l / 或尝试保存文件到 /usr/local/bin 时提示 “Read-only file system”,且操作对象是本机启动盘(而非外接硬盘),那基本可以确定是系统卷保护生效。此时:
– 不要尝试用 sudo mount -uw / 强制重挂载(Big Sur 及之后版本会失败);
– 不要盲目关闭 SIP(安全完整性保护),除非你明确需要修改系统底层行为;
– 大多数日常需求(如安装 Homebrew、配置开发环境)其实无需触碰系统卷,应优先使用用户可写路径(如 ~/Library、/opt/homebrew)。
必要时的安全解锁流程(仅限高级用途)
若确需临时修改系统文件(例如调试内核扩展、替换系统字体、定制启动项),必须按顺序完成以下三步:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 重启进入恢复模式:关机后按住电源键不放,出现启动选项后选择「选项」→「继续」
- 在恢复环境的菜单栏打开「终端」,依次执行:
csrutil disablecsrutil authenticated-root disable
(注意:这会降低系统安全性,完成后务必记录并计划重新启用) - 重启回正常系统,用
diskutil apfs list查出系统宗卷(如disk1s1),再挂载到临时目录:sudo mkdir /mnt && sudo mount -o nobrowse -t apfs /dev/disk1s1 /mnt
所有修改应在/mnt下进行,完成后需运行sudo bless --folder /mnt/System/Library/CoreServices --bootefi --create-snapshot生成新快照并重启生效
替代方案:绕过系统卷限制的常用做法
绝大多数用户遇到的“写不了”问题,其实源于误把目标设在了系统路径。更稳妥的做法是:
- 将自定义脚本、二进制工具放在
~/bin或/opt/bin,并把该路径加入$PATH - 用 Homebrew 安装软件时,默认安装到
/opt/homebrew(Apple Silicon)或/usr/local(Intel),这些位置本身可写 - 系统级配置(如
launchdplist)应存入/Library/LaunchDaemons(需管理员密码),而非/System/Library - 字体文件统一放入
~/Library/Fonts或/Library/Fonts,无需动系统字体目录
恢复系统保护与验证状态
完成必要修改后,强烈建议恢复 SIP 以保障系统稳定:
- 再次进入恢复模式,终端中运行:
csrutil enable和csrutil authenticated-root enable - 重启后执行
csrutil status,确认输出为 enabled - 检查系统完整性:
sudo tmutil compare可比对当前快照与上次备份差异;diskutil verifyVolume /可确认宗卷健康状态










