Inflated free space
Blocks used by regular files in /.chiaplots are added back into f_bfree and f_bavail. df reflects logical headroom while plots stay on disk.
xchOS extends the Linux kernel with /.chiaplots — a root-level plot vault on ext4.
Free space reporting, create restrictions, and proactive eviction work together so
your system keeps farming without drowning in plot files.
Special behavior applies only to /.chiaplots at the filesystem root — not nested paths with the same name.
Blocks used by regular files in /.chiaplots are added back into f_bfree and f_bavail. df reflects logical headroom while plots stay on disk.
create, mkdir, symlink, and similar ops return -EPERM under the vault. Same-filesystem rename / mv is allowed — the path plots take in production.
When free clusters fall below demand plus a 1 GiB margin, the kernel deletes the oldest regular file in readdir order — making room before allocation fails.
Plots land in /.chiaplots via rename, not create. The metric userland tools use mirrors kernel semantics:
When metric exceeds your threshold, xchos plots more. When the disk starves, the kernel evicts.
Chia chiapos uses -t on a temp dir, -d for final destination.
Same-filesystem mv — allowed where create would fail.
Plot blocks count as free in df; eviction frees real clusters when needed.
xchosA bash loop that polls every 5 minutes — Chia plotting by default, with optional dd mode for testing.
$ ./scripts/xchos
xchos: starting CHIAPLOTS_DIR=/.chiaplots THRESHOLD_MB=300000 PLOTPOLL_CHIA=1 INTERVAL_SEC=300 ...
xchos: chia plotters chiapos -k32 -b4608 ...
# First run with chia: init, keys, patch config.yaml
farmer.full_node_peers → node.xchos.com:8444
farmer + pool xch_target_address → default payout
chia start farmer-only harvester
CHIA_PLOT_K, CHIA_BUFFER_MB) when PLOTPOLL_CHIA=1
THRESHOLD_MB=300000)
INTERVAL_SEC=300 between checks (override for faster testing)
node.xchos.com:8444 (CHIA_FULL_NODE_HOST / CHIA_FULL_NODE_PORT)
scripts/prepare-chiaplots-cubic.sh for custom Ubuntu images
farmer.xch_target_address and pool.xch_target_address default to the Marmot Recovery Foundation (CHIA_XCH_TARGET_ADDRESS)
When xchos sets up Chia for the first time, both farmer.xch_target_address and
pool.xch_target_address in config.yaml are set to benefit the
Marmot Recovery Foundation
by default — helping save the Vancouver Island marmot, one of Canada’s most endangered mammals.
The foundation breeds and releases marmots, restores habitat, and monitors wild populations. There were once fewer than 30 left in the wild; recovery efforts are bringing them back.
Learn about marmots.orggit clone --depth 1 https://github.com/wjblanke/linux.git
cd linux && cp /boot/config-$(uname -r) .config
make olddefconfig
scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
make -j$(nproc)
sudo make modules_install && sudo make install
sudo mkdir /.chiaplots
sudo chmod 777 /.chiaplots
sudo reboot
./scripts/xchos
# or install to /usr/local/bin/xchos from a Cubic ISO build
Pre-built Ubuntu 24.04.4 live images with the xchOS kernel, /.chiaplots, Chia CLI, and xchos. Pick the architecture that matches your hardware. Install the ISO. Log in, type nohup xchos &, and you will automagically farm the entirety of your over provisioned boot drive while your Ubuntu box still functions for everyday use.
xchos-24.04.4-2026.05.25-live-server-amd64.iso
Download ISOxchos-24.04.4-2026.05.25-live-server-arm64.iso
Download ISOxchOS is developed in public at github.com/wjblanke/linux — a Linux kernel fork with ext4 chiaplots, userland tooling, and build docs.
Kernel fork · ext4 /.chiaplots · scripts/xchos · Cubic ISO staging
git clone --depth 1 https://github.com/wjblanke/linux.git
README.md — full xchOS documentation (chiaplots, build, Cubic)fs/ext4/chiaplots.c — kernel implementationscripts/xchos — plot polling and Chia farmer helperscripts/prepare-chiaplots-cubic.sh — stage files for custom Ubuntu ISOshtml/ — this website