fusermount3 unmounts a FUSE filesystem cleanly, and checking the mountpoint first tells you whether a lazy unmount is ever justified. The examples use fusermount3 3.14.0 from package fuse3 3.14.0-5build1. Allow about ten minutes if you know the mountpoint, or longer if you need to find the process holding it open.
This guide assumes a FUSE filesystem is already mounted at /path/to/mountpoint. Replace that placeholder with the exact directory on your machine. The command is normally run as the user who owns the mount. It is not a general replacement for mount, and the installed manual says it should be called directly only for unmounting FUSE filesystems.
Start with read-only checks. They do not change mounts or services:
$ command -v fusermount3
/usr/bin/fusermount3
$ fusermount3 -V
fusermount3 version: 3.14.0
$ fusermount3 -h
fusermount3: [options] mountpoint
Options:
-h print help
-V print version
-o opt[,opt...] mount options
-u unmount
-q quiet
-z lazy unmount
The older fusermount name is an alias on this system, but use fusermount3 in new notes and scripts so the FUSE version is clear. The option spelling is short and easy to misread: -u means unmount, while -z requests a lazy unmount.
Checkpoint: confirm that the reported version and binary are the ones you intend to use. If the command is missing, install or repair the fuse3 package through your normal system-management process, rather than copying a binary from another host.
Inspect the directory and its current mount information before unmounting. These commands are ordinary, and do not need elevated privileges:
$ ls -ld /path/to/mountpoint
$ findmnt --target /path/to/mountpoint
findmnt should show the filesystem attached to the target or a relevant parent mount. A typo can point at an ordinary directory, and unmounting the wrong filesystem can interrupt a different workload./ or a parent directory when you mean one FUSE mount.If you do not know the mountpoint, check the FUSE application's configuration and status first. The application, not fusermount3, knows which directory it selected and how to recreate the mount. Once you have a candidate path, use findmnt --target to confirm it rather than guessing from a filesystem type.
Once the target is confirmed, unmount it with -u:
$ fusermount3 -u /path/to/mountpoint
A successful command normally produces no output and returns status zero. Check the status immediately if you need a scriptable result:
$ status=$?
$ printf 'fusermount3 status: %s\n' "$status"
fusermount3 status: 0
$ findmnt --target /path/to/mountpoint
$ printf 'findmnt status: %s\n' "$?"
findmnt status: 1
The final findmnt status is useful only when the target is not covered by another mount. If the directory is underneath a separate parent mount, inspect the complete findmnt output instead of treating that one status as a complete inventory.
Do not add sudo automatically. FUSE is designed to let an unprivileged user mount and unmount the filesystems they are allowed to use. If the command refuses the operation, first check the exact mountpoint and the account that created it. Use elevated privileges only when your host's permissions require them, and you understand which mount is being removed.
An ordinary unmount can fail when a shell, service or another process is still using the filesystem. Preserve the diagnostic by omitting -q. Then identify users of the mount with tools available on your system, for example:
$ findmnt --target /path/to/mountpoint
$ fuser -vm /path/to/mountpoint
Retry the ordinary unmount after the users have gone:
$ fusermount3 -u /path/to/mountpoint
$ printf 'status: %s\n' "$?"
status: 0
If the mount is still busy, do not repeatedly add flags at random. A busy mount often indicates an application that needs a clean shutdown, or a shell that is still inside the directory.
Warning: -z performs a lazy unmount. It detaches the mount from the visible namespace while references held by processes can remain until they are released. That can make the path look gone while work continues in the background. Treat it as a service-disrupting recovery action, not as the normal form of unmounting.
$ fusermount3 -z -u /path/to/mountpoint
$ printf 'lazy unmount status: %s\n' "$?"
lazy unmount status: 0
Use this only after confirming the target, recording any useful error output, and deciding that detaching the mount is safer than waiting. Do not use it to hide an unknown process, or to bypass an active write. Keep the FUSE client running until you know it has finished, unless the client itself is the failed component.
There is no separate undo command for an unmount. Recovery means remounting through the FUSE application that created the filesystem, using that application's documented command and configuration. A lazy unmount may also leave processes holding old references, so check the application and logs before assuming the problem is resolved.
Use the exit status, and retain the command's error output. The quiet option is appropriate only when another part of a script reports failure:
if fusermount3 -u /path/to/mountpoint; then
printf '%s\n' 'FUSE mount unmounted'
else
status=$?
printf 'fusermount3 failed with status %s\n' "$status" &2
exit "$status"
fi
Do not parse a success message: successful unmounts generally print nothing. Do not confuse -q with a safer unmount; it only makes the command quiet. If you need the failure explanation while testing, leave -q out.
fusermount3 version and target path.findmnt before changing state.fusermount3 -u completed with status zero, or the failure has an identified cause.-z detaches lazily and has no direct undo command.