Read-only file system (macOS system volume) macOS Origin: Platform & cloud OSI layer 7 · Application Last updated 5 Nov 2026

macOS: mkdir: /data: Read-only file system / touch: /usr/bin/x: Read-only file system

Since Catalina the system volume is read-only and sealed; you can't create directories at / or modify system folders.

Exact message you may see mkdir: /data: Read-only file systemtouch: /usr/bin/x: Read-only file systemRead-only file system macOS Catalinamkdir: /opt/data: Read-only file systemcannot create directory at /: Read-only file system
Seen on: macOS

Meaning

Put data in your home directory, /usr/local, /opt (via /etc/synthetic.conf on Catalina+ for new top-level names), or /Users/Shared. To add a root-level directory, create /etc/synthetic.conf entries and reboot. Docker/bind mounts must use shared paths.

Common causes

  • Creating a folder at the filesystem root
  • Writing to /System, /usr, /bin
  • Installers assuming writable root
  • Scripts expecting /data, /srv, /mnt
  • Disk/volume mounted read-only after errors

⚡ Quick fix

  1. Use ~/, /usr/local or /opt/homebrew
  2. For a root alias add data /Users/me/data (tab-separated) to /etc/synthetic.conf and reboot
  3. Check mount: mount | grep " / "

Detailed fix by platform

macOS

  1. mount | head -3 and cat /etc/synthetic.conf

How to diagnose

  1. Path — Root-level or system?
  2. Alternative — Home or /usr/local?
  3. Mount — ro by design?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

Where this error sits

Origin: Platform & cloud. Errors that are often confused with or caused by this one (click to open):

Finder error code -36 — macOS: The Finder can't complete the operation because some data in "x" can't be read or written. (Error code -36) (macOS)Finder error code -36Finder error code -43 — macOS: The operation can't be completed because one or more required items can't be found. (Error code -43) (macOS)Finder error code -43Homebrew Cask: It seems there is already an App at — Homebrew: Error: It seems there is already an App at '/Applications/Chrome.app' (macOS)Homebrew Cask: It see…Homebrew: No available formula with the name — Homebrew: Error: No available formula with the name "x". Did you mean ...? (macOS)Homebrew: No availabl…Operation not permitted (macOS privacy) — macOS: Operation not permitted — Terminal/app lacks Full Disk Access (TCC privacy protection) (macOS)Operation not permitt…rm/mv: Operation not permitted (System Integrity Protection) — macOS: rm: /usr/bin/python: Operation not permitted — even with sudo (macOS)rm/mv: Operation not …Your Command Line Tools are too outdated — Homebrew: Error: Your Command Line Tools (CLT) are too outdated. Update them from Software Update / Please update to the latest macOS (macOS)Your Command Line Too…zsh: bad CPU type in executable — macOS (Apple Silicon): zsh: bad CPU type in executable: ./tool (macOS)zsh: bad CPU type in …Read-only…

Explore the map of this error Full error map →

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.

💬 What worked for others

No tips yet — did something else fix this for you?

Share what worked for you

Tips are checked by an editor before they appear. Links are removed.