„NTFS“ – Versionsunterschied

[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
→‎Versionskompatibilität: Fragen entfernt. Wikipedia soll Antworten liefern und keine Fragen stellen
Zeile 119:Zeile 119:


=== Versionskompatibilität ===
=== Versionskompatibilität ===
* Grundsätzlich sind alle Versionen von NTFS zu früheren Versionen abwärtskompatibel (spätere Windowsversionen haben Vollzugriff auf ältere NTFS-Versionen), aber zu späteren Versionen sind sie ohne aktualisierten Treiber nicht aufwärtskompatibel. * [[Microsoft Windows NT 4.0|Windows NT 4.0]] hat ab [[Service Pack]] 4 einen Treiber für NTFS 3.X-Partitionen.
* Grundsätzlich sind alle Versionen von NTFS zu früheren Versionen abwärtskompatibel (spätere Windowsversionen haben Vollzugriff auf ältere NTFS-Versionen), aber zu späteren Versionen sind sie ohne aktualisierten Treiber nicht aufwärtskompatibel.
* [[Microsoft Windows NT 4.0|Windows NT 4.0]] hat ab [[Service Pack]] 4 einen Treiber für NTFS 3.X-Partitionen.


== Standard-Clustergrößen ==
== Standard-Clustergrößen ==

Version vom 7. September 2008, 22:09 Uhr

Vorlage:Infobox Filesystem

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 u. a. einen gezielten Zugriffsschutz auf Dateiebene durch vollständige Unterstützung von Zugriffskontrolllisten.

Aufbau

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.

NTFS-Versionen

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:

Vorteile ab NTFS 1.X (gegenüber FAT)

  • effiziente Speichernutzung bei Partitionen über 400 MB
  • Metadaten-Journaling: automatische Fehlerkorrektur des Dateisystems (aber nicht der Daten)
  • lange Dateinamen: Dateinamen können im Gegensatz zu FAT16 auch nativ (ohne VFAT) bis zu 256 Zeichen lang sein und aus fast beliebigen Unicode-Zeichen bestehen, wobei allerdings zwischen Groß- und Kleinbuchstaben nicht unterschieden wird.
  • eine maximale Länge des kompletten Pfadnamens von 32.767 Zeichen (dank Unicode), einige Backupprogramme funktionieren jedoch nur bis zu 256 Zeichen.
  • Flexible Rechteverwaltung durch Verwendung von ACLs
  • Mechanismen zur fehlertoleranten Datenspeicherung, z. B. „Festplattenspiegelung“
  • Maximale Dateigröße von theoretisch 16 Exbibyte
  • Verwendung von Datenträgern mit dynamischer Größe (ohne feste Partitionstabelle)
  • schnelle und effiziente Speicherung von kleinen Dateien (ab Windows NT 3.51 werden standardmäßig 4 KiB große Cluster verwendet)
  • Speicherung von alternativen Datenströmen
  • transparente Komprimierung von Dateien (wird, obwohl von Beginn an entwickelt, erst in Version NT 3.51 implementiert und nur bei unverschlüsselten Dateien und Clustergrößen bis 4 KiB unterstützt)

NTFS 2.X

  • Datenverschlüsselung (nur auf Dateiebene)

NTFS 3.X

  • Transparente Dateiverschlüsselung mit EFS (nicht in der XP Home Edition und nur bei unkomprimierten Daten)
  • Kontingente (auch: Disk Quota), um den verwendbaren Festplattenplatz für einzelne Nutzer zu beschränken,
  • Analysepunkte (engl. Reparse Point) zur Verknüpfung von Aktionen/Funktionen mit Dateien oder Verzeichnissen,
  • Harte Links: Jede Datei kann von bis zu 1023 Dateinamen referenziert werden (eine Datei, viele Namen),
  • für Dateien mit vielen Leerinhalten werden, wenn sie als Datei mit geringer Datendichte gekennzeichnet sind, nur tatäschlich geschriebene Abschnitte gespeichert.

Analysepunkte

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 funktionsspeziefischen 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:

  • Bereitstellungspunkte, um logische Datenträger in andere Verzeichnisse einzuhängen.
  • Junction Points, um Verzeichnisse in andere Verzeichnisse einzuhängen.
  • Symbolische Verknüpfungen, um Dateien und Verzeichnisse in andere Verzeichnisse einzuhängen (siehe Symlinks bei Unix/Linux). Diese wurden mit Vista eingeführt und unterstützen anders als die zuvor genannten Analysepunkte auch Verweise zu nicht lokalen Objekten.

NTFS 5.X

Sparse File-Unterstützung

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.

Ist beispielsweise ein CD-ROM-Medium mit einer Kapazität von 650 MB nur zur Hälfte belegt, wird beim Speichern einer Abbilddatei (engl. image) dieser CD-ROM unter NTFS 5 eine Kapazität von 650 MB benötigt und nicht wie angenommen nur 325 MB.

Transactional NTFS (TxF)

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:

  • Atomare Operationen auf Einzeldateien:
Ein Beispiel hierfür ist das Speichern einer Datei durch eine Anwendung: kam es bislang während des Schreibvorgangs zu einem Programm- oder Rechnerabsturz, wurde unter früheren NTFS-Versionen nur ein Teil der Daten geschrieben, was zu einer unvollständigen Datei führen konnte. Dies war insbesondere problematisch, wenn eine frühere Dateiversion ersetzt bzw. überschrieben werden sollte - Datenverlust war die Folge.
  • Atomare Operationen, die mehrere Dateien umfassen:
Wenn eine Applikation an mehreren Dateien zeitgleich Veränderungen durchführen muss, können allen notwendigen Dateioperationen in einer Transaktion zusammengefasst und eine Dateninkonsistenz im Falle eines Fehlers vermieden werden.
  • Atomare Operationen über Rechnergrenzen hinweg:
Die Durchführung gleicher Operationen auf mehreren Rechnern ist eine übliche administrative Aufgabe; beispielsweise in einem Rechnerverbund eines Unternehmens. Transactional NTFS interagiert mit dem Distributed Transaction Coordinator (DTC), und stellt sicher, dass Änderungen erfolgreich auf allen beteiligten Rechnern, die Transactional NTFS unterstützen, durchgeführt werden konnte (z. B. die zentrale Synchronisation mehrerer Arbeitsplatzrechner).

Neben Windows Vista wird auch das Microsoft Server-Betriebssystem Windows Server 2008 NTFS 5 und somit Transaktionen unterstützen.

Nachteile

  • Proprietäres Dateisystem, d. h. die genaue Funktionsweise ist ein Betriebsgeheimnis von Microsoft. (Mittlerweile wurde NTFS größtenteils vom linux-ntfs-Projekt dokumentiert.)
  • Ohne Verwendung von Treibern Dritter auf die Betriebssysteme der Windows NT-Serie beschränkt.
  • Das Bestimmen des tatsächlich belegten Plattenplatzes einer Datei oder eines Ordners ist mit Windows Bordmitteln schwierig, da Alternative Datenströme, Sparse Files, Hardlinks, Pfade mit mehr als 255 Zeichen, etc. bei der Berechnung nicht berücksichtigt werden.

Versionskompatibilität

  • Grundsätzlich sind alle Versionen von NTFS zu früheren Versionen abwärtskompatibel (spätere Windowsversionen haben Vollzugriff auf ältere NTFS-Versionen), aber zu späteren Versionen sind sie ohne aktualisierten Treiber nicht aufwärtskompatibel.
  • Windows NT 4.0 hat ab Service Pack 4 einen Treiber für NTFS 3.X-Partitionen.

Standard-Clustergrößen

Laufwerksgröße Clustergröße Sektoren
512 Megabyte oder weniger512 Bytes1
513 Megabyte - 1024 MB1024 Bytes2
1025 Megabyte - 2048 MB2048 Bytes4
2049 Megabyte und mehr4096 Bytes8

Zugriff mit Linux

Kernel-Treiber

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 von NTFS-3G übernommen. Somit unterstützt der Treiber jetzt vollständigen Lese- und Schreibzugriff. Der Treiber übertrifft laut eigenen Angaben die Performance von NTFS-3G und ermöglicht außerdem Zugriff auf verschlüsselte Dateien.[2]

User-Mode-Treiber

Der Entwicklung des NTFS-Kernel-Treibers voraus ist der User-Mode-Treiber, mit dem man Dateien und Verzeichnisse sowohl erstellen als auch löschen kann. 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 vorläufigen Namen NTFS-3G unterstützt nun 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 NTFS-3G dürfte der Einsatz von Captive nur noch in wenigen Spezialfällen erforderlich sein.

Paragon NTFS-Treiber

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.

Zugriff mit DOS / Windows 95/98/ME

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.

Zugriff mit Mac OS X

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.

weiterführende Literatur

Software

Quellen

  1. Entwickelt von Anton Altapamarkov [1], Universität Cambridge, und Richard Russon
  2. ntfsprogs 2.0.0 release notes