How-To Guides

WTF is NTFS?

In NTFS, everything that has anything to do with a file (file name, creation date, access permissions and even contents) is stored as metadata. This elegant, albeit abstract, approach allowed easy addition of filesystem features during the course of Windows NT’s development – an interesting example is the addition of fields for indexing used by the Active Directory software. File names are stored in Unicode (encoded as UTF-16, although limited to the Basic Multilingual Plane in early versions before Windows 2000). The downside of this approach is that it can be difficult to recover from corruption of a disk.

Internally, NTFS uses B+ trees to index file system data. Although complex to implement, this allows faster access times in some cases. A file system journal is used in order to guarantee the integrity of the file system itself (but not of each individual file). Systems using NTFS are known to have improved reliability compared to FAT file systems.

Details on the implementation’s internals are closed, so third-party vendors have a difficult time providing tools to handle NTFS.

NTFS Partitions can be read by Linux since Version 2.2.0. Linux 2.6 contains a new driver written by Anton Altaparmakov (Cambridge University) and Richard Russon. It offers limited write support. At this time (January 2006) files and directories can be created, overwritten, renamed, deleted, truncated, and expanded with limited success. Due to the complexity of the internal NTFS structures, both the built-in 2.6.14 kernel driver and the FUSE driver will stop writing to the volume when it detects too many changes to be safe, thus it should not corrupt the volume. Full write support is available using Paragon[1]’s NTFS for Linux 3 driver, although criticised for leaving many errors on the volume when mounted read-write. Alternatively the Windows driver ntfs.sys can be used with Captive NTFS.

Mac OS X versions 10.3 and later offer read-only NTFS support.

The Master File Table (MFT) essentially contains metadata about every file and directory on an NTFS file system. It includes parameters such as location, size, and permissions. It is used to aid in minimizing disk fragmentation.

Pages ( 2 of 5 ): « Previous1 2 345Next »

Related posts