mount.diod(8)
π¦ mount.diod(8) β the diod mount bestie π¦
okay so. this is the <pink>mount.diod</pink> page from the <purple>diod</>... wait, from the diod` manual collection, and it's literally the tool that gets your diod file systems mounted. stay with me, it's gonna slay π
β¨ NAME β¨
mount.diod β mount diod file systems π
β¨ SYNOPSIS β¨
mount.diod [OPTIONS] host[:aname] dir [-o options]
β¨ DESCRIPTION β¨
okay so mount.diod is the mount utility for the distributed I/O daemon, which is an I/O forwarding service for Linux clusters, built on top of the Linux 9p file system. iconic behavior honestly.
mount.diod does two main things, and it does them:
- connect and authenticate to the diod server π
- issue the
mount(2)system call with the appropriate mount options π«
Authentication with the diod server happens in user space. the connected (and authenticated) file descriptor is then passed as a mount option to the kernel 9p file system. yes, the fd is the whole personality. iykyk.
this command requires root to execute the mount(2) system call. like, no cap. you need root.
the 9p file system must support the 9P2000.L protocol variant, e.g. kernel 2.6.38 or above. don't come at it with anything older, it's not the vibe.
the host portion of the mount spec may optionally be supplied in hostlist format, e.g. host1,host2,host3:aname or host[1-3]:aname β in which case hosts are tried in order until a successful connection is obtained. πββοΈπ¨ but heads up: post-connect mount errors are immediately fatal. no retries, it's giving no second chances.
if the host portion of the mount spec begins with a forward-slash (/), it refers to the path to a UNIX domain socket. cute, right? π§
β¨ COMMAND LINE OPTIONS β¨
-f,--fake-mountβ do everything except the mount system call. all the vibes, zero commitment π-n,--no-mtabβ do not update the system mtab. leave it alone, it's fine.-v,--verboseβ set verbose mode. she talks more. we love that.-o,--options opt[,opt,...]β set mount options (peep the next section, bestie β¬οΈ)
β¨ MOUNT OPTIONS β¨
these are the file system specific mount options that mount.diod handles. π«Ά
aname=nameβ the aname is the path of the exported file system on the server. you can specify it in the mount spec inhost:anameformat like NFS, or you can use this option. diod will not allow an attach to an empty aname (periodt). diod has a built-in synthetic control file system that can be mounted with an aname ofctlβ but note that"ctl"must be explicitly exported. πuname=nameβ the user name to authenticate to the diod server. the default isuname=root. πaccess=modeβ select the access mode.access=user(default) causes the mount to support multiple users, and requires root authentication.access=<uid>restricts access at the client to only the specified user. πport=nβ connect to the diod server on the specified port. the default is the IANA-assigned 9pfs port564. πΈtrans=nameβ select a transport.mount.diodonly supportstrans=fdbecause of its strategy for authentication. that's the whole reason, fr fr.rfdno=n,wfdno=nβ the file descriptor for reading and writing withtrans=fd. if set,mount.diodassumes this file descriptor is already connected to a diod server and ignoreshostin the device specification, and theport=noption. so like, it's already handled, don't worry about it π«Άmsize=nβ the msize is the max 9P packet payload size. the default is65512(65536-24). math! β¨version=nameβ select 9P protocol version. diod only supports9p2000.L. that's the one, that's the only one.cache=modeβ specify a caching policy. by default, no caches are used. ifcache=loose, no attempts are made at consistency β this mode is intended for exclusive, read-only mounts. ifcache=fscache, use FS-Cache for a persistent, read-only cache backend. π§cachetagβ in the context ofcache=fscache, select the cache tag to use for this session. cache tags for existing cache sessions are listed in/sys/fs/9p/caches. go look, it's right there πnodevmapβ do not map special files. represent them as normal files. this can be used to share devices/named pipes/sockets between hosts. sharing is caring πdebug=nβ specifies debug level for the kernel 9p module. the debug level is a bitmask. get ready, it's a whole list:
0x01 = display verbose error messages
0x02 = developer debug (DEBUG_CURRENT)
0x04 = display 9p trace
0x08 = display VFS trace
0x10 = display Marshalling debug
0x20 = display RPC debug
0x40 = display transport debug
0x80 = display allocation debug
0x100 = display protocol message debug
0x200 = display Fid debug
0x400 = display packet debug
0x800 = display fscache tracing debug
the debug level is global, i.e. it applies to all 9P file systems and it remains set after the file system is unmounted. π that's the part to remember. the default is debug=0.
β¨ SEE ALSO β¨
diod (8) β go read her too, she's the main character π
and that's the page!! π¦ source is diod, version 1.0-pre27-516-g0d87511 β no cap, that's the real one, go mount something iconic bestie ππβ¨
π¦ where this page comes from
- opensuse-leap 16.0: diod 1.0.24+53.g0d87511-bp160.1.13 Β· GPL-2.0-or-later
- opensuse-leap 16.0: diod 1.0.24+53.g0d87511-bp160.1.13 Β· GPL-2.0-or-later
- opensuse-leap 16.0: diod 1.0.24+53.g0d87511-bp160.1.13 Β· GPL-2.0-or-later
- opensuse-leap 16.0: diod 1.0.24+53.g0d87511-bp160.1.13 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms