Filesystem Detachment Research

The art of
letting go.

Détaché is a principled detachment layer for modern infrastructure. Unmount filesystems with surgical precision — lazily, forcefully, recursively — without leaving a trace in the hierarchy.

détaché — detachment session
$ détaché -l /mnt/legacy-nfs
Lazy detachment initiated. Hierarchy reference removed.
Cleanup deferred until filesystem is no longer busy.
$ détaché -R /mnt/data
Recursive detachment:
└─ /mnt/data/archive ............... detached
└─ /mnt/data/cache ................. detached
└─ /mnt/data ...................... detached
$ détaché -a -t nfs
All NFS filesystems detached. 0 references remain.
$
SOC 2 Type II
ISO 27001
GDPR Compliant
HIPAA Ready
FedRAMP Authorized
99.999%
Clean detachment rate
14M+
Filesystems gracefully released
0
Dangling references (guaranteed)
<0.3ms
Detachment latency (p99)

On Graceful Detachment

In infrastructure, as in all things, the measure of a system is not how it acquires resources — but how it releases them.

We have spent decades optimizing the attach. The mount. The connection. We have made it fast, parallel, resilient. But we have neglected the other half of the lifecycle. Detachment is an afterthought. An error case. A shutdown hook nobody tests.

Détaché exists because we believe letting go is harder than holding on. A filesystem that cannot be cleanly unmounted is not truly mounted — it is trapped. A reference that lingers after release is not persistence — it is a leak.

We build for the teams who understand that the most elegant infrastructure is the infrastructure that can disappear without a trace. Cleanly. Completely. On its own terms.

— The Détaché Research Lab, 2024

Every detachment primitive.
One principled platform.

From lazy disconnects to recursive teardowns, Détaché gives infrastructure teams complete control over filesystem release at any scale.

Lazy Detachment

Remove the filesystem from the hierarchy immediately, then clean up all references asynchronously once the last handle closes. No blocking. No waiting. No hangs on downed NFS servers.

-l --lazy

Force Release

When an NFS server goes unreachable and your team is staring at a hung terminal, Force Release severs the connection immediately. No negotiation. No timeout. Just freedom.

-f --force

Recursive Teardown

Unmount an entire subtree in one operation. Détaché walks the hierarchy from leaves to root, detaching each nested mountpoint in dependency order. No orphans. No partial state.

-R --recursive

Fleet Detach

Release every filesystem in your manifest with a single command. Filter by type, by mount options, or detach everything. One invocation for 400 nodes at shutdown.

-a --all

Type Filtering

Selectively detach only NFS shares while leaving local ext4 volumes attached. Or release every tmpfs without touching persistent storage. Surgical precision in fleet operations.

-t TYPE

Graceful Degradation

When a full detachment fails, Détaché automatically falls back to remounting the filesystem read-only — preserving data integrity while preventing further writes. Defense in depth.

-r --read-only

Dry Run Mode

Simulate every detachment operation without executing a single syscall. Audit what would happen before it happens. The safety net your compliance team requires.

--fake

All-Targets Release

When a device is mounted at multiple points, release every single mountpoint in one atomic sweep. No hunting. No manual iteration. Complete device liberation.

-A --all-targets

From attached to free
in milliseconds.

01

Identify the Target

Point Détaché at a directory mountpoint or device. We resolve the actual mount entry from /proc/self/mountinfo, handling bind mounts, overlays, and stacked filesystems transparently.

02

Assess Busy State

Détaché inspects open file descriptors, working directories, and swap file usage. If the filesystem is busy, you choose: wait, force, or lazy-detach. No surprises. Full observability.

03

Execute the Detachment

The kernel umount syscall fires. The VFS entry is removed from the namespace. For lazy mode, cleanup continues asynchronously. For force mode, the NFS client state is purged immediately.

04

Verify & Report

Post-detachment verification confirms zero lingering references. Loop devices are freed (-d). Verbose mode (-v) emits a structured audit trail. Nothing is left behind.

How Meridian Cloud Saved 47 Minutes Per Shutdown Cycle

The Problem

Meridian Cloud operated 1,200 nodes with an average of 14 NFS mounts each. During scheduled maintenance windows, their shutdown procedure hung for an average of 47 minutes waiting for unreachable NFS servers to timeout. In Q3 alone, this added up to 94 hours of lost maintenance time.

The Solution

By deploying Détaché's lazy detachment with force-fallback across their fleet, Meridian replaced their blocking shutdown sequence with a non-blocking teardown. The command: détaché -a -l -f -t nfs

The Results

47min → 0.3s
NFS teardown time
94 hrs
Reclaimed per quarter
Zero
Data corruption incidents

Why teams switch to Détaché.

