SFSMOUNT(1)
๐ sfsmount(1) โ the mount-SaunaFS girlies' edition ๐
okay bestie, buckle in, because this is sfsmount โ the section 1 manual page โ and she is a long one. no cap. we're doing this together, one flag at a time. ๐
โจ NAME โจ
sfsmount โ mount Sauna File System ๐งโ๏ธ๐ฅ
๐ธ SYNOPSIS ๐ธ
sfsmount [HOST:[PORT]]:[PATH] [-d] [-f] [-s] [-m] [-n] [-p]
[-H HOST] [-P PORT] [-S PATH] [-o opt[,opt]...]
sfsmount -h|--help
sfsmount -V|--version
๐ฆ DESCRIPTION ๐ฆ
Mount Sauna File System. that's it, that's the whole vibe, she does what it says on the tin. iconic. now let's get into the options because there are, um, a LOT.
๐ General options
-h,--helpโ show the help text and dip out. โจ-Vโ print the version info and exit. that's it, that's her whole arc.
๐ FUSE options
-d,-o debugโ turn on debug mode (implies-f, so you're automatically in foreground, no escape). ๐-fโ foreground operation. she stays right there in your terminal, watching. ๐-sโ disable multi-threaded operation. one thing at a time, she's a single-task girly (by request). ๐
๐ SaunaFS options
-c CFGFILE,-o sfscfgfile=CFGFILEโ loads a file with extra mount options. your lil cheat sheet. ๐-m,--meta,-o sfsmetaโ mounts the SFSMETA companion filesystem instead of the primary SaunaFS one. this is how you get to hang with trashed and reserved files. (peep the NOTES bestie) ๐-n,--nostdoptsโ omits the default mount options (-o allow_other,default_permissions). same energy as-o nostdmountoptions. ๐ซ--nonemptyโ allows mounts over a non-empty file/dir. same as-o nonempty. ๐ซถ-p,-o askpasswordโ prompts you for a password. it's the interactive version of-o sfspassword=PASS. ๐-H HOST,-o sfsmaster=HOSTโ connect to the SaunaFS master on HOST (default issfsmaster). ๐ก-P PORT,-o sfsport=PORTโ connect to the SaunaFS master on PORT (default is9421). ๐-B HOST,-o sfsbind=HOSTโ the local address to use for connecting with the master instead of the default one. ๐-S PATH,-o sfssubfolder=PATHโ mount that specific SaunaFS directory (default is/, aka the whole entire filesystem, all of it, the whole three-course meal). ๐-o enablefilelocks=[0,1]โ enables/disables global file locking (disabled by default, so like, off unless you say otherwise). ๐-o sfspassword=PASSWORDโ authenticate to the SaunaFS master with PASSWORD. ๐๏ธ-o sfsmd5pass=MD5โ authenticate to the SaunaFS master using a directly given MD5. this one only kicks in ifsfspasswordisn't specified. ๐งฎ-o tlsconfigfile=PATHโ path to the TLS configuration file for client-side TLS settings. (there is no default value, so if you want TLS, you bring your own file.) ๐ก๏ธ-o sfsdelayedinitโ the connection with the master happens in the background. big deal because with this option the mount can be run without network โ perfect for being run fromfstab/ init scripts etc. main character energy for boot sequences. โณ-o sfsaclโ enable ACL support (disabled by default). ๐-o sfsaclcacheto=SECโ set ACL cache timeout in seconds (default:1.0). โฑ๏ธ-o sfsaclcachesize=Nโ define ACL cache size as a number of entries (0: no cache; default:1000). ๐ฆ-o sfsrwlock=0|1โ when set to1, parallel reads from the same descriptor are performed (default:1). ๐โ๏ธ๐โ๏ธ-o sfsmkdircopysgid=Nโ whether the sgid bit should be copied during a mkdir operation (on Linux default:1, otherwise:0). ๐งฌ-o sfssugidclearmode=SMODEโ set the sugid clear mode (see below). ๐งน-o sfsdebugโ print some SaunaFS-specific debugging information. ๐-o sfscachemode=CACHEMODEโ set the cache mode (see DATA CACHE MODES; default isAUTO). ๐๏ธ-o sfsattrcacheto=SECโ set attributes cache timeout in seconds (default:1.0). โฒ๏ธ-o sfsentrycacheto=SECโ set file entry cache timeout in seconds (default:0.0, i.e. no cache). ๐ โ๏ธ-o sfsdirentrycacheto=SECโ set directory entry cache timeout in seconds (default:1.0). ๐-o sfswritecachesize=Nโ specify write cache size in MiB (in range:16..2048โ default:128). โ๏ธ-o sfschunkserverwavewriteto=MSECโ set timeout for executing each wave of a write operation, in milliseconds (default:50). ๐-o sfscacheperinodepercentage=Nโ specify what part of the write cache, when it's not occupied by other inodes, a single inode can occupy (measured in %). E.g. WhenN=75and the inodeXuses 10 MiB, and all other inodes use 20 MiB out of 100 MiB cache,Xcan use 50 MiB more (since 75% of 80 MiB is 60 MiB). Default:25. ๐ฐ-o sfschunkserverreadto=MSECโ set timeout for the whole communication with a chunkserver during a read operation, in milliseconds (default:2000). ๐-o sfschunkserverwriteto=MSECโ set chunkserver response timeout during a write operation, in milliseconds (default:5000). ๐-o sfschunkserverrtt=MSECโ set the timeout after which a SYN packet is considered lost during the first retry of connecting a chunkserver (default:200). ๐ถ-o sfschunkserverconnectreadto=MSECโ set timeout for connecting with chunkservers during a read operation, in milliseconds (default:2000). ๐ค-o sfschunkserverwavereadto=MSECโ set timeout for executing each wave of a read operation, in milliseconds (default:500). ๐-o sfschunkservertotalreadto=MSECโ set timeout for the whole communication with chunkservers during a read operation, in milliseconds (default:2000). โณ-o cacheexpirationtime=MSECโ set the timeout for read cache entries to be considered valid, in milliseconds.0disables the cache (default:1000). โ-o readbuffersexpirationtime=MSECโ set the timeout for read cache buffers to expire. Read buffers get recycled among read operations to save on allocating and deallocating that memory. Those buffers get held aside for this amount of milliseconds before being released (default:1000). โป๏ธ-o readaheadmaxwindowsize=KBโ set the max value of the readahead window per single descriptor, in kibibytes (default:16384). ๐ญ-o readcachemaxsizepercentage=Pโ set the percentage of system memory used for the max value of the read cache size (default:60%). ๐ง-o readworkers=Nโ define the number of read workers (default:30). ๐ทโ๏ธ-o maxreadaheadrequests=Nโ define the number of readahead requests per inode (default:2). ๐ข-o sfsrlimitnofile=Nโ try to change the limit of simultaneously opened file descriptors on startup (default:100000). ๐๏ธ-o sfsnice=LEVELโ try to change the nice level to the specified value on startup (default:-19). ๐-o sfswriteworkers=Nโ define the number of write workers (default:10). ๐ท-o sfswritewindowsize=Nโ define the write window size (in blocks) for each chunk (default:15). ๐ช-o sfsmemlockโ try to lock memory (must be enabled at build time, so it's a build-time situationship). ๐-o sfsdonotrememberpasswordโ do not remember the password in memory โ more secure, BUT when the session is lost then a new session is created without a password. tradeoffs bestie. โ ๏ธ-o sfsioretries=Nโ specify the number of retries before an I/O error is returned (default:30). ๐-o sfsreportreservedperiod=Nโ specify the interval for reporting reserved inodes, in seconds (default:30). ๐-o sfsiolimits=PATHโ specify the local I/O limiting configuration file (default: no I/O limiting). ๐ฆ-o symlinkcachetimeout=Nโ set the timeout value for the symlink cache timeout, in seconds. Default value is3600. ๐-o bandwidthoveruse=Nโ define the ratio of allowed bandwidth overuse when fetching data. Default value is1.0. This option is effective only with N+M goals (erasure codes). ๐-o nostdmountoptionsโ equivalent to the--nostdopts(-n) option, for use infstab. ๐-o nonemptyโ equivalent to the--nonemptyoption, for use infstab. ๐-o sfsuseinodebasedwritealgorithm=0|1โ use the inode based write algorithm when set to1. use the chunk based write algorithm when set to0. though the chunk based algorithm is faster in most cases, the inode based algorithm may prove useful in some scenarios (default:0). โ๏ธ-o sfsignoreflush=0|1โ Advanced: use with caution. ignore the usual behaviour of flush by replyingSUCCESSto it immediately. targets fast creation of small files, but it may cause data loss during crashes when allegedly flushed data is still being processed (default:0). ๐๐ฅ
okay bestie, for real, that one above? sfsignoreflush? that's the "she's beauty, she's grace, she will lose your data" option. read the warning. respect the warning. ๐
-o sfsdirectio=0|1โ whether to use FUSE DirectIO. this may improve performance when reading large files under certain conditions. ๐-o limitglibcmallocarenas=Nโ Linux only: limit glibc malloc arenas to the given value โ prevents using a huge amount of virtual memory. this can influence performance by reducing memory fragmentation and improving cache locality, but it may also lead to contention and reduced parallelism in multi-threaded applications. use it in constrained memory environments, recommended values are4or8. (default is0: disabled or let glibc decide). ๐งต-o malloctrimperiod=MSECโ Linux only: callmalloc_trimon a periodical basis โ prevents using a huge amount of virtual memory by returning already freed memory to the OS. this can influence performance by increasing memory fragmentation and worsening cache locality. use it in constrained memory environments, recommended values are300or1000. minimum value is100to avoid excessive calls tomalloc_trim. (default is0: disabled periodic trimming). ๐งฝ-o sfslognotificationarea=0|1โ enable/disable logging to the Linux notification area (default:0). ๐-o sfsmessagesuppressionperiod=Nโ set the period of message suppression, in seconds, for logging on the notification area (default:10). ๐คซ-o statfscachetimeout=MSECโ set the statfs cache timeout in milliseconds. when equal to0the cache is disabled (default:0). ๐-o usequotainvolumesize=0|1โ when set to1, use the user and group specific quota hard limit to calculate the volume size (default:0). ๐งพ-o maxwaitretrytime=SECSโ set the maximum wait time, in seconds, for retrying a master server communication attempt, in seconds (default:10). โฐ-o mastercommsleeptimedivisor=Nโ specify the number of retry attempts between each increase of the master-communication sleep interval. the client starts with a 1 second pause and adds 1 second everyNretries, up to themaxwaitretrytimelimit. when reconnecting, the client makes up tosfsioretriesattempts, applying the computed pause at each zero-based retry. for example, withmastercommsleeptimedivisor=2,maxwaitretrytime=3andsfsioretries=10the sleep intervals are: try 0 โ 1 s, try 1 โ 1 s, try 2 โ 2 s, try 3 โ 2 s, try 4 โ 3 s, then 3 s for all subsequent retries until reaching the last retry counter index, which would be try 9 (default:3). ๐ด
๐ซ General mount options (see mount(8) manual)
-o rw|-o roโ mount the file-system in read-write (default) or read-only mode respectively. โ๏ธ / ๐-o suid|-o nosuidโ enable or disable suid/sgid attributes to work. ๐ชช-o dev|-o nodevโ enable or disable character or block special device files interpretation. ๐๏ธ-o exec|-o noexecโ allow or disallow execution of binaries. โถ๏ธ
okay we are not done yet, there's more of this page coming, so don't go anywhere bestie ๐
โจ DATA CACHE MODES โจ
bestie there are three cache modes and they are NO, YES and AUTO ๐ The default option is AUTO and you genuinely should not change it unless you really know what you are doing, like, actually know. In AUTO mode the data cache is managed automatically by sfsmaster and it justโฆ handles it. queen behavior ๐
NO,NONEorNEVERโ never allow files data to be kept in cache (safest but can reduce efficiency) ๐ก๏ธYESorALWAYSโ always allow files data to be kept in cache (dangerous) ๐AUTOโ file cache is managed bysfsmasterautomatically (should be very safe and efficient) ๐
๐ SUGID CLEAR MODE ๐
okay so SMODE can be set to:
NEVER- SFS will not change suid and sgid bit onchownALWAYS- clear suid and sgid on everychown- safest operationOSX- standard behavior in OS X and Solaris (chownmade by unprivileged user clear suid and sgid)BSD- standard behavior in BSD systems (like inOSX, but only when something is really changed)EXT- standard behavior in most file systems on Linux (directories not changed, others: suid cleared always, sgid only when group exec bit is set)SFS- standard behavior in SFS on Linux (likeEXTbut directories are changed by unprivileged users)
๐ SMODE extra info ๐
btrfs, ext2, ext3, ext4, hfs[+], jfs, ntfs and reiserfs on Linux work as EXT.
Only sfs on Linux works a little different. Beware that there is a strange operation - chown(-1,-1) which is usually converted by a kernel into something like chmod ug-s, and therefore can't be controlled by SFS as chown ๐ญ
๐ธ FSTAB ๐ธ
You can define your /etc/fstab SaunaFS share like this:
saunafs-master:/ /mnt/sauna default 0 0
๐ฆ REPORTING BUGS ๐ฆ
Report bugs to the GitHub repository https://github.com/leil-io/saunafs as an issue. (yes bestie, they want the issues filed there, not slid into anyone's DMs ๐ซถ)
โญ NOTES โญ
The metadata mount point has two directories available: trash and reserved. ๐
In trash you can see files that have been deleted but are still being kept in master trash. You can undelete them by moving the files into trash/undel, and delete permanently by deleting them again. โจ
There is a bug with this though. See BUGS for more details. ๐
๐ BUGS ๐
Due to a limit in the protocol, the metadata mount point can at most return the first 1 million trash/reserved files. To see more, you will need to either delete or undelete the existing files. Older versions of master (4.9.0 or earlier) will crash when reading a lot of files in trash/reserved. After more than 1 million files in trash/reserved, it becomes unsafe to read trash on those versions.
This limit was fixed and removed in master and sfsmount version 5.3.0. ๐
๐ COPYRIGHT ๐
Copyright 2008-2009 Gemius SA
Copyright 2013-2019 Skytechnology sp. z o.o.
Copyright 2023-2024 Leil Storage Oร
SaunaFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.
SaunaFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with SaunaFS. If not, see http://www.gnu.org/licenses/.
๐ SEE ALSO ๐
and that's the whole page bestie, we ate and left absolutely no crumbs ๐ this version is dated 2026-07-29 and it's from SFSMOUNT(1) โ go mount something iconic, ily ๐ซถ๐โจ
๐ฆ where this page comes from
- ubuntu stonking: saunafs-client 5.8.0-1ubuntu1 ยท GPL-3.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms