| NTFS | |
|---|---|
| Hersteller | Microsoft |
| Vollständige Bezeichnung | New Technology File System |
| Erstveröffentlichung | Juli 1993 (Windows NT 3.1) |
| Partitionskennung | 0x07 (MBR) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT) |
| Technische Umsetzung | |
| Verzeichnisse | B+-Baum |
| Dateien | Bitmap/Extents |
| Defektblockliste | Bitmap/Extents |
| Maximalwerte | |
| Größe einer Datei | 16 TB in der aktuellen Umsetzung
(16 EB konzeptbedingt) |
| Anzahl aller Dateien | 4.294.967.295 (232-1) |
| Länge des Dateinamens | 255 Zeichen |
| Größe des Dateisystems | 256 TB in der aktuellen Umsetzung (16 EB konzeptbedingt) |
| Erlaubte Zeichen im Dateinamen | alle Zeichen außer '\0' (NUL) und '/'
Windows verbietet außerdem die folgenden Zeichen \ : * ? " < > und den senkrechten Strich |
| Eigenschaften | |
| Datumsangaben einer Datei | Erzeugung, Änderung, Änderung nach POSIX, letzter Zugriff |
| Datumsbereich | 1. Januar 1601 - 28. Mai 60056 |
| Forks | Unterstützt |
| Dateiattribute | Schreibgeschützt, Versteckt, System-Datei, Archiv |
| Dateirechte-Verwaltung | ACL |
| Transparente Komprimierung | auf Dateiebene, LZ77 (ab Windows NT 3.51) |
| Transparente Verschlüsselung | auf Dateiebene DESX (ab Windows 2000), Triple DES (ab Windows XP), AES (ab Windows XP Service Pack 1, Windows Server 2003) |
| Unterstützende Betriebssysteme | nativ: Windows NT basierte Betriebssysteme (Windows NT 3.1 bis Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista) andere Betriebssysteme: über Fremdtreiber (Linux, MS DOS, Windows 9x, Mac OS X), Einschränkungen: siehe nachstehende Angaben |
NTFS steht für New Technology File System und ist das Dateisystem von Windows NT, einschließlich seiner Nachfolger Windows 2000, Windows XP, Windows Server 2003, Windows Vista und Windows Server 2008. NTFS erbte viele Konzepte von IBMs Dateisystem HPFS, das in dem zusammen mit Microsoft entwickelten Betriebssystem OS/2 verwendet wurde.
Im Vergleich zu FAT bietet NTFS unter anderem einen gezielten Zugriffsschutz auf Dateiebene durch vollständige Unterstützung von Zugriffskontrolllisten.
Inhaltsverzeichnis |
Aus Sicht des Dateisystems ist alles Teil einer Datei, auch die Informationen des Systems. Die Hauptdatei ist die Master File Table (MFT). In dieser Datei befinden sich die Einträge, welche Blöcke zu welcher Datei gehören, die Zugriffsberechtigungen und die Attribute. Jede Eigenschaft einer Datei ist unter NTFS ein Attribut, auch der eigentliche Dateiinhalt.
Sehr kleine Dateien und Verzeichnisse werden in der MFT direkt abgespeichert. Größere Dateien werden dann als Attribut in einem Datenlauf gespeichert.
Beim Formatieren der Festplatte wird für die MFT ein fester Platz reserviert, der nicht von anderen Dateien belegt werden kann. Wenn dieser voll ist, beginnt das Dateisystem freien Speicher vom Datenträger zu benutzen, wodurch es zu einer Fragmentierung der MFT kommen kann. Standardmäßig wird ein reservierter Bereich von 12,5 % der Partitionsgröße angenommen.
Beim Speichern von Metadaten wird ein Journal geführt, das bedeutet, dass eine geplante Aktion zuerst in das Journal geschrieben wird. Dann wird der eigentliche Schreibzugriff auf die Daten ausgeführt und abschließend wird das Journal aktualisiert. Wenn ein Schreibzugriff nicht vollständig beendet wird, zum Beispiel wegen eines Absturzes, muss das Dateisystem nur die Änderungen im Journal zurücknehmen und befindet sich anschließend wieder in einem konsistenten Zustand.
In seltenen Fällen wird fälschlicherweise die NTFS-Version mit der Version des Betriebssystems gleichgesetzt. Die folgende Liste spiegelt die korrekte Zuordnung zwischen NTFS- und Windows-Version wider:
Analysepunkte stellen eine flexible Erweiterung für das Dateisystem dar, indem es Dateisystemeinträge mit Funktionen verknüpft. Diese können auf vielfältige Art verwendet und auch in zukünftigen Versionen erweitert werden. Ein Dateisystemtreiber, der eine bestimmte Art Analysepunkt nicht kennt, führt diesen nicht aus. Beim Zugriff auf einen Analysepunkt werden die funktionsspezifischen Analysedaten dynamisch durch die entsprechende Funktion ausgewertet (daher "Analyse"). Dies impliziert, dass eine solche Analyse auch fehlschlagen kann und ein Zugriff auf die durch den Analysepunkt bereit gestellten Daten (möglicherweise durch aktuelle, vorübergehende Umstände) nicht möglich ist.
Folgende Funktionen werden derzeit von NTFS unterstützt:
Die bereits in früheren NTFS-Versionen eingeführte Unterstützung so genannter „sparsamer Dateien“ (engl. sparse files), wurde mit der Einführung von Windows Vista und NTFS 5 verändert. Durch einen Fehler in der Implementierung werden Dateien nun immer in der vollen Größe angelegt und nicht in der Größe, den die tatsächlichen Nutzdaten auf dem Datenträger beanspruchen würden.
Mit der Einführung von Windows Vista wurde das NTFS-Dateisystem um das Konzept atomarer Operationen erweitert, so genannten Transaktionen. Dieses transaktionsbasierte NTFS (engl. Transactional NTFS; kurz: TxF) ermöglicht es Anwendungen, Dateioperationen atomar auszuführen. Veränderungen am Dateisystem werden also nur dann ausgeführt, wenn die komplette Transaktion erfolgreich durchgeführt werden konnte. Zu einer Transaktion kann dabei eine Einzeloperation oder eine Abfolge von Dateioperationen gehören (beispielsweise das Erzeugen, Löschen oder Umbenennen einer oder mehrerer Dateien bzw. Verzeichnisse).
Transactional NTFS wurde auf Basis des ebenfalls mit Windows Vista eingeführten Kernel Transaction Manager (KTM) implementiert, der Transaktionen auf Kernel-Ebene ermöglicht. Es erweitert die bereits in vorigen NTFS-Versionen enthaltene Journal-Funktionalität, die sich auf die Integrität der Strukturen des Dateisystems beschränkt, um folgenden Möglichkeiten:
Neben Windows Vista wird auch das Microsoft Server-Betriebssystem Windows Server 2008 NTFS 5 und somit Transaktionen unterstützen.
| Laufwerksgröße | Clustergröße | Sektoren |
| 512 Megabyte oder weniger | 512 Bytes | 1 |
| 513 Megabyte - 1024 MB | 1024 Bytes | 2 |
| 1025 Megabyte - 2048 MB | 2048 Bytes | 4 |
| 2049 Megabyte und mehr | 4096 Bytes | 8 |
Der Linux-Kernel kann seit Version 2.2.0 NTFS-Laufwerke mounten, allerdings ohne Schreibunterstützung. Im Linux-Kernel ab Version 2.4 ist ein NTFS-Treiber enthalten, der auch schreiben, dabei allerdings ernsthafte Schäden am Dateisystem anrichten kann. Für die Kernel-Version 2.6 wurde der NTFS-Treiber komplett neu geschrieben[1] und bietet eine überarbeitete Unterstützung für Schreibzugriffe.
Ab Kernel 2.6.7 konnten nur schon existierende und nicht schreibgeschützte Dateien sicher geändert oder überschrieben werden, wenn die Dateigröße sich dabei nicht ändert. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wird noch nicht unterstützt.
Seit Kernel 2.6.12 wird die NTFS-Schreibunterstützung nicht mehr als experimentell bezeichnet.
Ab Kernel 2.6.15 ist auch das Verändern von Dateien mit Änderung der Dateigröße möglich. Anlegen und Löschen von Dateien werden vom NTFS-Kerneltreiber noch nicht unterstützt.
Mit der am 29. September 2007 erschienenen Version 2.0.0 des Kernel-Treibers wurden einige Teile vom User-Mode-Treiber NTFS-3G übernommen. Somit unterstützt der Treiber jetzt vollständigen Lese- und Schreibzugriff, übertrifft laut eigenen Angaben die Leistung von NTFS-3G und ermöglicht außerdem Lesezugriff auf verschlüsselte Dateien[2].
Der Entwicklung des NTFS-Kernel-Treibers ging der User-Mode-Treiber voraus. Mit diesem konnte man bereits Dateien und Verzeichnisse sowohl erstellen als auch löschen, als dies im Kernel-Treiber noch nicht funktionierte. Manche Schreiboperationen können zwar fehlschlagen, jedoch kommt es dabei zu keiner Inkonsistenz des Dateisystems. Dieser Treiber basiert auf FUSE und ist somit auch für andere Betriebssysteme mit FUSE-Unterstützung verfügbar.
Eine neue Version des User-Mode-Treibers unter dem Namen NTFS-3G unterstützt vollständige Schreib- und Lesezugriffe. Ausnahmen bilden der Zugriff auf verschlüsselte Dateien, das Erstellen komprimierter Dateien sowie das Verändern von Zugriffs- und Eigentumsrechten.
Die älteste Lösung mit voller Schreibunterstützung ist Captive von Jan Kratochvil, das ebenfalls im Userspace läuft und zum Einbinden der Dateisysteme FUSE nutzt. Captive verwendet, anders als die anderen Lösungen, den Originaltreiber ntfs.sys aus Windows XP, der mit einer Kompatibilitätsschicht umgeben wird. Damit wird eine vollständige Schreibunterstützung erreicht. Der Nachteil dieser Lösung liegt darin, dass sie erhebliche Ressourcen benötigt und verhältnismäßig langsam ist. Zum Einsatz ist darüber hinaus eine gültige Windows-Lizenz erforderlich. Aufgrund der weit fortgeschrittenen Entwicklung von Kernel-Treiber und NTFS-3G dürfte der Einsatz von Captive nur noch in wenigen Spezialfällen erforderlich sein.
Weiterhin gibt es ein kommerzielles, proprietäres Produkt NTFS for Linux 3 von Paragon, das im Linux-Magazin 11/04 vorgestellt wurde. Es hatte jedoch in der damaligen Version noch einige Fehler und konnte unter Umständen das Dateisystem beschädigen. Die aktuelle Version scheint diese Fehler nicht mehr zu haben.
Für DOS-Systeme (z. B. Bootdisketten) kann man beschränkten NTFS-Zugriff erlangen. Die Firma Sysinternals bot Treiber namens NTFSDOS an, der in der kostenlosen Version allerdings nur lesen konnte. Sysinternals wurde im Juli 2006 von Microsoft übernommen. Microsoft hat den NTFSDOS-Treiber daraufhin vom Markt genommen. Das Unternehmen Avira (früher: Datapol) stellt einen kostenlosen NTFS-Treiber für DOS mit Schreibzugriff bereit.
Ebenfalls von Sysinternals steht ein Treiber bereit, der lesenden NTFS-Zugriff unter Windows 95 und 98 erlaubt.
Mac OS X bietet standardmäßig nur lesenden NTFS-Zugriff. Der Lese-Schreibzugriff kann auch mit dem Tool NTFS-3G realisiert werden. Zudem bietet Paragon mit NTFS for Mac® OS X eine Lösung an.