Capability Détaché Competitor A Competitor B
Lazy detachment Partial
Force release (unreachable NFS)
Recursive teardown Partial
Fleet detach with type filtering Partial
Graceful degradation (remount ro)
Dry run / audit mode
All-targets release
Loop device cleanup Partial
Structured audit trail

Recent releases.

v3.2.0
March 2026
New

--all-targets flag now supports combined -R for recursive multi-target teardown. Added structured JSON output for -v verbose mode. Improved heuristics for detecting stale NFS handles before force release.

v3.1.0
January 2026
Improved

Lazy detachment now emits lifecycle events to the audit log. Reduced memory overhead of recursive teardown by 40% through streaming mountinfo parsing. Fixed edge case where --fake mode incorrectly updated mtab.

v3.0.0
October 2025
Breaking

Major release. Introduced namespace-aware detachment (-N), over-mounted filesystem support in recursive mode, and quiet mode (-q). Deprecated /etc/mtab writes — all state now sourced from /proc/mounts.

See Détaché in production.

Lazy NFS Detachment

$ détaché -l /mnt/nfs-share
Detached. Cleanup pending (2 open handles).

Force + Read-Only Fallback

$ détaché -f -r /mnt/unreachable
Force detach failed. Remounted read-only.

Fleet Detach by Type

$ détaché -a -t nfs,cifs
12 filesystems detached. 0 errors.

Dry Run Audit

$ détaché --fake -v -a
DRY RUN: would detach /mnt/data (ext4)
DRY RUN: would detach /mnt/logs (xfs)
DRY RUN: would detach /mnt/nfs (nfs4)

Scale your detachment layer.

Every plan includes verbose audit logs and graceful degradation by default.

Researcher
$0/mo
  • 5 detachment operations / day
  • Single mountpoint only
  • No lazy or force mode
  • Basic verbose output
  • Community support
Get Started
Lab
$69/seat/mo
  • Everything in Practitioner
  • Fleet detach (-a)
  • All-targets release (-A)
  • Graceful degradation (-r)
  • Namespace-aware detachment
  • Structured JSON audit trail
  • SSO & RBAC
  • Priority support
Contact Sales
Enterprise
Custom
  • Everything in Lab
  • No-canonicalize mode (-c)
  • No-mtab writes (-n)
  • Custom helper integration
  • 99.999% SLA
  • On-premise deployment
  • Dedicated TAM
  • 24/7 incident response
Contact Sales

Trusted by teams who know
when to let go.

★★★★★
"We had 1,200 nodes hanging on NFS unmount during maintenance windows. Détaché's lazy detach turned a 47-minute ordeal into sub-second non-blocking teardown. Our ops team wept with joy."
Raj Deshmukh
Raj Deshmukh Lead SRE, Meridian Cloud
★★★★★
"The dry run mode alone justifies the subscription. We audit every detachment before execution in production. Our compliance team signed off in a single review cycle. That literally never happens."
Maren Reyes
Maren Reyes Head of InfoSec, VaultEdge
★★★★★
"Recursive teardown with type filtering is sublime. détaché -R -t tmpfs /mnt/ephemeral and every nested tmpfs is gone. Clean. No orphaned loops. No partial state. It's beautiful engineering."
Thomas Herr
Thomas Herr Principal Architect, StratumOS
★★★★★
"The graceful degradation feature saved our data center. When force unmount failed on a corrupted ext4 volume, Détaché seamlessly remounted it read-only. Zero data loss. Customer for life."
Vivian Voss
Vivian Voss CTO, NexaGrid

Common questions.

A filesystem is busy when processes have open files on it, or when a working directory sits within it. Détaché gives you three options: wait for processes to release (default), force immediate detachment (-f), or lazy-detach (-l) which removes the hierarchy entry immediately and defers cleanup until all handles close.

Lazy detachment removes the filesystem from the visible namespace immediately, but defers actual cleanup until the filesystem is no longer busy. It's ideal for preventing shutdown hangs caused by unreachable network shares. Note: a reboot is recommended soon after lazy-detaching network filesystems, as remounting is not possible.

Yes, when the filesystem was mounted with the user option in fstab. Since util-linux 2.34, FUSE filesystems can also be unmounted by the mounting user. Since 2.35, Détaché gracefully drops suid permissions and continues as a regular user when root isn't required.

The --fake flag performs everything except the actual syscall. It validates paths, checks busy state, resolves mountpoints — but never actually unmounts. It's a production-safe dry run for auditing and compliance verification.

When the unmounted device was a loop device, the -d flag additionally frees the loop device. For devices initialized with mount's autoclear feature (Linux 2.6.25+), this happens automatically. For older setups, -d ensures clean loop device release.

Backed by mandō