Download ntfsprogs 1.13.1

Spread the love

Over time, different file systems have been developed, each targeting a specific task or operating system. For example, the Windows NT, 2000, XP, 2003, Vista series uses NTFS as the file system, Linux however uses other variants by default such as ext2, ext3, ReiserFS or NILFS. Many operating systems only support the file system for which they were developed. This is difficult if, for example, you are using a dual-boot system with Windows and Linux. Therefore, an NTFS driver for Linux was developed by Martin von Löwis as early as 1995. This made it possible to access files on a hard drive in NTFS format. It has been improved by several people over the years and can be found in many distributions of Linux. But with a driver for NTFS you are of course not quite there yet. The ntfsprogs package, as the name suggests, is a collection of programs that allow one to edit an NTFS disk. It allows you to create partitions, files and directories in NTFS format, resize a partition and make a full backup. Version 1.13.1 has recently been released and includes the following changes:

Version 1.13.1 – Various fixes.

  • Fix bug in ntfs_attr_pwrite() when we sometimes lose current run in the runlist. (Yura)
  • Fix build with –disable-gnome-vfs –enable-fuse-module. (Gentoo)
  • ntfscluster: identify files even if their clusters aren’t set in $Bitmap (useful to find potentially corrupted files). (Szaka)
  • mkntfs: set the physical drive and the extended boot signature to 0x80 in the Extended BPB which are needed to boot from disk. (Szaka)
  • ntfsinfo: fix two freed memory usages when dumping $SDS and index allocation entries. (Szaka)
  • libntfs: add ntfs_attr_readall() which reads the entire data from an ntfs attribute. (Szaka)
  • libntfs: add ntfs_index_root_get() which reads the index root of an attribute. (Szaka)
  • ntfsclone: ​​the –metadata option will wipe the timestamps in the index allocation attributes as well. This further decreases the compressed metadata image size by 10-25% and more importantly it eliminates non-interesting ntfscmp differences. (Szaka)
  • Change utils_parse_size() to use a base of 0 instead of 10 when calling strtoll(). This automagically allows specification of numbers in hex (and octal if anyone is crazy enough to use that) in addition to decimal numbers on the command line options to most if not all utilities. (Anton)
  • Fix comparison of $MFT and $MFTMirr to not bail out when there are unused, invalid mft records which are the same in both $MFT and $MFTMirr. Ported from kernel driver 2.1.27 release and applied both to libntfs/volume.c mount related code and to ntfsprogs/ntfsfix.c’s fixup code. (Anton)
  • Change ntfsinfo to dump the key data as well as the keys themselves when dumping the $ObjId/$O index. (Anton)
  • ntfsinfo: dump either a minimal (default) or the entire attribute header (–verbose) for all attribute types. Dump USA, USN and LSN for index records. Removed a lot of redundant code, made some formatting and stylistic corrections. (Szaka)
  • libntfs: add ntfs_str2ucs(), ntfs_freeucs(), ntfs_mft_usn_dec() and ntfs_inode_badclus_bad() functions, and convert all copy-pastes to use them. (Szaka)
  • Fix all incorrect getopt_long() return value usages. (Szaka)
  • Fix VCN size in the index.c. (Anton, Yura)
  • ntfscmp: support bad cluster list, compare full attribute headers for non-resident attributes, added manual, build and install by default. (Szaka)
  • configure.ac: set PKG_CONFIG_PATH during build time so we should find .pc files in the most typical pkgconfig directories. (Szaka)
  • Improve ntfsinfo to dump standard info completely and filename attribute completely and index entry (filename) completely and all in correct order. Essential for hunting bugs in directory operations code… (Anton)
  • configure.ac fix for Cygwin. (Yuval)
  • Fix bug with renaming directories with names in DOS and WIN32 namespaces. (Yura)
  • ntfsclone: ​​fix 64 bit destination size calculation on Mac OS X (Mike Bombich, Anton, Szaka)

Version 1.13.0 – Lots and lots and lots of fixes and enhancements.

  • 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, adaptation 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
  • 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 ntfs mount 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)

Version number 1.13.1
Operating systems Linux
Website Linux NTFS Project
Download
License type GPL
You might also like