January 24th, 2011· New: implemented fsync() and fsyncdir().
· New: implemented the ’sync’ mount option.
· New: sanity check upcase table.
· New: added a big-endian extended attribute name for attrib and times.
· New: added an extended attribute name for creation time.
· New: enable renaming of system extended attributes.
· Change: improved appending data to fragmented files.
· Change: improved rebuilding a runlist.
· Change: improved comparing filenames on big-endian CPUs.
· Fixed stat(2) for system files with no data.
· Fixed alignment on cached structures.
· Fixed Posix ACLs for big-endian CPUs.
· Fixed deleting files using ignore_case option.
· Fixed allocated size when an attribute update causes unnamed data to be expelled.
October 11th, 2010· Fixed filename encoding when standard functions are not available.
· Fixed checking mounted device status on some non-Linux platforms.
· Fixed mounting with SELinux context.
· Fixed -n and –no-mtab mount option handling, needed by automount.
· Improved consistency checks of POSIX ACLs.
· NTFS-3G manual update.
September 10th, 2010· New: Full, transparent, read-write compression support.
· New: Two new mount options: compression and nocompression (default).
· New: Introduced windows_names mount option to enforce only Windows names.
· Change: Re-enabled compression in root directory.
· Change: Reversed default for showing/hiding hidden files.
· Change: Redefined default user mapping.
· Change: Marked files whose name has a dot initial as “hidden” if option hide_dot_files is used.
· Change: Renamed option default_permissions to permissions.
· Fixed use of utimensat() with external fuse older than 2.8.
· Fixed a hang when reading a corrupt compressed file.
· Fixed a possible crash when creating a stream.
· Fixed all reported and found compressed write related bugs.
· Fixed partially overwriting sparse clusters on highly fragmented volumes.
· Fixed checking write errors in setxattr().
· Fixed processing end of partial runlist for compressed files.
· Fixed updating file compressed sizes.
· Fixed checking the device mount state.
· Fixed processing of options silent and no_def_opts.
· Fixed excessive cluster allocation within big holes.
· Fixed creating empty encrypted extended attributes.
· Fixed too permissive sanity check before compressing.
· Fixed error returns when writing compressed data.
· Fixed sanity checked when closing a compressed file.
· Fixed zeroing the end of an ex-hole cluster of compressed files.
· Improved sanity checks on security descriptors.
July 1st, 2010· Fixed build to create usermap and secaudit.
January 20th, 2010· Fix: NTFS-3G may crashed if a junction point referred to a non-ASCII file.
· Fix: Compilation errors on Mac OS X, OpenSolaris and openSUSE.
December 3rd, 2009· New: Full file ownership and permissions support. The ownership and permissions of files are interoperable with Windows and conforms to the POSIX rules.
· New: POSIX ACL support. The ACLs are an extension to ownership and permissions as defined in POSIX.
· New: Optional Windows-type inheritance of ACLs.
· New: Full extended attributes support for all namespaces: user, system, security and trusted.
· New: Junction points support. The junction points and symbolic links created by Windows are seen as symbolic links.
· New: Access is possible to NTFS internal data like Windows style archive bit and file attributes. They are mapped to extended attributes for easier access.
· New: Compression write support: sequential writing to compressed files is supported.
· New: Support copying and restoring encrypted files without decrypting them.
· New: Support getting and setting high-resolution file timestamps.
· New: Support to get, set and remove DOS filenames.
· New: Tools for managing ownership, permissions and ACLs: ntfs-3g.secaudit checks the integrity of ownership, permissions and ACL, ntfs-3g.usermap gives help to configure ownership.
· New: Implemented setchgtime() on Mac OS X.
· Fix: Improved Windows junction and symlink handling.
· Fix: Improved ACL handling.
· Fix: Unicode normalization on Mac OS X.
· Fix: Implemented true fsync() on Mac OS X
· Change: Performance optimizations. Frequently used data are cached to improve speed. Space allocation for fragmented and sparse files has been improved.
April 7th, 2009· Fix: Mount and system boot could hang if Linux kernel audit was enabled.
· Fix: Volume could be potentially corrupted or the driver crashed after a partial write or hardware error.
· Fix: The driver could crash handling highly fragmented files
February 15th, 2009· A dialog now exists for when the user tries to mount uncleanly unmounted or hibernated volumes, allowing the user to choose to force a mount without resorting to using the Terminal.
· ntfs-3g now locks (advisory) the device that it mounts with flock to decrease the probability of two processes concurrently trying to mount it.
· NTFS-3G.prefPane is now at version 0.9.7. (No big changes)
· Bug fix: Unmounting ejectable NTFS drives through Finder failed because Mac OS X claimed they were still in use.
· Improvement: When locking devices, the corresponding alternate device is now also locked (i.e. when a /dev/disk device is mounted and locked, its /dev/rdisk device is locked as well, and vice versa).
· ublio build: Performance tuning should boost performance for most users. Feedback is much appreciated.
February 12th, 2009· New: The 'recover' and 'norecover' mount options were introduced. The former option will casue the driver to recover and repair a corrupted or inconsistent NTFS volume if it's possible. The default behaviour is 'recover'.
· Fix: The driver may crashed when it tried to read a highly fragmented file or directory which was either corrupted or it was unreadable due to a hardware error. Upgrade is recommended.
· Fix: The driver incorrectly returned 'Permission denied' error message if a requested extended attribute namespace wasn't supported.
· Fix: The lack of file backup timestamp support confused some applications on OS X.
· Change: The user extended attribute namespace is supported by default on Linux.
· Change: A volume having unclean journal file is recovered and mounted by default. The 'norecover' mount option can be used to disable this behavior.
January 29th, 2009· Fix for an issue with certain applications being unable to save files to the NTFS-3G volume.
· This was caused by not having a setbkuptime implementation.
· Fixed by creating a setbkuptime stub pretending to set the backup time (there is no such thing as backup time in NTFS).
January 28th, 2009· New: Built-in, transparent UTF-8 conversion support. This solves all the problems, described here, and even more with hidden and inaccessible filenames having national characters.
· New: Support getting/setting the file creation timestamp on OS X.
· Fix: An extended attribute got corrupted if the new attribute size was smaller than the original size.
· Fix: Memory leaked if an extended attribute or alternate data stream couldn't be opened.
· Fix: Report an error if a filename can not be listed during reading a directory.
· Change: The 'locale=' mount option is not used anymore for filename characterset conversion. Instead filenames are always converted to UTF-8.
December 22nd, 2008· MacFUSE version detection code added to prevent people from using broken MacFUSE releases.
December 22nd, 2008· New: Built-in, transparent UTF-8 conversion support. This should solve all the problems, described here, and even more with hidden and inaccessible filenames having national characters.
· Fix: Report an error if a filename can not be listed during reading a directory.
· Change: The 'locale=' mount option is not used anymore for filename characterset conversion. Instead filenames are always converted to UTF-8.
December 10th, 2008· One of the utilities in the original package had accidentially been compiled for Mac OS X 10.5 only. This release is identical to the 1.5130 release except for the binary for ntfs-3g_daemon, which has been compiled with proper settings.
December 2nd, 2008· Fix: Reading a data storage with permanent or temporary physical damage, or a partial read(2) system call could result ignoring the low level hardware error and returning invalid data. Upgrade is recommended.
October 13th, 2008· Version 1.2926-RC is released unchanged as stable 1.5012.
· The NTFS-3G driver is able now for unlimited file and directory creation and removal as the result of 13 years continuous clean-room reverse engineering, documenting the different versions of NTFS on-disk formats and implementing a safely interoperable file system driver with the over 500,000 source lines Microsoft NTFS driver.
September 19th, 2008· New: Support unlimited file and directory creation. Successfully tested the creation of 54 million (54,000,000) files in a single directory, besides the other test cases.
September 19th, 2008· Fix: A corrupted directory index entry could hang the driver instead of returning "I/O error".
August 19th, 2008· Fix: The allocation size of an attribute may got corrupted if the attribute size change failed.
· Fix: An MFT record could leak on big-endian CPUs if adding a new attribute failed.
· Fix: The system log was flooded if a transparently compressed or encypted file was tried to be updated repeatedly.
· New: Solaris support.
· New: Libtool-2 support.
· Change: No external dependency on librt anymore when internal FUSE is used (default on Linux).
· Change: The default compiler is gcc.
· Change: Internal FUSE further shrank by 10%.
July 14th, 2008· Fix: A corrupted size directory or a directory over tens of million files may hang the driver. If NTFS-3G is compiled with an external FUSE library (non-default on Linux) then FUSE CVS is needed until FUSE 2.8.0 is released.
· Fix: Removing alternate data streams and extended attributes leaked memory.
· Fix: Mount could fail with some mount(8) utilities (e.g. busybox one) if the /etc/mtab file didn't exist or was on a read-only file system. This fix should solve most of the "/bin/mount: invalid option -i" mount problems. If NTFS-3G is compiled with an external FUSE library (non-default on Linux) then FUSE CVS is needed until FUSE 2.8.0 is released.
· Fix: The driver always returned "I/O errors" if the standard file descriptors were closed during mount, e.g. via some usage of udev, hotplug, etc.
· Fix: Building the driver failed if the --prefix=/ configure option was used.
· Fix: Driver compilation may failed with 'PATH_MAX undeclared' error mesage in some (cross)-compilation environments.
June 16th, 2008· fixed deletions from a sticky directory (on kernels >= 2.6.25)
· integrated into ntfs-3g-1.2531
May 30th, 2008· Fix: Mount failed with "Invalid argument" error message if the mountpoint was a symlink.
· Fix: A corrupted directory could hang the driver.
· Fix: Mount could hang if the block allocation map was corrupted.
· Fix: The driver could hang or misbehave when compressed, sparse or encrypted file attribute flags were corrupted.
· Fix: The driver could crash when both an MFT attribute offset and the allocated bytes were corrupted.
· Fix: Building the driver failed if the --exec-prefix configure option was used without --sbindir=/sbin.
· Fix: Parallel 'make install' may failed.
· New: Support building the driver in a separate directory.
· New: Added --enable-mount-helper configure option which installs /sbin/mount.ntfs-3g, so mount via mount(8) and /etc/fstab can work on Linux. The default is enabled on Linux and disabled on all other operating systems.
May 7th, 2008· Fix: In certain, rare circumstances, any area of the NTFS volume, except the NTFS boot sector, could get corrupted. The chance for this to happen is higher for close to full disk utilization and using one of the more uncommon, less than 4096 byte cluster sizes. The cluster size is logged under the /var/logs directory usually in the 'messages' or 'daemon.log' log file, as the blksize mount parameter. All stable releases have this issue since version 1.328. Upgrade is strongly recommended from all NTFS-3G releases.
· The 'local' option is now used in OS X 10.4, making hard drives appear as internal drives instead of network drives. The MacFUSE bug that made me disable this option in the first place has apparently been fixed since 1.1.x.
April 17th, 2008· Fix: the total file system depth was limited to 4095 characters by FUSE and trying to access files and directories deeper gave "No such file or directory" error. If NTFS-3G is compiled with an external FUSE library (non-default), then FUSE CVS is needed until FUSE 2.8.0 is released.
· Fix: symlink(2) failed or the size was truncated at modulo 256 if the old path was over 255 bytes.
· Fix: unprivileged mount may have been denied because supplementary groups were dropped too early as a security measure.
· Fix: unprivileged mount may have been denied if the /etc/fuse.conf file wasn't properly configured. This was redundant and the /etc/fuse.conf file is not required anymore.
· Fix: updating hard link attributes was delayed by one second which resulted softwares seeing their file sizes and timestamps incorrectly during this time interval.
· Fix: the 'noatime' mount option additionally and unconditionally was passed to FUSE.
March 24th, 2008· Fix: the driver crashed when one tried to open a non-existent file which had at least twice as long file name as the one allowed by the NTFS specification.
· Fix: Windows CHKDSK may reported minor inconsistencies because the data and allocation size of some special purpose resident unnamed $DATA attribute in the index and inode FILE_NAME attributes could be incorrect.
· Fix: unprivileged mount failed if user had rights for everything except the FUSE device file.
· Fix: the 'dev' and 'suid' mount options didn't work.
· Change: rmdir(2) returns ENOTEMPTY instead of EEXIST because the GNOME glib library and the Nautilus file browser can't handle the also standard EEXIST value which resulted an error message when for instance one tried to remove a directory containing files.
· Change: the 'dev' and 'suid' mount options are the default from now on for root mounts, similarly as other file systems behave. These options are always denied for setuid-root and unprivileged mounts.
February 25th, 2008· Fix: file and directory removal, rename and move may have been denied with an "Operation not supported" error message.
· Fix: setuid-root ntfs-3g had a local root exploit and other security problems. From now on unprivileged mounts of block devices are possible only with using the integrated FUSE library (default) which has no known security problem.
· Fix: unprivileged unmount didn't always work.
· Fix: create mount.ntfs-3g symlink always in /sbin where mount(8) needs it.
· New: added 'remove_hiberfile' mount option to be able to read/write mount hibernated volumes for recovery and troubleshooting purposes.
· Change: keep shrinking driver size.