ntfsmount - NTFS module for FUSE.


ntfsmount device mount_point [-o options]


ntfsmount is a FUSE module that rely on libntfs. You need FUSE to compile it, xattr is recommended, but not mandatory.
Fully implemented ntfsmount features:
 o Read-write access to normal and sparse files. o Read-only access to compressed files. o Access to special Interix files (symlinks, devices, FIFOs). o List/Read/Write/Add/Remove named data streams. o Supports Linux and FreeBSD.
Partly implemented features:
 o Create/Delete/Move files and directories. o Hard link files.


Below is a summary of all the options that ntfsmount accepts.
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 user that mounted volume 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 mask only to directories.
 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" may 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.
 By default FUSE doesn’t check file access permissions, the filesystem is free to implement it’s access policy or leave it to the underlying file access mechanism (e.g. in case of network filesystems). This option enables permission checking, restricting access based on file mode. This is option is usually useful together with the ’allow_other’ mount option.
 This option overrides the security measure restricting file access to the user mounting the filesystem. This option is by default only allowed to root, but this restriction can be removed with a configuration option described in the previous section.
 (NOTE: Only for FUSE 2.3.0, with FUSE >= 2.4.0 on by default) This option disables flushing the cache of the file contents on every open(). This should only be enabled on filesystems, where the file data is never changed externally (not through the mounted FUSE filesystem). Thus it is not suitable for network filesystems and other "intermediate" filesystems. NOTE: if this option is not specified (and neither ’direct_io’) data is still cached after the open(), so a read() system call will not always initiate a read operation.
 Issue large read requests. This can improve performance for some filesystems, but can also degrade performance. This option is only useful on 2.4.X kernels, as on 2.6 kernels requests size is automatically determined for optimum performance.
 (NOTE: Only for FUSE 2.3.0) This option disables the use of page cache (file content cache) in the kernel for this filesystem. This has several affects: - Each read() or write() system call will initiate one or more read or write operations, data will not be cached in the kernel. - The return value of the read() and write() system calls will correspond to the return values of the read and write operations. This is useful for example if the file size is not known in advance (before reading it).
 With this option the maximum size of read operations can be set. The default is infinite. Note that the size of read requests is limited anyway to 32 pages (which is 128kbyte on i386).
force Force mount even if errors occurred. Use this option only if you know what are you doing and don’t cry about data loss.
ro Mount filesystem read-only.
 By default ntfsmount acts as "default_permissions,allow_other" was passed to it, this option cancel this behaviour.
silent Do nothing on chmod and chown operations, but do not return error.
 You can set locale with this option. It’s useful if locale enviroment variables are not set before partitions from /etc/fstab had been mounted.
 This option controls how the user can access named data streams. It can be set to, one of none, windows or xattr. If the option is set to none, the user will have no access to the named data streams. If it’s set to windows, then the user can access them just like in Windows (eg. cat file:stream). If it’s set to xattr, then the named data streams are mapped to xattrs and user can manipulate them using {get,set}fattr utilities.
debug Makes ntfsmount to not detach from terminal and print a lot of debug output from libntfs and FUSE.
 Same as above but with less debug output.


All data on NTFS is stored in streams. Every file has exactly one unnamed data stream and can have many named data streams. The size of a file is the size of its unnamed data stream. By default, ntfsmount will only read the unnamed data stream.

By using the options "streams_interface=windows", you will be able to read any named data streams, simply by specifying the stream’s name after a colon. For example:

cat some.mp3:artist

Windows applications don’t, consistently, allow you to read named data streams, so you are recommended to use tools like FAR, or utils from Cygwin.

Named data streams act like normals files, so you can read from them, write to them and even delete them (using rm). You can list all the named data streams a file has by getting the "ntfs.streams.list" extended attribute. NOTE: This list feature is unique to the ntfsmount and may never be supported by the kernel driver.


Mount /dev/hda1 to /mnt/ntfs-fuse using ntfsmount:

ntfsmount /dev/hda1 /mnt/ntfs-fuse

Read-only mount /dev/hda5 to /home/user/mnt and make user with uid 1000 to be owner of all files:

ntfsmount /dev/hda5 /home/user/mnt -o ro,uid=1000

/etc/fstab entry for above:

/dev/hda5 /home/user/mnt ntfs-fuse ro,uid=1000 0 0

Umount /mnt/ntfs-fuse:

fusermount -u /mnt/ntfs-fuse

Cat "artist" named data stream of "some.mp3":

cat some.mp3:artist

Write "Sympho Black Metal" to "genre" named data stream of "some.mp3":

echo Sympho Black Metal > some.mp3:genre

Remove "album" named data stream from "some.mp3":

rm some.mp3:album

List all named data streams for "some.mp3":

getfattr -n ntfs.streams.list some.mp3


There are no known problems with ntfsmount. If you find a bug please send an email describing the problem to the development team:


ntfsmount was written by Yura Pakhuchiy, with contributions from Yuval Fledel.


With love to Marina Sapego.


Many thanks to Miklos Szeredi for advice and answers about FUSE.


ntfsmount is part of the ntfsprogs package and is available from:

The manual pages are available online at:


ntfsprogs(8), attr(5), getfattr(1)

openSUSE Logo