1.. SPDX-License-Identifier: GPL-2.0
2
3=====
4NTFS3
5=====
6
7Summary and Features
8====================
9
10NTFS3 is fully functional NTFS Read-Write driver. The driver works with NTFS
11versions up to 3.1. File system type to use on mount is *ntfs3*.
12
13- This driver implements NTFS read/write support for normal, sparse and
14  compressed files.
15- Supports native journal replaying.
16- Supports NFS export of mounted NTFS volumes.
17- Supports extended attributes. Predefined extended attributes:
18
19	- *system.ntfs_security* gets/sets security
20
21		Descriptor: SECURITY_DESCRIPTOR_RELATIVE
22
23	- *system.ntfs_attrib* gets/sets ntfs file/dir attributes.
24
25	  Note: Applied to empty files, this allows to switch type between
26	  sparse(0x200), compressed(0x800) and normal.
27
28	- *system.ntfs_attrib_be* gets/sets ntfs file/dir attributes.
29
30	  Same value as system.ntfs_attrib but always represent as big-endian
31	  (endianness of system.ntfs_attrib is the same as of the CPU).
32
33Mount Options
34=============
35
36The list below describes mount options supported by NTFS3 driver in addition to
37generic ones. You can use every mount option with **no** option. If it is in
38this table marked with no it means default is without **no**.
39
40.. flat-table::
41   :widths: 1 5
42   :fill-cells:
43
44   * - iocharset=name
45     - This option informs the driver how to interpret path strings and
46       translate them to Unicode and back. If this option is not set, the
47       default codepage will be used (CONFIG_NLS_DEFAULT).
48
49       Example: iocharset=utf8
50
51   * - uid=
52     - :rspan:`1`
53   * - gid=
54
55   * - umask=
56     - Controls the default permissions for files/directories created after
57       the NTFS volume is mounted.
58
59   * - dmask=
60     - :rspan:`1` Instead of specifying umask which applies both to files and
61       directories, fmask applies only to files and dmask only to directories.
62   * - fmask=
63
64   * - noacsrules
65     - "No access rules" mount option sets access rights for files/folders to
66       777 and owner/group to root. This mount option absorbs all other
67       permissions.
68
69       - Permissions change for files/folders will be reported as successful,
70	 but they will remain 777.
71
72       - Owner/group change will be reported as successful, butthey will stay
73	 as root.
74
75   * - nohidden
76     - Files with the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
77       will not be shown under Linux.
78
79   * - sys_immutable
80     - Files with the Windows-specific SYSTEM (FILE_ATTRIBUTE_SYSTEM) attribute
81       will be marked as system immutable files.
82
83   * - hide_dot_files
84     - Updates the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
85       when creating and moving or renaming files. Files whose names start
86       with a dot will have the HIDDEN attribute set and files whose names
87       do not start with a dot will have it unset.
88
89   * - windows_names
90     - Prevents the creation of files and directories with a name not allowed
91       by Windows, either because it contains some not allowed character (which
92       are the characters " * / : < > ? \\ | and those whose code is less than
93       0x20), because the name (with or without extension) is a reserved file
94       name (CON, AUX, NUL, PRN, LPT1-9, COM1-9) or because the last character
95       is a space or a dot. Existing such files can still be read and renamed.
96
97   * - discard
98     - Enable support of the TRIM command for improved performance on delete
99       operations, which is recommended for use with the solid-state drives
100       (SSD).
101
102   * - force
103     - Forces the driver to mount partitions even if volume is marked dirty.
104       Not recommended for use.
105
106   * - sparse
107     - Create new files as sparse.
108
109   * - showmeta
110     - Use this parameter to show all meta-files (System Files) on a mounted
111       NTFS partition. By default, all meta-files are hidden.
112
113   * - prealloc
114     - Preallocate space for files excessively when file size is increasing on
115       writes. Decreases fragmentation in case of parallel write operations to
116       different files.
117
118   * - acl
119     - Support POSIX ACLs (Access Control Lists). Effective if supported by
120       Kernel. Not to be confused with NTFS ACLs. The option specified as acl
121       enables support for POSIX ACLs.
122
123Todo list
124=========
125- Full journaling support over JBD. Currently journal replaying is supported
126  which is not necessarily as effectice as JBD would be.
127
128References
129==========
130- Commercial version of the NTFS driver for Linux.
131	https://www.paragon-software.com/home/ntfs-linux-professional/
132
133- Direct e-mail address for feedback and requests on the NTFS3 implementation.
134	almaz.alexandrovich@paragon-software.com
135