There are lots of articles on mounting of NTFS partitions. Some are way too simple, some are outdated. Almost none of them explain the decisions made. We’ll fix all of that.
Every emphasized option is a default and maybe omitted.
Let’s start from the common useful options in
defaults: implies rw, suid, dev, exec, auto, nouser, and async.
async: a strong default until you want sync for some reason.
auto: let’s take part in “mount all” command.
nostrictatime: forbid OS to change inode on every access.
And NTFS-specific from the same man:
utf8: to use it for converting file names.
uid=1000: set the very first user (usually admin) as the owner.
gid=plugdev: set the plugdev group as the owner group. It’s handy since every Ubuntu user is in that group by default.
umask=0002: by design should give 3775 octal permission, or sgrwxrwxr-x. But in fact sticky and guid seem not to work.
Additional NTFS-specific options from man ntfs-3g:
windows_names: enable Windows restrictions for new file names.
streams_interface=xattr: enable “Alternate Data Streams” support in Linux flavor.
allow_other: without it file access will be restricted to the user mounting the FS.
nocompression: disable Windows compression for new files.
If you’ve mapped users:
usermapping=abs_file_name: set the map file if not default.
permissions: full POSIX features of ownership and permissions.
aclis only good when you need complex permissions.
inherit: enable Windows-compatible inheritance of permissions.
So the minimal option pack without mapping is:
Doubtful options I’ve met:
nls: see no sense in it, since utf8 is on board.
locale: “It is however discouraged as it leads to files with untranslatable chars to not be visible.”
The permissions option is ignored and automatically changed to default_permissions whenever any of the following options is also included with it:
uid, gid, umask, dmask, or fmask
blksize: even couldn’t google the origin.