Tips for ntfs on linux (ntfs-3g)

If you’re using both linux and windows you’re likely using ntfs. And that works really well on linux, but has one very important non-standard setting and a few other quirks. This is nothing authoritative, for that consult https://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html and as usual ArchWiki is pretty informative too: https://wiki.archlinux.org/index.php/NTFS-3G.

  • Use the big_writes mount option.
    This is a fuse thing that stops it from splitting all i/o into small chunks. This reduced cpu load (or just wait?) a lot for me.

  • The option windows_names throws invalid argument errors if a given name is not accepted by windows. Ntfs itself allows everything, but if you want to prevent windows madness it’s probably a good idea to use this.

  • Regarding permissions: The default option is basically “don’t care, allow all”. That’s often fine and you should enable ignore permissions in Syncthing. Otherwise there’s full blown permission handling, either just posix or with ACL, but that requires some setup (see links above).

If you have any additional tips, please write them up too.

2 Likes

Consider using exFAT instead of ntfs. Linux kernels >=5.4 support it natively.

1 Like

Nice to know, thanks!
A quick look at wikipedia shows a few drawbacks like missing journalling and slower lookup, so I guess it’s a tradeoff. For usb sticks and such that makes exfat suitable as a default though :slight_smile:

NTFS also has built-in compression, which is not available on exFAT. I had at least one situation, where that compression helped stuff more data than would normally fit on a tiny USB stick :upside_down_face:.