[Bug]: Root disk reports container overlay (10MB) instead of host filesystem when running on ZFS (TrueNAS)
Welcome!
- I have read the Documentation
- I have checked the Common Issues Guide and my problem was not mentioned there.
- I have searched open and closed issues and my problem was not mentioned before.
- I have verified I am using the latest version available. You can check the latest release here.
Component
Agent
Problem Description
[Bug]: Root disk reports container overlay (10MB) instead of host filesystem when running on ZFS (TrueNAS)
Component: Agent
Agent version: 0.18.4
Deployment: Docker (on TrueNAS Scale 25.10)
Description
When running the containerized agent on TrueNAS Scale (which uses ZFS exclusively), the root disk always reports the container's own overlay filesystem (~10MB) instead of the host's actual boot drive. The FILESYSTEM env var has no effect because Disk partitions=[] is always empty inside the container — ZFS datasets don't appear in the standard partition detection path.
Extra filesystems mounted via /extra-filesystems/ work correctly and report accurate usage. The issue is only with the root/primary disk.
Root cause
TrueNAS Scale's root filesystem is a ZFS dataset (boot-pool/ROOT/25.10.0), not a traditional block partition. Inside a Docker container, the agent's partition detection returns an empty list because ZFS datasets aren't enumerated through the standard /proc filesystem paths the agent uses. Since no partitions are found, the FILESYSTEM env var has nothing to match against, and the agent falls back to the container's own / overlay.
Host df -h output (relevant lines)
boot-pool/ROOT/25.10.0 198G 105M 198G 1% /
mypool/dataset1 30T 2.2T 28T 8% /mnt/mypool/dataset1
mypool/dataset2 48T 21T 28T 43% /mnt/mypool/dataset2
mypool/dataset3 29T 664G 28T 3% /mnt/mypool/dataset3
Agent debug logs
DEBUG Disk partitions=[]
WARN Partition details not found filesystem="Boot Pool__nvme0n1"
WARN Root device not detected; root I/O disabled mountpoint=/
Extra filesystems are detected and report correctly:
DEBUG Extra FS data="map[dataset1:0x... dataset2:0x... nvme0n1:0x... dataset3:0x...]"
ExtraFsPct:map[dataset1:7.2 dataset2:42.11 nvme0n1:1.41 dataset3:2.29]
Docker compose (relevant parts)
services:
beszel-agent:
privileged: true
container_name: beszel-agent
image: henrygd/beszel-agent
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- ./beszel_agent_data:/var/lib/beszel-agent
- /usr:/extra-filesystems/Boot Pool__nvme0n1:ro
- /mnt/mypool/dataset1:/extra-filesystems/dataset1:ro
- /mnt/mypool/dataset2:/extra-filesystems/dataset2:ro
- /mnt/mypool/dataset3:/extra-filesystems/dataset3:ro
environment:
FILESYSTEM: "Boot Pool__nvme0n1"
HOST_PROC: /host/proc
HOST_SYS: /host/sys
LOG_LEVEL: debug
What I've tried
| Configuration | Result |
|---|---|
| FILESYSTEM: /mnt/mypool | ZFS parent dataset shows 0% (child dataset accounting) |
| FILESYSTEM: nvme0n1p3 | Shows as extra FS, root still 10MB |
| FILESYSTEM: /extra-filesystems/nvme0n1p3 | Root still 10MB |
| FILESYSTEM: /host-root with /:/host-root:ro | Root still 10MB |
| FILESYSTEM: "Boot Pool__nvme0n1" | Partition not found, root still 10MB |
All approaches fail because Disk partitions=[] means FILESYSTEM has nothing to match.
Environment
- TrueNAS Scale 25.10 (Debian-based, ZFS only)
- Docker with ZFS storage driver
- Beszel Agent 0.18.4 (container)
- AMD Ryzen with 6x HDD + 1x NVMe
Expected Behavior
Expected behavior
The root disk should report the host's actual boot drive usage (105M / 198G) rather than the container's overlay filesystem (~10MB). The FILESYSTEM env var should be able to override the root disk source even when partition detection returns empty results.
Steps to Reproduce
Steps to reproduce
- Install TrueNAS Scale (or any ZFS-only Linux system)
- Deploy the beszel-agent as a Docker container with
LOG_LEVEL=debug - Observe that
Disk partitions=[]in the agent logs - Observe that the root disk reports ~10MB (the container overlay) instead of the host's boot drive
- Attempt to override with
FILESYSTEMenv var pointing to any value — root disk remains at ~10MB
OS / Architecture
linux/amd64 (agent & hub)
Beszel version
0.18.4
Installation method
Docker
Configuration
Hub Logs
Agent Logs
Source: henrygd/beszel