.. SPDX-License-Identifier: GPL-2.0 ================================= The Linux NTFS filesystem driver ================================= .. Table of contents - Overview - Utilities support - Supported mount options Overview ======== NTFS is a Linux kernel filesystem driver that provides full read and write support for NTFS volumes. It is designed for high performance, modern kernel infrastructure (iomap, folio), and stable long-term maintenance. Utilities support ================= The NTFS utilities project, called ntfsprogs-plus, provides mkfs.ntfs, fsck.ntfs, and other related tools (e.g., ntfsinfo, ntfsclone, etc.) for creating, checking, and managing NTFS volumes. These utilities can be used for filesystem testing with xfstests as well as for recovering corrupted NTFS devices. The project is available at: https://github.com/ntfsprogs-plus/ntfsprogs-plus Supported mount options ======================= The NTFS driver supports the following mount options: ======================= =================================================== iocharset=name Character set to use for converting between the encoding is used for user visible filename and 16 bit Unicode characters. nls=name Deprecated option. Still supported but please use iocharset=name in the future. uid= gid= umask= Provide default owner, group, and access mode mask. These options work as documented in mount(8). By default, the files/directories are owned by root and he/she has read and write permissions, as well as browse permission for directories. No one else has any access permissions. I.e. the mode on all files is by default rw------- and for directories rwx------, a consequence of the default fmask=0177 and dmask=0077. Using a umask of zero will grant all permissions to everyone, i.e. all files and directories will have mode rwxrwxrwx. fmask= dmask= Instead of specifying umask which applies both to files and directories, fmask applies only to files and dmask only to directories. showmeta= show_sys_files= If show_sys_files is specified, show the system files in directory listings. Otherwise the default behaviour is to hide the system files. Note that even when show_sys_files is specified, "$MFT" will not be visible due to bugs/mis-features in glibc. Further, note that irrespective of show_sys_files, all files are accessible by name, i.e. you can always do "ls -l \$UpCase" for example to specifically show the system file containing the Unicode upcase table. case_sensitive= If case_sensitive is specified, treat all filenames as case sensitive and create file names in the POSIX namespace (default behavior). Note, the Linux NTFS driver will never create short filenames and will remove them on rename/delete of the corresponding long file name. Note that files remain accessible via their short file name, if it exists. nocase= If nocase is specified, treat filenames case-insensitively. disable_sparse= If disable_sparse is specified, creation of sparse regions, i.e. holes, inside files is disabled for the volume (for the duration of this mount only). By default, creation of sparse regions is enabled, which is consistent with the behaviour of traditional Unix filesystems. errors=opt Specify NTFS behavior on critical errors: panic, remount the partition in read-only mode or continue without doing anything (default behavior). mft_zone_multiplier= Set the MFT zone multiplier for the volume (this setting is not persistent across mounts and can be changed from mount to mount but cannot be changed on remount). Values of 1 to 4 are allowed, 1 being the default. The MFT zone multiplier determines how much space is reserved for the MFT on the volume. If all other space is used up, then the MFT zone will be shrunk dynamically, so this has no impact on the amount of free space. However, it can have an impact on performance by affecting fragmentation of the MFT. In general use the default. If you have a lot of small files then use a higher value. The values have the following meaning: ===== ================================= Value MFT zone size (% of volume size) ===== ================================= 1 12.5% 2 25% 3 37.5% 4 50% ===== ================================= Note this option is irrelevant for read-only mount. preallocated_size= Set preallocated size to optimize runlist merge overhead with small chunck size.(64KB size by default) acl= Enable POSIX ACL support. When specified, POSIX ACLs stored in extended attributes are enforced. Default is off. Requires kernel config NTFS_FS_POSIX_ACL enabled. sys_immutable= Make NTFS system files (e.g. $MFT, $LogFile, $Bitmap, $UpCase, etc.) immutable to user initiated modifications for extra safety. Default is off. nohidden= Hide files and directories marked with the Windows "hidden" attribute. By default hidden items are shown. hide_dot_files= Hide names beginning with a dot ("."). By default dot files are shown. When enabled, files and directories created with a leading '.' will be hidden from directory listings. windows_names= Refuse creation/rename of files with characters or reserved device names disallowed on Windows (e.g. CON, NUL, AUX, COM1, LPT1, etc.). Default is off. discard= Issue block device discard for clusters freed on file deletion/truncation to inform underlying storage. ======================= ==================================================