xref: /linux/Documentation/filesystems/ntfs3.rst (revision 34dc1baba215b826e454b8d19e4f24adbeb7d00d)
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   * - nohidden
65     - Files with the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
66       will not be shown under Linux.
67
68   * - sys_immutable
69     - Files with the Windows-specific SYSTEM (FILE_ATTRIBUTE_SYSTEM) attribute
70       will be marked as system immutable files.
71
72   * - hide_dot_files
73     - Updates the Windows-specific HIDDEN (FILE_ATTRIBUTE_HIDDEN) attribute
74       when creating and moving or renaming files. Files whose names start
75       with a dot will have the HIDDEN attribute set and files whose names
76       do not start with a dot will have it unset.
77
78   * - windows_names
79     - Prevents the creation of files and directories with a name not allowed
80       by Windows, either because it contains some not allowed character (which
81       are the characters " * / : < > ? \\ | and those whose code is less than
82       0x20), because the name (with or without extension) is a reserved file
83       name (CON, AUX, NUL, PRN, LPT1-9, COM1-9) or because the last character
84       is a space or a dot. Existing such files can still be read and renamed.
85
86   * - discard
87     - Enable support of the TRIM command for improved performance on delete
88       operations, which is recommended for use with the solid-state drives
89       (SSD).
90
91   * - force
92     - Forces the driver to mount partitions even if volume is marked dirty.
93       Not recommended for use.
94
95   * - sparse
96     - Create new files as sparse.
97
98   * - showmeta
99     - Use this parameter to show all meta-files (System Files) on a mounted
100       NTFS partition. By default, all meta-files are hidden.
101
102   * - prealloc
103     - Preallocate space for files excessively when file size is increasing on
104       writes. Decreases fragmentation in case of parallel write operations to
105       different files.
106
107   * - acl
108     - Support POSIX ACLs (Access Control Lists). Effective if supported by
109       Kernel. Not to be confused with NTFS ACLs. The option specified as acl
110       enables support for POSIX ACLs.
111
112Todo list
113=========
114- Full journaling support over JBD. Currently journal replaying is supported
115  which is not necessarily as effective as JBD would be.
116
117References
118==========
119- Commercial version of the NTFS driver for Linux.
120	https://www.paragon-software.com/home/ntfs-linux-professional/
121
122- Direct e-mail address for feedback and requests on the NTFS3 implementation.
123	almaz.alexandrovich@paragon-software.com
124