The long awaited release. Lots of enhancements and fixes across the
board. See the changelog for details but a few notable changes are that
mkntfs now creates NTFS 3.1 (Windows XP) volumes by default and that
ntfsmount can deal with symbolic links and device files.
You can download rpms and source code of the 1.13.0 release:
http://www.linux-ntfs.org/content/view/19/37/
Or get the changes from Sourceforge CVS, for details see:
http://sourceforge.net/cvs/?group_id=13956
ChangeLog since 1.12.1 release:
- Temporarily disable use of the legal ansi character checking in
libntfs/unistr.c::ntfs_names_collate() pending a proper fix at some
point. (Anton)
- Rewrite gcc version detection logic using the -dumpversion option.
Tested on various OS and architectures and gcc versions from 2.95 to
4.0.2 with some weird ones like 3.5-blah thrown in, too. (Anton)
- Fix bogus le16_to_cpu() which should be le32_to_cpu() when accessing
the attribute list entry attribute type in some places in
libntfs/attrib.c. (Anton)
- Fix silly bug introduced in 1.12.0 which breaks ntfsfix (and others
possibly) when calling ntfs_attr_lookup() with AT_UNNAMED name and
no ntfs inode in the search context. (Anton)
- Fix compilation on OSX in ntfsresize.c, ntfsclone.c, and ntfscmp.c
where stderr = stdout is not legal (but happens to work on Linux) to
do portable low-level file descriptor mangling. (Anton)
- Add test/runlist-data to EXTRA_DIST so it gets included in the
distribution otherwise make test fails on released sources. Solution
is not perfect as it also adds the test/runlist-data/CVS directory
but it will do at least for me. (Anton)
- Fix compilation and warnings in ntfsdecrypt.c on OSX/gcc4.0.1. The
compilation failure was because we use strnlen() which is gnu
specific and not present on my current version of OSX so ntfsdecrypt
now provides own version if it is not present on system. (Anton)
- Fix endianness bug (le16 instead of le32 when accessing mft record
bytes_in_use) in volume.c::ntfs_volume_write_flags() and
ntfsfix.c::OLD_ntfs_volume_set_flags(). (Anton)
- Fix endianness bugs in ntfsinfo. (Anton)
- Fix endianness bug in libntfs/index.c. (Anton)
- ntfsresize: check and report bad sectors before cluster allocation
check because chkdsk doesn't fix $Bitmap with bad sectors. (Szaka)
- $EA can be resident and non-resident. Fix libntfs/attrib.c::
ntfs_attr_can_be_resident() apropriately. (Anton)
- mkntfs: optionally create NTFS version 3.0 (W2K) or 3.1 (XP, W2K3,
Vista). (Implementation by Erik Sornes, adaption by Szaka)
- ntfsmount: Add 'streams_interface=' option to select named data
streams access interface. Currently supported interfaces are 'none',
'windows' and 'xattr'. (Yura)
- ntfscat can display named attributes, streams too. (Szaka)
- Remove Dputs(), Dprintf(), Dperror(), ntfs_debug(), ntfs_error() and
Sprintf(). Forward callers to ntfs_log_*(). (Yuval)
- Add some debugging to ntfsdecrypt.c to allow printing of the private
key after it is decrypted (this is ifdeffed out by default). (Anton)
- fflush() ntfs_log_ streams. (Christophe)
- Working with regular files no longer needs the --force option, except
for mkntfs. (Szaka)
- Fix ntfs_non_resident_attr_expand() bug, that occurred if we enlarge
sparse or compressed file, but do not need to allocate new clusters
to perform this. (Yura)
- Fix ntfsdecrypt endianness bugs thus it now works on OSX running on
a dual G5! (Anton)
- Match function parameters names between .h and .c files. (Yuval)
- Fix comment formats. (Yuval)
- ntfsinfo and ntfsls follow the convention how other utilities read
the device argument: no -d or --device option is needed. (Szaka)
- ntfsinfo: dump index attribute types and keys. (Szaka)
- mkntfs: don't fill the last $MFT cluster with empty MFT records if
the cluster size <= 16 kB. This is needed to conform to Windows'
format behavior. (Szaka)
- Add @flags field to struct ntfs_inode. Remove NIno{Sparse,Compressed,
Encrypted}, update all users to use @(ntfs_inode)->flags. (Yura)
- Make @(ntfs_inode)->data_size and @(ntfs_inode)->allocated_size to
always contain valid value. (Yura)
- Always set correct file size and attributes in ntfs_link(). (Yura)
- Add info about Interix special files (symbolic links, character and
block devices, FIFOs and sockets) to layout.h. Teach ntfsmount to
handle them. (Yura)
- Fix allocated data size for resident attributes. (Yura)
- ntfsclone: check available free space on the destination before
starting to clone, image or restore. (Szaka)
- Change @type parameter for ntfs_create() to be dev_t rather than
internal NTFS_DT_* constants. (Yura)
- New APIs (dir.[ch]):
ntfs_create_device() for Interix block and character devices
creation.
ntfs_crate_symlink() for Interix symbolic links creation. (Yura)
- Teach ntfs_create() to create Interix FIFOs and sockets. (Yura)
- Fix the -u option in ntfsundelete. Instead of a confusing optional
parameter, there's a new option -i with a required parameter. (Rich)
- Make ntfsinfo report the MFT record flags properly, this includes
the less encountered flags, and reporting the in_use flag instead of
inverting it to unused. (Yuval)
- mkntfs: fix segfault when volume had more than 2^31 clusters. (Szaka)
- Automatically update access and change time in ntfs_attr_p{read,write}
and ntfs_attr_truncate. (Yura)
- Add support of MS_NOATIME flag to ntfs_mount(). (Yura)
- ntfsclone: --metadata also wipes out the timestamps in the $I30 and
in the /$Extend/$Quota:$Q index root attributes. (Szaka)
- ntfsmount: Add FreeBSD support. (Yura)
- ntfsmount: Fix bug with moving non-empty directories. (Yura)
- ntfsinfo: dump $Secure:$SDS in verbose mode. (Szaka)
- ntfsinfo: fix off-by-one in ACL dumping, one ACE was missed. (Szaka)
- ntfsmount: Rename "succeed_chmod" -> "silent". Do not return error
on chown too. (Yura)
- Fix stupid bug in libntfs/bitmap.c::ntfs_bitmap_set_bits_in_run()
which caused bits to not be cleared or set if the first bit in the
run was not a multiple of eight. (Anton)
- Change volume mounting (actually device opening) to happen with
O_EXCL bit set, but only for r/w opening so at least on Linux no one
can change the device block size under our feet. (Anton)
- Change volume mounting and mkntfs to set the device block size to the
sector size using BLKBSZSET ioctl (Linux only). This should be
optimal for performance and should fixes the bug of not being able to
create the backup boot sector if the number of sectors on the device
is odd, the sector size is 512 bytes, and the kernel is 2.4. (Anton)
- Enforce cluster size, mft record size, and index record size to be at
least equal to the sector size and verify they are still valid and in
particular display a warning message if the volume will not be
mountable by the kernel driver (it requires mft record size and index
record size to be below or equal to the system page size which we
determine using sysconf()). (Anton)
- Fix tons of big-endian bugs in mkntfs. (Anton)
- ntfsresize, ntfsclone: always use MS_NOATIME. (Szaka)
- Implement simple syslog logging handler (need more work), teach
ntfsmount to use it. (Yura)
- Fix a lot of bugs in attribute resizing code. (Yura)
- Deal with missing syslog function by making code conditional on
presence of syslog.h header file (DOS/djgpp). (Christophe)
- Avoid clash with existing constants (OSX). (Christophe)
- Cope with attribute list attribute having invalid flags. Windows
copes with this and even chkdsk does not detect or fix this so we
have to cope with it, too. Thanks to a Pawel for reporting the
problem. (Anton)
- Fix compilation on FreeBSD. (Christophe)
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/
|