Skip to content

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.

On the client host:

  • Linux (amd64 or arm64)
  • Root access
  • curl installed
  • 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 will automatically install FUSE3 if it is not already present.

The Community installer prints the mount command at the end of setup. It follows this pattern:

Terminal window
curl -fksSL https://<server-addr>/deploy/install-mount.sh | sudo bash -s <mount-point>

For example:

Terminal window
curl -fksSL https://10.0.1.50:443/deploy/install-mount.sh | sudo bash -s /mnt/flexfs

The deploy script (/deploy/install-mount.sh) is served by the free server and executes the following steps:

  1. Validates arguments — requires a mount point

  2. Checks for root — exits if not running as uid 0

  3. Detects platform — determines linux/amd64 or linux/arm64 from uname -m

  4. Installs FUSE if neither fusermount3 nor fusermount is found, using the system package manager (apt-get, dnf, or yum)

  5. Stops any existing mount at the specified mount point and removes the old fstab entry if present

  6. Downloads mount.flexfs from the free server’s deploy endpoint to /usr/sbin/mount.flexfs and sets it executable. SELinux contexts are restored if applicable.

  7. Verifies the binary by running mount.flexfs version

  8. Initializes credentials by contacting the free server:

    Terminal window
    mount.flexfs init creds \
    --adminAddr <server-addr> \
    --token $TOKEN \
    --printName --force

    The volume token is pre-filled by the server. This step fetches the volume configuration (metadata server address, block store details) and writes a local credential file at ~root/.flexfs/mount/free/creds.

  9. Creates an fstab entry and mounts the filesystem:

    Terminal window
    mount.flexfs init fstab free <mount-point> --now --force

    The --now flag mounts the filesystem immediately after writing the fstab entry.

If you prefer to run each step separately, the individual commands are:

Terminal window
curl -fksSL https://<server-addr>/deploy/production/v1.9.x/linux/amd64/mount.flexfs \
-o /usr/sbin/mount.flexfs
chmod 755 /usr/sbin/mount.flexfs

On the server host, read the token from the credential file:

Terminal window
grep '^volumeToken' /root/.flexfs/free/creds
Terminal window
mount.flexfs init creds \
--adminAddr <server-addr> \
--token $TOKEN \
--force
Terminal window
mount.flexfs init fstab free /mnt/flexfs --force
Terminal window
mount /mnt/flexfs

Or mount directly without fstab:

Terminal window
mount.flexfs start free /mnt/flexfs

After mounting, verify with:

Terminal window
# Check the mount is active
mountpoint /mnt/flexfs
# List the filesystem
ls -la /mnt/flexfs
# Write a test file
echo "hello flexFS" > /mnt/flexfs/test.txt
cat /mnt/flexfs/test.txt
# Check disk usage
df -h /mnt/flexfs

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.

Terminal window
# Run on each client host:
curl -fksSL https://10.0.1.50:443/deploy/install-mount.sh | sudo bash -s /mnt/flexfs

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 seamless handoff of the FUSE session — no unmount or downtime required. See Auto-Update for details.

SymptomLikely causeResolution
Error: this script must be run as rootNot running as rootUse sudo bash
Error: unsupported architectureNot amd64 or arm64flexFS only supports 64-bit Linux
Error: unable to install FUSENo supported package managerInstall FUSE3 manually
Error: mount.flexfs failed to executeBinary incompatible with hostVerify platform matches (uname -m)
Error: failed to initialize credentialsCannot reach free server or token mismatchCheck network access to the free server port
Mount hangs or times outMetadata server unreachableCheck network access to the metadata server port