{
  "slug": "read-only-mount",
  "term": "Read-only mount",
  "aliases": [
    "Linux read-only mount"
  ],
  "definition": "A read-only mount restricts filesystem modification through Linux mount state, whose scope can be a VFS mount node, the filesystem superblock, or both.",
  "note": "The util-linux v2.41.1 manual distinguishes both layers: a requested ro setting applies to both layers by default for standard mounts, but a read-only bind mount can leave another path writable. [mount-scope] Btrfs may still replay its recovery log during a read-only mount. [replay] Since util-linux 2.41, optional ro=vfs and ro=fs arguments can select a layer; the v2.41.1 manual marks them experimental and requires the file-descriptor-based mount API. The old mount(2) interface silently ignores the optional argument. [mount-scope]",
  "limitations": [
    {
      "text": "Read-only access through one path does not establish that the underlying device was unchanged.",
      "citationIds": [
        "mount-scope",
        "replay"
      ]
    },
    {
      "text": "The requested option spelling alone does not verify the effective layer; findmnt can report VFS-OPTIONS and FS-OPTIONS separately, but those flags are not an audit of device writes.",
      "citationIds": [
        "mount-scope"
      ]
    }
  ],
  "related": [
    "btrfs-read-only-subvolume",
    "block-device-read-only",
    "btrfs-tree-log"
  ],
  "citations": [
    {
      "id": "mount-scope",
      "title": "util-linux v2.41.1: mount(8), Read-only Setting Notes",
      "url": "https://kernel.googlesource.com/pub/scm/utils/util-linux/util-linux/+/refs/tags/v2.41.1/sys-utils/mount.8.adoc",
      "accessed": "2026-10-15"
    },
    {
      "id": "replay",
      "title": "Btrfs documentation: tree-log replay and rescue options",
      "url": "https://btrfs.readthedocs.io/en/latest/btrfs-man5.html",
      "accessed": "2026-10-15"
    },
    {
      "id": "hesela",
      "title": "Hesela: Btrfs tree logs and read-only scope boundaries",
      "url": "https://hesela.com/analyses/btrfs-tree-log-read-only-replay/#read-only-scopes",
      "accessed": "2026-10-15"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-15"
}
