Re: ntfs3 mount options

From: Pali Rohár
Date: Sun Sep 12 2021 - 14:43:55 EST


Hello!

On Friday 10 September 2021 15:19:16 Kari Argillander wrote:
> 10.09.2021 14.23 Marcos Mello (marcosfrm@xxxxxxxxx) wrote:
> > Hi, sorry email you directly, but this mailing list thing is cryptic
> > to me.
>
> I CC also lists to this so now everyone knows. Also CC couple
> others who might be interested to talk about this.
>
> > I was reading your patches cleaning up ntfs3 documentation and
> > realized some mount options diverge from NTFS-3G. This will make
> > udisks people unhappy.

If you still have to specify which fs driver want to use (ntfs, ntfs-3g,
ntfs3). So each software needs to be adjusted if want to start using
different fs driver even when mount options are same. So I think there
are no big issues that different fs driver are using different mount
options.

> This is true. They also diverge from the current NTFS driver. We have
> talk about it a little bit and before ntfs driver can go out from kernel we
> need to support those flags or at least some. udisk currently does only
> support NTFS-3G and it does not support kernel ntfs driver. So nothing
> will change.
>
> I also agree that we should check mount options from ntfs-3g and maybe
> implement them in. Maybe we can just take some mount options with
> deprecated and print that this option is meant to use with ntfs-3g please
> note that this is kernel ntfs3 driver or something. It would still work for
> users. Ntfs-3g contains imo lot of unnecessary flags. Kernel community
> would probably not want to maintain so large list of different options.

Mount options which makes sense could be implemented. Just somebody
needs to do it.

> Ntfs-3g group also has acounted problems because they say that you
> should example use "big_writes", but not everyone does and that drops
> performance. Driver should work good way by default.

I agree. Mount option which is just a hack because of some poor
implementation should not be introduced. Instead bugs should be fixed.
Also it applies for "performance issues" which do not change behavior of
fs operations (i.e. read() / write() operations do same thing on raw
disk).

> And only if there
> is really demand there should be real mount option. But like I said, maybe
> we should add "fake" ntfs-3g options so if some user change to use ntfs3
> it will be pretty painless.

This really should not be in kernel. You can implement userspace mount
helper which translates "legacy" ntfs-3g options into "correct" kernel
options. /bin/mount already supports these helpers / wrappers... Just
people do not know much about them.

> > NTFS-3G options:
> > https://github.com/tuxera/ntfs-3g/blob/edge/src/ntfs-3g.8.in
> >
> > UDISKS default and allowed options:
> > https://github.com/storaged-project/udisks/blob/master/data/builtin_mount_options.conf
> >
> > For example, windows_names is not supported in ntfs3 and
> > show_sys_files should probably be an alias to showmeta.
>
> Imo windows_names is good option. There is so many users who just
> want to use this with dual boot. That is why I think best option would
> be windows_compatible or something. Then we do everything to user
> not screw up things with disk and that when he checks disk with windows
> everything will be ok. This option has to also select ignore_case.
>
> But right now we are horry to take every mount option away what we won't
> need. We can add options later. And this is so early that we really cannot
> think so much how UDSIKS threats ntfs-3g. It should imo not be problem
> for them to also support for ntfs3 with different options.

This is something which needs to be handled and fixed systematically. We
have at least 5 filesystems in kernel (bonus question, try to guess
them :D) which support some kind/parts of "windows nt" functionality.
And it is pain if every one fs would use different option for
similar/same functionality.

> > Also, is NTFS-3G locale= equivalent to ntfs3 nls=?
>
> Pretty much. It is now called iocharset and nls will be deprecated.
> This is work towards that every Linux kernel filesystem driver which
> depends on this option will be same name. Ntfs-3g should also use
> it.

iocharset= is what most fs supports. Just few name this option as nls=
and for consistency I preparing patches which adds iocharset= alias for
all kernel filesystems. nls= (for those few fs) stay supported as legacy
alias for iocharset=.

Kari, now I'm thinking about nls= in new ntfs3 kernel driver. It is
currently being marked as deprecated. Does it really make sense to
introduce in new fs already deprecated option? Now when final linux
version which introduce this driver was not released yet, we can simply
drop (= do not introduce this option). But after release, there would be
no easy way to remove it. Adding a new option can be done at any time
later easily...

> > Thank you a lot for all the work put into ntfs3!
> >
> > Marcos