Skip to content

VirtioFS reports incorrect filesystem capacity for an APFS external volume #2713

Description

@a5566123s

Describe the bug

OrbStack reports an incorrect filesystem capacity for a bind-mounted APFS external volume.

The host volume is approximately 2 TB, with about 106 GB free. However, inside a container using an OrbStack VirtioFS bind mount, statfs() reports approximately 465 TiB total capacity and 439 TiB used.

This causes applications such as Immich to display incorrect storage information.

Environment

  • macOS: 15.4.1 (24E263)
  • OrbStack: 2.2.3
  • Docker Engine: 29.4.0
  • Host filesystem: APFS
  • External volume: /Volumes/KIOKA
  • Volume size: 2.0 TB
  • Mount type inside container: VirtioFS

To Reproduce

  1. Create a directory on an external APFS volume:

    mkdir -p /Volumes/KIOKA/test-volume
  2. Start a container with a bind mount:

    docker run --rm \
      -v /Volumes/KIOKA/test-volume:/data \
      alpine:latest \
      df -h /data
  3. Compare the result with the host:

    df -h /Volumes/KIOKA
  4. Read the filesystem statistics from a Node.js container:

    docker run --rm \
      -v /Volumes/KIOKA/test-volume:/data \
      node:22-alpine \
      node -e '
        const fs = require("node:fs");
        const s = fs.statfsSync("/data", { bigint: true });
        console.log({
          blocks: s.blocks.toString(),
          bfree: s.bfree.toString(),
          bavail: s.bavail.toString(),
          bsize: s.bsize.toString()
        });
      '

Actual behavior

On the host:

/dev/disk7s1   1.8Ti   1.7Ti   106Gi   95%   /Volumes/KIOKA

Inside the container, /data reports:

Filesystem      Size  Used Avail Use%
mac             1.9T  1.8T  107G  95%  /data

However, Node.js calculates the following from statfs():

total: 465.75 TiB
used:  439.22 TiB
free:   26.53 TiB

The relevant values are:

blocks: 488374545
bfree:  27817877
bavail: 27817877
bsize:  1048576

Expected behavior

The container should receive filesystem statistics matching the host volume:

total: approximately 1.8 TiB
used:  approximately 1.7 TiB
free:  approximately 106 GiB

Diagnostic report (REQUIRED)

OrbStack info:
Version: 2.2.3
Commit: c83556b0ef8f1ba9a33abbb194622b6b7a1c0307 (v2.2.3)

System info:
macOS: 15.4.1 (24E263)
CPU: arm64, 10 cores
CPU model: Apple M4
Model: Mac16,10
Memory: 16 GiB

Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2026-09-25T12-09-46.644794Z.zip

Screenshots and additional context (optional)

No response

This may be related to #2532, but it appears to be a different manifestation. In this case, the block count is approximately correct for the 2 TB volume, while f_bsize is reported as 1 MiB instead of approximately 4 KiB. This produces a 256x capacity inflation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    t/bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions