Merge branch 'for-6.6/nvidia' into for-linus
[platform/kernel/linux-starfive.git] / Documentation / filesystems / ntfs3.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 =====
4 NTFS3
5 =====
6
7 Summary and Features
8 ====================
9
10 NTFS3 is fully functional NTFS Read-Write driver. The driver works with NTFS
11 versions 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
33 Mount Options
34 =============
35
36 The list below describes mount options supported by NTFS3 driver in addition to
37 generic ones. You can use every mount option with **no** option. If it is in
38 this 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
112 Todo list
113 =========
114 - Full journaling support over JBD. Currently journal replaying is supported
115   which is not necessarily as effectice as JBD would be.
116
117 References
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