Skip to content

mount.flexfs

mount.flexfs is the FUSE-based mount client that presents a flexFS volume as a local POSIX filesystem. It connects to a metadata server for inode/dentry operations and to object storage (directly or through a proxy group) for block data.

SubcommandDescription
startStart the mount client
init credsInitialize the credentials file
init fstabCreate an fstab entry and mount point
deinit credsRemove the credentials file
deinit fstabRemove the fstab entry
versionPrint the build version
licensePrint license information
Terminal window
mount.flexfs start [flags] <name> <mount-point>

The start subcommand connects to the admin server, retrieves volume settings, and mounts the filesystem at the specified mount point. In the default daemon mode, the process forks into the background and writes logs to a file. Use --foreground to run in the foreground.

FlagTypeDefaultDescription
--aclboolfalseEnable extended ACL support (implies --xAttr)
--atTimestringMount filesystem at a specific point in time (RFC3339 format, implies --ro)
--noATimeboolfalseMount with noatime option
--noExecboolfalseMount with noexec option
--noGroupCacheboolfalseDisable extended ACL group caching
--noSUIDboolfalseMount with nosuid option
--nonEmptyboolfalseAllow mounting over a non-empty directory
--roboolfalseMount read-only (implies --noATime)
--rootSquashboolfalseMap uid=0/gid=0 to the squash uid/gid (implies --acl)
--rootSquashGIDuint3265534GID to map root to when --rootSquash is set
--rootSquashUIDuint3265534UID to map root to when --rootSquash is set
--umaskstringExplicit umask override in octal notation (e.g. 0002)
--xAttrboolfalseEnable extended attribute support
FlagTypeDefaultDescription
--diskFolderstring/dev/shm/.flexfs-cache-<pid>On-disk block cache folder path
--diskMaxBlockSizeuint64131072Max processed block size to cache on disk (bytes, 0 = no limit)
--diskQuotastringMax disk usage for cache (e.g. 5%, 64M)
--diskWritebackboolfalseEnable disk cache writeback mode
FlagTypeDefaultDescription
--foreground, -fboolfalseRun in foreground mode (implies --noRemount)
--logFilestring~/.flexfs/mount/logs/<name>-<pid>.logLog file path (daemon mode only)
--verbose, -vboolfalseEnable verbose logging
FlagTypeDefaultDescription
--noRemountboolfalseDisable remount after auto-update
--noUpdateboolfalseDisable auto-update mechanism (implies --noRemount)
--stagingboolfalseAuto-update from staged builds
FlagTypeDefaultDescription
--credsFilestring~/.flexfs/mount/creds/<name>Credentials file path
FlagTypeDefaultDescription
--adminAddrstringAdmin server address (overrides creds file)
--asyncReadboolfalseRun FUSE with async read support
--attrValiduint643600Seconds to cache file attributes
--attrValidNsecuint320Nanosecond offset for --attrValid
--blockRTTboolfalseLog block storage round-trip times
--dirPageSizeuint325000Directory stream page size
--dirTTLuint3210Seconds to cache directory stream pages
--dirtyActiveuint320Maximum number of active dirty block syncs
--dirtyCapacityuint320In-memory dirty block cache capacity (blocks)
--entryValiduint641Seconds to cache directory entries
--entryValidNsecuint320Nanosecond offset for --entryValid
--fuseRTTboolfalseLog FUSE round-trip times
--longNamesboolfalseAllow names up to 1023 characters
--maxBopsuint320Maximum number of parallel block operations
--memCapacityuint320In-memory block cache capacity (blocks)
--memStatsboolfalseLog buffer pool and LRU cache stats
--metaRTTboolfalseLog metadata store round-trip times
--noMaxPagesboolfalseLimit FUSE max_pages to 32
--noMetaSSLboolfalseDisable SSL for metadata server connections
--noPrefetchboolfalseDisable block prefetching
--noProxyboolfalseDisable block proxying
--noProxySSLboolfalseDisable SSL for proxy server connections
--poolCapacityuint320Block buffer pool capacity (blocks)
--pprofboolfalseEnable pprof profiler
--prefetchActiveuint320Maximum number of active prefetches
--secretstringVolume encryption secret (overrides creds file)
--sseboolfalseEnable S3 server-side encryption (AES256)
--storeRTTboolfalseLog store subsystem round-trip times
--testVersionstringOverride build version for testing auto-update handoff
--tokenstringVolume auth token (overrides creds file)
--updateIntervaluint32360Auto-update check interval in seconds
Terminal window
mount.flexfs init creds --adminAddr <addr> [--token <uuid>]

Initializes a credentials file for a volume. If --token is omitted, the command prompts for a volume token interactively.

FlagTypeDefaultDescription
--adminAddrstringAdmin server address (required)
--credsFilestring~/.flexfs/mount/creds/<name>Credentials file path
--forceboolfalseOverwrite existing credentials file
--secretstringVolume encryption secret (will prompt if omitted and needed)
--tokenstringVolume auth token (will prompt if omitted)
--printNameboolfalsePrint the volume name to stdout after initialization
Terminal window
mount.flexfs init fstab <name> <mount-point> [flags]

Creates an /etc/fstab entry and the mount point directory for the volume.

FlagTypeDefaultDescription
--credsFilestring~/.flexfs/mount/creds/<name>Credentials file path
--mountOptionsstring""Additional mount options to include in the fstab entry
--nowboolfalseMount the volume immediately after creating the fstab entry
--forceboolfalseOverwrite an existing fstab entry for this volume
Terminal window
mount.flexfs deinit creds <name>

Removes the credentials file for a volume. If the credentials file is referenced by an fstab entry or systemd unit, the command refuses unless --force is passed, in which case it removes the references too.

FlagTypeDefaultDescription
--credsFilestring~/.flexfs/mount/creds/<name>Credentials file path
--forceboolfalseRemove creds even if referenced by fstab/systemd (removes references too)
Terminal window
sudo mount.flexfs deinit fstab <mount-point>

Removes flexFS fstab entries for the given mount point from /etc/fstab. Requires root.

The credentials file is a TOML file stored at the path specified by --credsFile. It contains the admin server address, volume token, and optionally an encryption secret:

adminAddr = "admin.example.com:443"
token = "$TOKEN"
secret = "$SECRET"