NTFS-3G Support
Updated: November 28, 2008
This section documents and answers the known issues with the stable NTFS-3G driver.
Please see the driver release history and make sure you
have the latest one.
Most Popular
How can I automount NTFS devices?
What does the "I/O error" mean?
Missing, disappeared files or directories?
Why can't I see all filenames with national characters?
Why does the driver have high CPU utilization?
Usage
Can NTFS-3G corrupt the Master Boot Record (MBR) or the partition table?
Why do I get "WARNING: Deficient Linux kernel detected"?
Why can't unprivileged users mount block devices?
Why do I get "fusermount: option blkdev is privileged" error?
Why don't the 'user' and 'users' options work in /etc/fstab?
Why does the driver allow case sensitive filenames?
Why does the driver allow special characters in the filenames?
Why do I get a "File exists" message when deleting an empty directory?
Why do I get an "Operation not supported" message when creating a file?
Why do I get an "Operation not supported" message when deleting a file?
Why can't I read or modify some files?
Why doesn't file deletion free disk space?
Functionality
Can I use NTFS as the root file system?
Can I use swap file safely, deadlock free on NTFS?
Can I boot Linux from NTFS?
Can I export NTFS via NFS?
Can I use NTFS-3G on Linux 2.4 kernels?
Applications
Why does Wine crash?
Why are Firefox saved files empty?
Why does Firefox duplicate file extensions?
Why does VMware crash during startup?
Why is writing slow using 'dd', 'amarok' or 'encfs'?
Can I install both ntfsprogs and NTFS-3G?
Performance
Why is the driver slow?
Why does the driver have high CPU utilization?
Why is writing huge files slowing down?
Why is writing slow using 'dd', 'amarok' or 'encfs'?
Windows CHKDSK
Why does chkdsk complain about free space being marked as "in use"?
Why does chkdsk report "Cleaning up XXX unused ..."?
Why does chkdsk report "Deleting an index entry from index $O of file 25"?
Why does chkdsk report "minor inconsistency"?
Miscellaneous
Did Apple sponsor the NTFS-3G driver development?
When will be the driver ported to the kernel?
What about the NTFS patents?
How can I automount NTFS devices?
The NTFS automount support is highly distribution specific
regarding the used technologies and the preferred mount configuration.
This is what should happen on a higher level:
- Detect storage hardware.
- Detect NTFS on the hardware.
- Start the NTFS-3G driver with the user and distribution preferred mount options.
- Mount the NTFS volume.
The NTFS-3G file system developers are working only on item 4.
This is a huge and very complex task itself. The distribution and other
developers are working on item 1, 2, and 3, which solutions are vastly different
depending on all kind of preferences.
Solution: If you would like to have this feature in your distribution then
please ask your distribution vendor or developers to support this feature.
Workarounds: Either of the following could help.
Status: Not NTFS-3G problem.
Missing, disappeared files or directories?
or
Why can't I see all filenames with national characters?
or
Why do I get "Skipping unrepresentable filename (inode XXXXX) ..." messages?
If the top directory is completely empty then it's very probably that the NTFS
volume is not mounted.
If only some files are missing then this means that your Operating System (OS) doesn't
have the correct language specific
settings (locale, LANG variable, LC_ALL, etc) thus some filenames can't be converted
to your language and won't be visible. The reason can be:
- The locale setting wasn't configured during installation.
- Not the correct locale was configured.
- The configured value doesn't exist on the system.
- The OS configures the setting in a too late stage during
the boot process, only after the NTFS volume was already mounted.
The most common explanation is the latter one. This is why unmounting then mounting
such volumes after boot often makes all filenames visible.
Solution: The OS vendor should move the language specific configuration to an earlier
phase to precede the mounts of the NTFS volumes in time.
Workaround: NTFS-3G supports the 'locale' mount option which can be used to set
the correct language value. You can see what locales you have on your system
by using the following command:
locale -a
If you can't find the preferred setting then you must generate it, which is
very distribution dependent. To do so, a package like glibc-i18ndata (openSUSE,
Mandriva, ...) or locales (Debian, Ubuntu, ...) must be installed then enter the below
command as root to generate the language_COUNTRY.UTF-8 locale. For example the
Brazilian is:
localedef -i pt_BR -f UTF-8 pt_BR.UTF-8
Then you can use the "locale=pt_BR.UTF-8" option during mount.
If some of your softwares are not UTF8 ready then they will not
show correctly the UTF8 filenames. Please consult your distribution documentation about
how to enable full UTF8 support.
Status: Not NTFS-3G problem. Please ask your OS vendor to fix the boot time
configuration problem.
What does the "I/O error" mean?
The Input/Output errors mean unexpected, low-level errors. They are
caused by hardware errors (disk, RAM, cable, power supply, motherboard, etc),
device driver faults, corrupted file system, software fault or incorrect
hardware use. The most typical reasons:
- Hardware or device driver faults. This is not always obvious immediately and
the confirmation may require very good skills or special hardware testing
utilities (memtest86+, badblocks, smartctl, etc). Windows often tries to
handle and correct some hardware faults silently without reporting them to
the user but not all operating systems took the same approach,
instead they log the unexpected errors in the /var/log directory,
typically in the messages.log, daemon.log, or system.log files.
Most common Linux error messages referring to hardware problems:
sd 1:0:0:0: SCSI error: return code = 0x10070000
end_request: I/O error, dev sda, sector ...
Buffer I/O error on device sda1, logical block ...
rejecting I/O to dead device
lost page write due to I/O error on ...
usb X-Y: device not accepting address Z, error -110
reset high speed USB device using ehci_hcd and address 17
sd 1:0:0:0: Device offlined - not ready after error recovery
sd 1:0:0:0: [sdc] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK,SUGGEST_OK
sd 1:0:0:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
ata1: device not ready (errno=-16), forcing hardreset
ata1: soft resetting link
hda: status timeout: status=0xd0 { Busy }
hda: command error: status=0x51 { DriveReady SeekComplete Error }
hda: irq timeout: status=0xd0 { Busy }
- Seagate FreeAgent Desktop drives are
causing data loss to users because they like to power down and the Linux
kernel forgets to wake them up. Typical error message in the logs are like
sd 2:0:0:0: [sdb] Device not ready: <6>: Sense Key : Not Ready [current]
Add. Sense: Logical unit not ready, initializing command required
Please see
this link
for more information and solution. It's said that the Linux kernel 2.6.24
had fixed this problem.
- It's keep being reported that some external LaCie drives
have power supply problems, physical media damages (bad sectors) and sometimes
the above Seagate FreeAgent problem.
- Lots of fatal hardware problems are being reported using Western Digital
MyBook drives. You can read some of the horror stories here:
[1],
[2],
[3].
- The Zonet USB 2 PCMCIA Adapter is another source
of data corruption problems.
- Corrupt file system. Most often they are caused by unexpected power
outage, improperly detaching external storage devices, uncleanly
shuting down the operating system, file system drivers, partitioners,
security softwares, viruses, root kits and other malwares.
If the problem is definitely not hardware related then run
chkdsk /f DRIVE:
on Windows and if the I/O errors don't go away and you're using the latest
NTFS-3G driver then please
submit a bug report and
provide us all the relevant system logs.
Can NTFS-3G corrupt the Master Boot Record (MBR) or the partition table?
Both the MBR and
the partition table are
outside of the NTFS disk area. This means that those disk areas are
not visible and not accessible to the driver. Moreover NTFS-3G doesn't need either
information to function. It doesn't read, write or modify any of them. In fact,
the operating system doesn't even let NTFS-3G to access those disk areas.
The MBR and the partition table are typically modified (corrupted) by boot managers,
partitioners, security softwares, recovery softwares, viruses and other malwares,
or some hardware fault.
Why do I get "WARNING: Deficient Linux kernel detected"?
The message means that you have an old and unsafe Linux kernel which is
prone to data loss.
Solution: Please ask your distribution developers to fix the Linux kernel problem.
The Linux kernel must be upgraded either to at least version 2.6.20,
or the FUSE kernel driver must be upgraded to a safe version which is also
included in the FUSE package for Linux kernel version 2.6.9 and later.
Status: Not NTFS-3G problem.
Why can't unprivileged users mount block devices?
or
Why do I get "fusermount: option blkdev is privileged" error?
Unprivileged block device mounts work only if all the below requirements are met:
- ntfs-3g is compiled with integrated FUSE support
- the ntfs-3g binary is at least version 1.2506
- the ntfs-3g binary is set to setuid-root
- the user has access right to the volume
- the user has access right to the mount point
The root user can make an ntfs-3g binary setuid-root as shown below
chown root $(which ntfs-3g)
chmod 4755 $(which ntfs-3g)
In such case the driver will also be able
- to fix common FUSE kernel module loading problems
- to create the required but sometimes incorrectly removed or missing FUSE
device file
Please note that using setuid-root can result unforeseen privilege escalation
and its usage is discouraged. Only the absolutely trusted users must be
granted such access. Below is an example how this can be done
for users in the ntfsuser group to be able to mount any NTFS volume if they
have also the needed volume access rights.
chown root.ntfsuser $(which ntfs-3g)
chmod 4750 $(which ntfs-3g)
The setuid-root ntfs-3g driver applies the principle of least privilege
during its lifetime as a safety measure.
Why don't the 'user' and 'users' options work in /etc/fstab?
The 'mount' command doesn't invoke the ntfs-3g binary with the needed
privilege after it has checked and approved the user is entitled
to mount a given device on a specified mount point, hereby the
user can't open the device he got the approval in /etc/fstab.
This is a problem in the 'mount' utility.
Solution: Use at least NTFS-3G 1.2506 with setuid-root
set and make sure the user has access rights to the volume and mount point.
Why does the driver allow case sensitive filenames?
or
Why does the driver allow special characters in the filenames?
NTFS supports several filename namespaces at the same time: DOS, Win32 and POSIX.
While the NTFS-3G driver handles all of them, it always creates new files in the
POSIX namespace for maximum portability and interoperability reasons.
This means that filenames are case sensitive and all characters are
allowed except '/' and '\0'. This is perfectly legal on Windows, though
some application may get confused. If you find so then please report it
to the developer of the relevant Windows software.
Workaround: If case insensitivity handling and/or restriction of special character usage
is desirable then you may export the NTFS volume via
Samba which supports
this functionality the same way as it does for other POSIX file systems.
An alternative solution for case insensitivity support is using
ciopfs
which mounts a normal directory on a regular file system in case insensitive fashion.
Status: Not NTFS-3G problem.
Why do I get a "File exists" message when deleting an empty directory?
If the locale environment is not setup correctly before mount then
glibc can't convert some filenames, so they are not visible
and the directory is indeed not empty.
Solution: Please see here.
Status: Not NTFS-3G problem.
Why do I get an "Operation not supported" message when creating a file?
The NTFS-3G 1.5012 driver has solved this issue, or
you're trying to create a file in a directory which is a
Reparse Point
and this not fully supported yet.
Why do I get an "Operation not supported" message when deleting a file?
The NTFS-3G 1.5012 driver has solved this issue, or
you're trying to delete an NTFS
Reparse Point
which is not fully supported yet.
Why can't I read or modify some files?
NTFS supports built-in, transparent compression and encryption of files and
directories on the file system level. Reading transparently compressed files
are supported but writing of compressed and encrypted files is denied.
Please note that compressed files, like .zip, .gz, .rar, etc, can be freely modified
because they are compressed on the file, not on the file system level.
Workaround: Uncompress or decrypt the files on Windows.
Status: Sponsoring the development of this driver extension is
possible.
Why doesn't file deletion free disk space?
In most cases it does, except for the following scenarios:
- In some desktop configurations files are not deleted for real but
moved into a 'Trash' or '.Trash-username' directory in the root of the partition.
When these directories are emptied then the disk space is reclaimed.
- By design, Linux and Unixes free the disk space of the deleted
files permanently only if no software keeps them open anymore.
- NTFS is able to store small files and directories in fixed
size (1 kB) MFT records (inodes). When such files are deleted
then the MFT records are marked free for reuse or for undelete,
and no space can be freed.
Status: Not NTFS-3G problem.
Can I use NTFS as the root file system?
Yes, this is possible and some distributions do it. For instance
WUBI, the Ubuntu Installer for Windows.
Can I use swap file safely, deadlock free on NTFS?
Yes, this is possible if it's properly setup. Below is the example how to create,
initialize and turn on a 2 GB swap file safely, deadlock free:
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
You must turn off the swap file with 'swapoff' before you would be able
to unmount NTFS.
Please also note that other solutions, for example using swap on a loop device,
are not safe and can cause deadlock!
Can I boot Linux from NTFS?
Yes. For example by using LILO, the same way as with any other filesystem:
copy the Linux boot files to NTFS, configure /etc/lilo.conf then run lilo.
Can I export NTFS via NFS?
Yes. There are two solutions depending on the Linux kernel version:
- Obsolete: Use the FUSE kernel module from the FUSE 2.7.4 software package
and please read the FUSE README.NFS file.
- Preferred: Use the FUSE kernel module included in the Linux 2.6.27 and
later kernels (the current git Linux kernel already includes FUSE
NFS support).
Can I use NTFS-3G on Linux 2.4 kernels?
Yes. You need to use NTFS-3G 1.2506 or later and the FUSE kernel module
from the FUSE 2.5.3 package. Please see more details in the FUSE README file.
Why does Wine crash?
User mounted partitions, e.g. when using the 'user' or 'users' mount
options in the /etc/fstab file, are done with the 'noexec' mount
option by default for security reasons. This means that memory mapping
(mmap) files for execution will be denied.
Another reason can be the lack of kernel support for
shared writable mmap which was added only to Linux kernel 2.6.26.
Solution: Add the 'exec' mount option to the end of the mount options.
It's important that the option to be the last one, otherwise other
mount option can over judge its effect. However please also note
that Wine was not designed to run arbitrary applications
directly from a Windows partition. To do so, one must install
the Windows application via Wine onto the Windows partition first.
Why are Firefox saved files empty?
or
Why does Firefox duplicate file extensions?
This is a
known bug in Firefox
which affects FAT32 and NTFS partitions.
Status: Not NTFS-3G problem. The latest Firefox releases should fix this problem.
Why does VMware crash during startup?
VMware tries to use shared writable mmap for paging files
but it can't detect that it's not always supported.
Workaround:
Set "mainMem.useNamedFile=FALSE" in the .vmx file. It will
disable paging files and VMware will work fine, often
with much better performance.
Status: The VMware bug has been fixed in all hosted products (Workstation, Fusion,
Player, ...) released after Jan 30th 2008. Alternatively use Linux kernel 2.6.26
or later.
Why is writing slow using 'dd', 'amarok' or 'encfs'?
By default they use the possible smallest, 512 or 1024 bytes, write block size
which results eight or four times more work to do for FUSE, kernel and
NTFS-3G. Since they are not optimized yet, the performance will suffer
almost one fold in the worst case. Use at least 4 kB block size (or hardware page size)
and the write speed will improve dramatically. Unfortunately bigger
than 4 kB block sizes will not help to further improve performance
on Linux because the kernel splits up such block to 4 kB chunks.
Encfs is hit by another Linux kernel deficiency. Since it uses a
non-page size internal header thus writes are not page aligned and the kernel
will split them which further halves encfs write performance.
Amarok performance may depend on the codec. Updating FLAC files are known
to be slow because the software uses small write buffers.
Can I install both ntfsprogs and NTFS-3G?
Yes, though be careful with ntfsprogs-2.0.0 because it has some reliability
issues (write failure, sparse file corruption, utility hang, etc).
You may consider to use the previous version instead until they get fixed.
Why is the driver slow?
or
Why does the driver have high CPU utilization?
Normally NTFS-3G and the other file systems
performance are very comparable but
there can be indeed many reasons for real or believed inadequate
performance in certain scenarios. All software and hardware components
must work flawlessly
together to get the best possible performance and if just one
of them fails in
some way then the overall system performance can suffer noticeably.
If NTFS-3G uses close to 100% CPU time then it's usually
a driver issue, though not always. If NTFS-3G doesn't use
close to 100% CPU time then the problem is typically not directly
related to and not caused by the NTFS-3G driver.
The most likely explanations are
- Not using at least NTFS-3G version 1.5012.
- Writing multi-GB files on a highly
internally fragmented volume.
- Some softwares are using the most inefficient
block sizes by default.
- Some softwares indeed do intensive file operations sometimes (Beagle, Amarok
collectionscanner, updatedb, Spotlight, etc). The CPU usage is not directly visible
in case of kernel file system drivers but this is not true for user
space drivers. That is, they are in the process list unlike the kernel drivers.
Higher CPU usage is absolutely normal and expected in such cases.
- The performance of Intel (and maybe some other?) SSDs (Solid State Disk) can
dramatically fall with use and they require low level reformatting.
- The NTFS block size (cluster size) is smaller than 4096 bytes.
This often happens, for instance, if FAT32 was converted to NTFS. The
driver always logs this information for block devices. You can search for the
value of the 'blksize' in the system log files under the /var/logs directory.
Typically this information can be found in the 'messages' or 'daemon.log' log
file, depending on your operating system.
- USB is running in Low- or Full-Speed mode instead of High-Speed mode.
The USB performance is reported to be exceptionally bad on Mac OS X.
Many users claimed that Firewire is much faster. Please note that NTFS-3G is
independent of the
bus type (USB, Firewire, SATA, PATA, etc), and the overall performance
can depend on the bus type and its driver quality significantly.
- DMA is turned off. Check the BIOS and use hdpram, sdparm, blktool on Linux.
- Using an embedded device or a very fast I/O subsystem (100+ MB/s, RAID).
- Hardware or bad sector errors. Check the log files under /var/log.
- Some external USB drivers often powering down during write activity.
- The UBLIO caching layer is
not integrated or enabled on Mac OS X.
- A highly sparse file is being
regularly written or updated.
- A software ignores errors or doesn't have correct error handling.
In such cases the problem often becomes visible in NTFS-3G, not in the
faulty software because NTFS-3G CPU usage isn't fully optimized yet.
- Some Nautilus releases have a
performance bug
with files larger than around 20 MB. The problem goes away if command line tools
or alternative file managers, like Thunar or Konqueror, are used.
Status:
Performance improvement is ongoing. An optimized, high-performance
version for embedded devices is available separately.
Why is writing huge files slowing down?
Either you don't use at least NTFS-3G version 1.2506 or your disk space
is highly fragmented in a close to full cluster allocation zone.
Workaround: Use a software which can compact the disk space (e.g. the free,
open source ntfsresize: shrink then enlarge after making a backup). Please note,
file level defragmentation, what the built-in Windows defragmenter is only
capable, does not help usually.
Solution: Please the status information here.
Why does chkdsk complain about free space being marked as "in use"?
Chkdsk sometimes optimizes the NTFS layout and later finds
its own bugs (e.g. when index root attributes are moved from
extent mft records to the base one). This is not a problem
with NTFS-3G.
Workaround: No need, this is a chkdsk bug. Please report it to Microsoft.
Status: Low priority work: NTFS-3G algorithms will be optimized too.
Why does chkdsk report "Cleaning up XXX unused ..."?
The typical detailed error messages are the following (XXX are numbers):
Cleaning up XXX unused index entries from index $SII of file 0x9.
Cleaning up XXX unused index entries from index $SDH of file 0x9.
Cleaning up XXX unused security descriptors.
These messages are part of an optimization process which is
completely independent of NTFS-3G. Nothing to worry about them.
Workaround: No need.
Status: Not NTFS-3G problem.
Why does chkdsk report "Deleting an index entry from index $O of file 25"?
These messages are part of a maintenance process which is
independent of NTFS-3G. Nothing to worry about them.
Workaround: No need.
Status: Not NTFS-3G problem.
Why does chkdsk report "minor inconsistency"?
The allocation and data sizes of some resident special files
in the index and inode FILE_NAME attributes may be incorrect.
Status:
The NTFS-3G 1.2310 driver has fixed this problem.
Did Apple sponsor the NTFS-3G driver development?
No.
When will be the driver ported to the kernel?
When it becomes clear that a huge, complex, feature rich and general purpose
file system can not be as reliable and well-performing in hybrid space as purely
in the kernel. At the moment there are no such strong indications. In fact,
more and more experiences show
just the opposite.
What about the NTFS patents?
No NTFS patent is known in any country.
The project welcomes all bugs reports and criticisms submitted via the
Support Forum.
Please follow the below suggestions:
- Make sure that you use the latest release
of the driver.
- Make sure that your question is not answered yet.
- Search the Support Forum.
- Check the /var/log/messages, /var/log/messages.log,
/var/log/syslog, and the /var/log/daemon.log
files for explanation.
- Send the full and exact NTFS-3G and the FUSE related messages.
- Include the kernel, FUSE and NTFS-3G version.
- Include the distribution and its version.
- Please write down step by step how the problem could be reproduced.
The NTFS-3G project has several mailing lists.
Follow the links below to subscribe.
It is also possible to post to the ntfs-3g-devel list without
a valid subscription.
Copyright © 2006-2008 - NTFS-3G Technology Ltd, All Rights Reserved.