Community: First Mount
After installing the Community server, you are ready to mount flexFS on client hosts. The free server provides a self-contained installer script that downloads the mount client, initializes credentials, creates an fstab entry, and mounts the filesystem in a single command.
Prerequisites
Section titled “Prerequisites”On the client host:
- Linux (amd64 or arm64)
- Root access
curlinstalled- Network access to the free server (default: port 443) and metadata server (default: port 8443)
- Network access to the object storage endpoint
The installer script installs FUSE3 automatically if neither fusermount3 nor fusermount is present.
One-Command Install
Section titled “One-Command Install”The Community installer prints the mount command at the end of setup. It follows this pattern:
curl -fksSL https://<admin-addr>/deploy/install-mount.sh | sudo bash -s <mount-point>For example:
curl -fksSL https://10.0.1.50:443/deploy/install-mount.sh | sudo bash -s /mnt/flexfs/freeWhat the Script Does
Section titled “What the Script Does”The deploy script (/deploy/install-mount.sh) is served by the free server and executes the following steps:
-
Validates arguments — requires a mount point
-
Checks for root — exits if not running as uid 0
-
Detects platform — determines
linux/amd64orlinux/arm64fromuname -m -
Installs FUSE if neither
fusermount3norfusermountis found, using the system package manager (apt-get,dnf, oryum). Ifyumcannot find thefuse3package, the script enables the EPEL repository, leaves it enabled, and retries. -
Stops any existing mount at the specified mount point and removes the old fstab entry if present
-
Downloads
mount.flexfsfrom the free server’s deploy endpoint to/sbin/mount.flexfsand sets it executable. SELinux contexts are restored if applicable. -
Verifies the binary by running
mount.flexfs version -
Initializes credentials by contacting the free server:
Terminal window mount.flexfs init creds \--adminAddr <admin-addr> \--token <volume-token> \--forceThe volume token is pre-filled by the server. This step checks the token with the free server and writes the server address and volume token to a local credential file at
~root/.flexfs/mount/creds/free. The volume’s configuration (metadata server address, block store details) is fetched from the free server each time the volume mounts. -
Creates an fstab entry and mounts the filesystem:
Terminal window mount.flexfs init fstab free <mount-point> --now --forceThe
--nowflag mounts the filesystem immediately after writing the fstab entry.
Manual Installation
Section titled “Manual Installation”If you prefer to run each step separately, run the individual commands below as root, as the script does (writing to /sbin and init fstab require it). To mount as another user instead, place the binary where that user can run it, then run init creds and mount.flexfs start as that user (see Mounting without root).
Download the mount client
Section titled “Download the mount client”curl -fksSL https://<admin-addr>/deploy/production/v1.9.x/linux/amd64/mount.flexfs \ -o /sbin/mount.flexfschmod 755 /sbin/mount.flexfsRetrieve the volume token
Section titled “Retrieve the volume token”On the server host, read the token from the credential file:
sudo grep '^volumeToken' /root/.flexfs/free/credsInitialize credentials on the client
Section titled “Initialize credentials on the client”mount.flexfs init creds \ --adminAddr <admin-addr> \ --token <volume-token> \ --forceCreate fstab entry
Section titled “Create fstab entry”mount.flexfs init fstab free /mnt/flexfs/free --forcemount /mnt/flexfs/freeOr mount directly without fstab:
mount.flexfs start free /mnt/flexfs/freeVerify the Mount
Section titled “Verify the Mount”After mounting, verify with:
# Check the mount is activemountpoint /mnt/flexfs/free
# List the filesystemls -la /mnt/flexfs/free
# Write a test fileecho "hello flexFS" > /mnt/flexfs/free/test.txtcat /mnt/flexfs/free/test.txt
# Check disk usagedf -h /mnt/flexfs/freeMounting on Additional Hosts
Section titled “Mounting on Additional Hosts”The same curl command can be run on as many client hosts as needed. Every host will mount the same free volume using the same token. All mounts share a single consistent view of the filesystem.
# Run on each client host:curl -fksSL https://10.0.1.50:443/deploy/install-mount.sh | sudo bash -s /mnt/flexfs/freeAuto-Updates
Section titled “Auto-Updates”Once mounted, the mount client periodically checks the free server for newer versions of mount.flexfs. When an update is available, it downloads the new binary and performs a live handoff of the FUSE session — no unmount or downtime required. See Auto-Update for details.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Resolution |
|---|---|---|
Error: this script must be run as root | Not running as root | Use sudo bash |
Error: unsupported architecture | Not amd64 or arm64 | FlexFS only supports 64-bit Linux |
Error: unable to install FUSE or Error: unable to install fuse3 | No supported package manager, or no repository provides fuse3 | Install FUSE3 manually (see Prerequisites) |
Error: mount.flexfs failed to execute | Binary incompatible with host | Verify platform matches (uname -m) |
Error: invalid volume token: unauthorized | The free server does not recognize the token in the script | Download the script again from the free server |
Error: failed to get volume settings: ... (after repeated retries) | Cannot reach the free server | Check network access to the free server port |
Error: the admin server refused the request, not the token (status N); check its access rules for this host | The free server’s access rules block this host | Review the free server’s access rules |
| Mount hangs or times out | Metadata server unreachable | Check network access to the metadata server port |
Next Steps
Section titled “Next Steps”- Mount Options — customize caching, performance, and security settings
- fstab Integration — details on the fstab line format and systemd mount directives
- Compare Editions — see what Enterprise adds over Community