xref: /linux/Documentation/filesystems/ntfs.rst (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
11e9ea7e0SNamjae Jeon.. SPDX-License-Identifier: GPL-2.0
21e9ea7e0SNamjae Jeon
3ab00f20aSNamjae Jeon=================================
41e9ea7e0SNamjae JeonThe Linux NTFS filesystem driver
5ab00f20aSNamjae Jeon=================================
61e9ea7e0SNamjae Jeon
71e9ea7e0SNamjae Jeon
81e9ea7e0SNamjae Jeon.. Table of contents
91e9ea7e0SNamjae Jeon
101e9ea7e0SNamjae Jeon   - Overview
11ab00f20aSNamjae Jeon   - Utilities support
121e9ea7e0SNamjae Jeon   - Supported mount options
131e9ea7e0SNamjae Jeon
141e9ea7e0SNamjae Jeon
151e9ea7e0SNamjae JeonOverview
161e9ea7e0SNamjae Jeon========
171e9ea7e0SNamjae Jeon
18ab00f20aSNamjae JeonNTFS is a Linux kernel filesystem driver that provides full read and write
19ab00f20aSNamjae Jeonsupport for NTFS volumes. It is designed for high performance, modern
20ab00f20aSNamjae Jeonkernel infrastructure (iomap, folio), and stable long-term maintenance.
211e9ea7e0SNamjae Jeon
221e9ea7e0SNamjae Jeon
23ab00f20aSNamjae JeonUtilities support
24ab00f20aSNamjae Jeon=================
251e9ea7e0SNamjae Jeon
26ab00f20aSNamjae JeonThe NTFS utilities project, called ntfsprogs-plus, provides mkfs.ntfs,
27ab00f20aSNamjae Jeonfsck.ntfs, and other related tools (e.g., ntfsinfo, ntfsclone, etc.) for
28ab00f20aSNamjae Jeoncreating, checking, and managing NTFS volumes. These utilities can be used
29ab00f20aSNamjae Jeonfor filesystem testing with xfstests as well as for recovering corrupted
30ab00f20aSNamjae JeonNTFS devices.
311e9ea7e0SNamjae Jeon
32ab00f20aSNamjae JeonThe project is available at:
331e9ea7e0SNamjae Jeon
34ab00f20aSNamjae Jeon  https://github.com/ntfsprogs-plus/ntfsprogs-plus
351e9ea7e0SNamjae Jeon
361e9ea7e0SNamjae Jeon
371e9ea7e0SNamjae JeonSupported mount options
381e9ea7e0SNamjae Jeon=======================
391e9ea7e0SNamjae Jeon
40ab00f20aSNamjae JeonThe NTFS driver supports the following mount options:
411e9ea7e0SNamjae Jeon
42*9b4253cdSRandy Dunlap======================= ====================================================
43ab00f20aSNamjae Jeoniocharset=name          Character set to use for converting between
44ab00f20aSNamjae Jeon                        the encoding is used for user visible filename and
45ab00f20aSNamjae Jeon                        16 bit Unicode characters.
461e9ea7e0SNamjae Jeon
47ab00f20aSNamjae Jeonnls=name                Deprecated option.  Still supported but please use
48ab00f20aSNamjae Jeon                        iocharset=name in the future.
491e9ea7e0SNamjae Jeon
501e9ea7e0SNamjae Jeonuid=
511e9ea7e0SNamjae Jeongid=
521e9ea7e0SNamjae Jeonumask=                  Provide default owner, group, and access mode mask.
531e9ea7e0SNamjae Jeon                        These options work as documented in mount(8).  By
54ab00f20aSNamjae Jeon                        default, the files/directories are owned by root
55ab00f20aSNamjae Jeon                        and he/she has read and write permissions, as well
56ab00f20aSNamjae Jeon                        as browse permission for directories.  No one else
57ab00f20aSNamjae Jeon                        has any access permissions.  I.e. the mode on all
58ab00f20aSNamjae Jeon                        files is by default rw------- and
59ab00f20aSNamjae Jeon                        for directories rwx------, a consequence of
60ab00f20aSNamjae Jeon                        the default fmask=0177 and dmask=0077.
611e9ea7e0SNamjae Jeon                        Using a umask of zero will grant all permissions to
62ab00f20aSNamjae Jeon                        everyone, i.e. all files and directories will have
63ab00f20aSNamjae Jeon                        mode rwxrwxrwx.
641e9ea7e0SNamjae Jeon
651e9ea7e0SNamjae Jeonfmask=
661e9ea7e0SNamjae Jeondmask=                  Instead of specifying umask which applies both to
67ab00f20aSNamjae Jeon                        files and directories, fmask applies only to files
68ab00f20aSNamjae Jeon                        and dmask only to directories.
691e9ea7e0SNamjae Jeon
70ab00f20aSNamjae Jeonshowmeta=<BOOL>
71ab00f20aSNamjae Jeonshow_sys_files=<BOOL>   If show_sys_files is specified, show the system
72ab00f20aSNamjae Jeon                        files in directory listings.  Otherwise the default
73ab00f20aSNamjae Jeon                        behaviour is to hide the system files.
74ab00f20aSNamjae Jeon                        Note that even when show_sys_files is specified,
75ab00f20aSNamjae Jeon                        "$MFT" will not be visible due to bugs/mis-features
76ab00f20aSNamjae Jeon                        in glibc. Further, note that irrespective of
77ab00f20aSNamjae Jeon                        show_sys_files, all files are accessible by name,
78ab00f20aSNamjae Jeon                        i.e. you can always do "ls -l \$UpCase" for example
79ab00f20aSNamjae Jeon                        to specifically show the system file containing
80ab00f20aSNamjae Jeon                        the Unicode upcase table.
811e9ea7e0SNamjae Jeon
82ab00f20aSNamjae Jeoncase_sensitive=<BOOL>   If case_sensitive is specified, treat all filenames
83ab00f20aSNamjae Jeon                        as case sensitive and create file names in
84ab00f20aSNamjae Jeon                        the POSIX namespace (default behavior). Note,
85ab00f20aSNamjae Jeon                        the Linux NTFS driver will never create short
86ab00f20aSNamjae Jeon                        filenames and will remove them on rename/delete of
87ab00f20aSNamjae Jeon                        the corresponding long file name. Note that files
88ab00f20aSNamjae Jeon                        remain accessible via their short file name, if it
89ab00f20aSNamjae Jeon                        exists.
901e9ea7e0SNamjae Jeon
91ab00f20aSNamjae Jeonnocase=<BOOL>           If nocase is specified, treat filenames
92ab00f20aSNamjae Jeon                        case-insensitively.
931e9ea7e0SNamjae Jeon
941e9ea7e0SNamjae Jeondisable_sparse=<BOOL>   If disable_sparse is specified, creation of sparse
95ab00f20aSNamjae Jeon                        regions, i.e. holes, inside files is disabled for
96ab00f20aSNamjae Jeon                        the volume (for the duration of this mount only).
97ab00f20aSNamjae Jeon                        By default, creation of sparse regions is enabled,
98ab00f20aSNamjae Jeon                        which is consistent with the behaviour of
99ab00f20aSNamjae Jeon                        traditional Unix filesystems.
1001e9ea7e0SNamjae Jeon
101ab00f20aSNamjae Jeonerrors=opt              Specify NTFS behavior on critical errors: panic,
102ab00f20aSNamjae Jeon                        remount the partition in read-only mode or
103ab00f20aSNamjae Jeon                        continue without doing anything (default behavior).
1041e9ea7e0SNamjae Jeon
1051e9ea7e0SNamjae Jeonmft_zone_multiplier=    Set the MFT zone multiplier for the volume (this
1061e9ea7e0SNamjae Jeon                        setting is not persistent across mounts and can be
107ab00f20aSNamjae Jeon                        changed from mount to mount but cannot be changed
108ab00f20aSNamjae Jeon                        on remount).  Values of 1 to 4 are allowed, 1 being
109ab00f20aSNamjae Jeon                        the default.  The MFT zone multiplier determines
110ab00f20aSNamjae Jeon                        how much space is reserved for the MFT on the
111ab00f20aSNamjae Jeon                        volume.  If all other space is used up, then the
112ab00f20aSNamjae Jeon                        MFT zone will be shrunk dynamically, so this has no
113ab00f20aSNamjae Jeon                        impact on the amount of free space.  However, it
114ab00f20aSNamjae Jeon                        can have an impact on performance by affecting
115ab00f20aSNamjae Jeon                        fragmentation of the MFT. In general use the
116ab00f20aSNamjae Jeon                        default.  If you have a lot of small files then use
117ab00f20aSNamjae Jeon                        a higher value.  The values have the following
118ab00f20aSNamjae Jeon                        meaning:
1191e9ea7e0SNamjae Jeon
1201e9ea7e0SNamjae Jeon                        =====   =================================
1211e9ea7e0SNamjae Jeon                        Value   MFT zone size (% of volume size)
1221e9ea7e0SNamjae Jeon                        =====   =================================
1231e9ea7e0SNamjae Jeon                          1             12.5%
1241e9ea7e0SNamjae Jeon                          2             25%
1251e9ea7e0SNamjae Jeon                          3             37.5%
1261e9ea7e0SNamjae Jeon                          4             50%
1271e9ea7e0SNamjae Jeon                        =====   =================================
1281e9ea7e0SNamjae Jeon
129ab00f20aSNamjae Jeon                        Note this option is irrelevant for read-only mount.
1301e9ea7e0SNamjae Jeon
131ab00f20aSNamjae Jeonpreallocated_size=      Set preallocated size to optimize runlist merge
132ab00f20aSNamjae Jeon                        overhead with small chunck size.(64KB size by
133ab00f20aSNamjae Jeon                        default)
1341e9ea7e0SNamjae Jeon
135ab00f20aSNamjae Jeonacl=<BOOL>              Enable POSIX ACL support. When specified, POSIX
136ab00f20aSNamjae Jeon                        ACLs stored in extended attributes are enforced.
137ab00f20aSNamjae Jeon                        Default is off. Requires kernel config
138ab00f20aSNamjae Jeon                        NTFS_FS_POSIX_ACL enabled.
1391e9ea7e0SNamjae Jeon
140ab00f20aSNamjae Jeonsys_immutable=<BOOL>    Make NTFS system files (e.g. $MFT, $LogFile,
141ab00f20aSNamjae Jeon                        $Bitmap, $UpCase, etc.) immutable to user initiated
142ab00f20aSNamjae Jeon                        modifications for extra safety. Default is off.
1431e9ea7e0SNamjae Jeon
144ab00f20aSNamjae Jeonnohidden=<BOOL>         Hide files and directories marked with the Windows
145ab00f20aSNamjae Jeon                        "hidden" attribute. By default hidden items are
146ab00f20aSNamjae Jeon                        shown.
1471e9ea7e0SNamjae Jeon
148ab00f20aSNamjae Jeonhide_dot_files=<BOOL>   Hide names beginning with a dot ("."). By default
149ab00f20aSNamjae Jeon                        dot files are shown. When enabled, files and
150ab00f20aSNamjae Jeon                        directories created with a leading '.' will be
151ab00f20aSNamjae Jeon                        hidden from directory listings.
1521e9ea7e0SNamjae Jeon
153ab00f20aSNamjae Jeonwindows_names=<BOOL>    Refuse creation/rename of files with characters or
154ab00f20aSNamjae Jeon                        reserved device names disallowed on Windows (e.g.
155ab00f20aSNamjae Jeon                        CON, NUL, AUX, COM1, LPT1, etc.). Default is off.
156ab00f20aSNamjae Jeondiscard=<BOOL>          Issue block device discard for clusters freed on
157ab00f20aSNamjae Jeon                        file deletion/truncation to inform underlying
158ab00f20aSNamjae Jeon                        storage.
159*9b4253cdSRandy Dunlap======================= ====================================================
160