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

**Code:** `Read-only file system (macOS system volume)` · **Category:** macOS · **Seen on:** macOS

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

## 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?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/macos/read-only-file-system-system-volume)
