EXFAT-FUSE(8)

πŸ“¦
version 1.4.0 Β· 2 versions
, in alpine 3.24, arch rolling, debian trixie, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– EXFAT-FUSE πŸ’–

okay bestie, welcome to the exfat-fuse manual page β€” it lives in the System Manager's Manual section (section 8, for the people keeping score πŸ‘‘), and it's literally the whole reason you can mount an exFAT filesystem on your lil Unix box. buckle up, this one's short but iconic ✨


✨ NAME ✨

mount.exfat-fuse β€” mount an exFAT file system πŸ¦‹


🌸 SYNOPSIS 🌸

mount.exfat-fuse [ -d ] [ -n ] [ -o options ] [ -V ] [ -v ] device dir

like. that's the whole summoning ritual. device is your drive, dir is where you want it to appear. simple as πŸŽ€


πŸ’… DESCRIPTION πŸ’…

mount.exfat-fuse is a free exFAT file system implementation and β€” this is the part everyone cares about β€” it has write support. no read-only sad girl hours here πŸ’–

exFAT is a simple file system made by Microsoft, no cap. the whole point of it was to replace FAT32 and drop some of FAT32's limitations (FAT32 could never πŸ’€). and if you've ever held an SDXC memory card in your hands? yeah, exFAT is the standard FS for those. main character of the memory card world fr fr 🌈


πŸŽ€ COMMAND LINE OPTIONS πŸŽ€

the options you can yeet at it from the command line:

  • -d β€” turn on debug logging and don't detach from the shell. it stays right there with you. clingy in a helpful way 🫢
  • -n β€” ignored. it's just there. vibes only. πŸ™ˆ
  • -o options β€” file system specific options go here. full deets in the FILE SYSTEM OPTIONS section below, keep scrolling bestie ⬇️
  • -V β€” print the version and the copyright. flex check πŸ’…
  • -v β€” ignored. also just vibes. 😭

πŸ¦‹ FILE SYSTEM OPTIONS πŸ¦‹

these are the ones you pass through -o, and they're the ones that actually change how your mount behaves:

  • umask= value β€” sets the umask. quick refresher: that's the bitmask of permissions that are not present, and you write it in octal. the default is 0 ⭐
  • dmask= value β€” same idea as umask, but for directories only πŸŽ€
  • fmask= value β€” again same idea, but for files only πŸ“
  • uid= n β€” set the owner for all files and directories. default is the owner of the current process πŸ‘‘
  • gid= n β€” set the group for all files and directories. default is the group of the current process 🫢
  • ro β€” mount the file system in read only mode. no writing, no touching, look don't touch energy πŸ”’
  • noatime β€” don't update the access time when a file is read. it's giving minimal effort, and honestly? valid ✨

πŸ”₯ EXIT CODES πŸ”₯

  • Zero gets returned when the mount succeeds. slay πŸ’–
  • Any other code means an error happened. so if you get anything that isn't 0, something went wrong, periodt πŸ’€

πŸ’€ BUGS πŸ’€

okay so this is the part where we hold hands and get real for a sec.

exFAT is a case-insensitive file system. that means some things can behave unexpectedly β€” for example, renaming a directory where you only change the case of some characters:

$ mv FOO Foo
mv: cannot move ’FOO’ to a subdirectory of itself, ’Foo/FOO’

and why does this happen, you ask? because mv sees that the destination exists β€” and on a case-insensitive file system, FOO and Foo are literally the same thing β€” so it adds the source basename onto the destination. then the file system gets this syscall:

rename("FOO", "Foo/FOO")

and it just returns an error. not a bug you can fix by yelling at it, it's just how case-insensitivity do πŸ™ˆ


πŸ‘‘ AUTHOR πŸ‘‘

Andrew Nayenko β€” thank you for your service, king 🫢


🌈 SEE ALSO 🌈

  • mount(8) β€” go read it, iykyk πŸ’œ

and that's the whole page bestie!! this one's from the System Manager's Manual, source/version EXFAT-FUSE(8), dated November 2015 β€” so it's vintage, and vintage is always iconic πŸŽ€βœ¨πŸ’–