LEIL-MOUNT(1)
๐
leil-mount โ the leil-mount(1) glow-up
okay so bestie, buckle up โจ this is the manual page for leil-mount, and by the end of it you're gonna be mounting Leil File System like it's nothing. no cap.
๐ธ NAME
leil-mount โ mount Leil File System ๐ฆ
โจ SYNOPSIS
leil-mount [HOST:[PORT]]:[PATH] [-d] [-f] [-s] [-m] [-n] [-p]
[-H HOST] [-P PORT] [-S PATH] [-o opt[,opt]...]
leil-mount -h|--help
leil-mount -V|--version
like, pick your fighter ๐
๐ DESCRIPTION
Mounts Leil File System. that's the whole vibe. let's get into it ๐
๐ General options
-h,--helpโ shows you the help and dips out. your lil safety net ๐ซถ-Vโ shows version info and exits. slay, now you know what you're running โจ
๐ฅ FUSE options
-d,-o debugโ turns on debug mode. heads up: this implies-f๐-fโ foreground operation. it stays right there with you, main character energy ๐-sโ disables multi-threaded operation. one thing at a time, and honestly? valid ๐
๐ฆ LeilFS options
-c CFGFILE,-o sfscfgfile=CFGFILEโ loads a file that has extra mount options in it. like a lil cheat sheet ๐-m,--meta,-o sfsmetaโ mounts the SFSMETA companion filesystem instead of the primary LeilFS. this is the one that lets you poke at trashed and reserved files, iykyk ๐ (See NOTES)-n,--nostdoptsโ skips the default mount options (-o allow_other,default_permissions). it's equivalent to-o nostdmountoptionsโญ--nonemptyโ lets you mount over a non-empty file/dir. equivalent to-o nonempty๐ธ-p,-o askpasswordโ prompts you for a password. it's the interactive version of-o sfspassword=PASS๐-H HOST,-o sfsmaster=HOSTโ connects to the LeilFS master onHOST(default issfsmaster) ๐ง-P PORT,-o sfsport=PORTโ connects to the LeilFS master onPORT(default is9421) ๐-B HOST,-o sfsbind=HOSTโ the local address to use when connecting to the master, instead of the default one ๐-S PATH,-o sfssubfolder=PATHโ mounts that specific LeilFS directory (default is/, aka the whole entire filesystem, no big deal) ๐-o enablefilelocks=[0,1]โ enables/disables global file locking (disabled by default) ๐-o sfspassword=PASSWORDโ authenticates to the LeilFS master withPASSWORD๐คซ-o sfsmd5pass=MD5โ authenticates to the LeilFS master using a directly givenMD5(only if thesfspasswordoption isn't specified) ๐งฎ-o tlsconfigfile=PATHโ path to the TLS configuration file for client-side TLS settings. (there is no default value.) ๐ก๏ธ-o sfsdelayedinitโ the connection to the master happens in the background, so with this option the mount can run without a network. good for being run fromfstab/ init scripts etc. etc. ๐ด-o sfsaclโ enables ACL support (disabled by default) ๐-o sfsaclcacheto=SECโ sets the ACL cache timeout in seconds (default:1.0) โฑ๏ธ-o sfsaclcachesize=Nโ sets the ACL cache size in 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โ sets the sugid clear mode (see below) ๐งผ-o sfsdebugโ prints some LeilFS-specific debugging info ๐-o sfscachemode=CACHEMODEโ sets the cache mode (see DATA CACHE MODES; default isAUTO) ๐๏ธ-o sfsattrcacheto=SECโ sets the attributes cache timeout in seconds (default:1.0) ๐-o sfsentrycacheto=SECโ sets the file entry cache timeout in seconds (default:0.0, i.e. no cache) ๐ซ-o sfsdirentrycacheto=SECโ sets the directory entry cache timeout in seconds (default:1.0) ๐-o sfswritecachesize=Nโ specifies write cache size in MiB, in range16..2048(default:128) โ๏ธ-o sfschunkserverwavewriteto=MSECโ sets the timeout for executing each wave of a write operation, in milliseconds (default:50) ๐-o sfscacheperinodepercentage=Nโ specifies what part of the write cache not occupied by other inodes a single inode can occupy, measured in%. e.g. whenN=75and inode X uses10 MiB, and all other inodes use20 MiBout of a100 MiBcache, X can use50 MiBmore (since 75% of80 MiBis60 MiB). default:100๐ฐ-o sfschunkserverreadto=MSECโ sets the timeout for the whole communication with a chunkserver during a read operation, in milliseconds (default:2000) ๐ก-o sfschunkserverwriteto=MSECโ sets the chunkserver response timeout during a write operation, in milliseconds (default:5000) โณ-o sfschunkserverrtt=MSECโ sets the timeout after which a SYN packet is considered lost during the first retry of connecting a chunkserver (default:200) ๐ถ-o sfschunkserverconnectreadto=MSECโ sets the timeout for connecting with chunkservers during a read operation, in milliseconds (default:2000) ๐-o sfschunkserverwavereadto=MSECโ sets the timeout for executing each wave of a read operation, in milliseconds (default:500) ๐-o sfschunkservertotalreadto=MSECโ sets the timeout for the whole communication with chunkservers during a read operation, in milliseconds (default:2000) ๐ฐ๏ธ-o cacheexpirationtime=MSECโ sets the timeout for read cache entries to be considered valid, in milliseconds.0disables the cache (default:1000) โฒ๏ธ-o readbuffersexpirationtime=MSECโ sets the timeout for read cache buffers to expire. read buffers get recycled among read operations to save allocating and deallocating that memory. those buffers are held aside for this amount of milliseconds before being released (default:1000) โป๏ธ-o readaheadmaxwindowsize=KBโ sets the max value of the readahead window per single descriptor, in kibibytes (default:16384) ๐ช-o readcachemaxsizepercentage=Pโ sets the percentage of system memory used for the max value of read cache size (default:60%) ๐พ-o readworkers=Nโ defines the number of read workers (default:30) ๐ฏ-o maxreadaheadrequests=Nโ defines the number of readahead requests per inode (default:2) ๐-o sfsrlimitnofile=Nโ tries to change the limit of simultaneously opened file descriptors on startup (default:100000) ๐-o sfsnice=LEVELโ tries to change the nice level to the specified value on startup (default:-19) ๐-o sfswriteworkers=Nโ defines the number of write workers (default:10) โ๏ธ-o sfswritewindowsize=Nโ defines the write window size (in blocks) for each chunk. can be updated via the tweaks hidden file (default:15) ๐ช-o sfsmemlockโ tries to lock memory (must be enabled at build time) ๐-o sfsdonotrememberpasswordโ does not remember the password in memory. more secure, but when the session is lost then a new session is created without a password โ ๏ธ-o sfsioretries=Nโ specifies the number of retries before an I/O error is returned (default:30) ๐-o sfsreportreservedperiod=Nโ specifies the interval for reporting reserved inodes, in seconds (default:30) ๐-o sfsiolimits=PATHโ specifies the local I/O limiting configuration file (default: no I/O limiting) ๐ฆ-o symlinkcachetimeout=Nโ sets the timeout value for symlink cache timeout in seconds. default value is3600๐-o bandwidthoveruse=Nโ defines 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 sfsmaxchunkswritteninparallelperinode=Nโ defines the maximum number of chunks that can be written in parallel per inode.0stands for unlimited (default:0) ๐งฑ-o sfsusewriteflushpacket=0|1โ when set to1, suggests the chunkserver flush the packets received every window size blocks (optionsfswritewindowsize) or when a write needs to finish (e.g. whenflush()is called on the inode or when enough time has passed). can be updated via the tweaks hidden file (default:0) ๐ฟ-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, which 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, which 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โ sets the period of message suppression in seconds for logging on the notification area (default:10) ๐คซ-o statfscachetimeout=MSECโ sets the statfs cache timeout in milliseconds. when equal to0the cache is disabled (default:0) ๐-o usequotainvolumesize=0|1โ when set to1, uses the user and group specific quota hard limit to calculate the volume size (default:0) ๐-o maxwaitretrytime=SECSโ sets the maximum wait time in seconds for retrying a master server communication attempt, in seconds (default:10) โณ-o mastercommsleeptimedivisor=Nโ specifies 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 every N retries, 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โ mounts the file-system in read-write (default) or read-only mode respectively ๐-o suid|-o nosuidโ enables or disables suid/sgid attributes to work ๐ชช-o dev|-o nodevโ enables or disables character or block special device files interpretation ๐ฅ๏ธ-o exec|-o noexecโ allows or disallows execution of binaries ๐โโ๏ธ
โจ DATA CACHE MODES โจ
Okay so there are three cache modes, bestie: NO, YES and AUTO. The default option is AUTO, and ngl you should not change it unless you really, truly know what you're doing. Like, know it in your soul. ๐ญ
๐ซ NO, NONE or NEVER
Never ever allow files data to be kept in cache. Safest vibes, but it can reduce efficiency โ it's giving "safe but slow" ๐
โ
YES or ALWAYS
Always allow files data to be kept in cache. And yes, this one is dangerous. Consider yourself warned, no cap. ๐
๐ฆ AUTO
File cache is managed by leil-master automatically. This one should be very safe and efficient โ it's the main character for a reason ๐
๐ธ SUGID CLEAR MODE ๐ธ
SMODE can be set to:
NEVERโ SFS will not change suid and sgid bit onchownALWAYSโ clear suid and sgid on everychownโ the safest operation ๐ซถOSXโ standard behavior in OS X and Solaris (achownmade by an unprivileged user clears 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. And beware, bestie โ there's 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. Like, it just slips right past. ๐
๐ FSTAB ๐
You can define your /etc/fstab LeilFS share like this:
leil-master:/ /mnt/leil safs rw 0 0
Screenshot it, tattoo it, whatever works for you ๐
๐ฆ REPORTING BUGS ๐ฆ
Report bugs to the GitHub repository https://github.com/leil-io/leilfs as an issue. We literally read them, so don't be shy ๐ซถ
โญ 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. So likeโฆ don't. ๐ญ
This limit was fixed and removed in master and leil-mount version 5.3.0. Slay ๐
๐ COPYRIGHT ๐
Copyright 2008-2009 Gemius SA
Copyright 2013-2019 Skytechnology sp. z o.o.
Copyright 2023-2024 Leil Storage Oร
LeilFS 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.
LeilFS 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 LeilFS. If not, see http://www.gnu.org/licenses/.
๐ SEE ALSO ๐
leil-master(8) leilfs(7), mount(8)
okay that's the whole page, you made it to the end, I'm so proud of you ๐ฅน๐ this was LEIL-MOUNT(1), dated 1980-01-01 (yes really, iconic timestamp honestly ๐). go forth and mount responsibly, bestie ๐โจ
๐ฆ where this page comes from
- nixpkgs unstable: saunafs 5.12.0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms