„NTFS“ – Versionsunterschied

[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Zeile 129:Zeile 129:
|}
|}


; Dateinamen: Dateinamen sind auf 255 [[UTF-16]] Zeichen beschränkt. Bestimmte Namen sind reserviert und können nur im Root-Verzeichnis eines Laufwerkes vergeben werden. Diese sind: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (Punkt), $Bitmap, $Boot, $BadClus, $Secure, $Upcase und $Extend;.<ref name="How NTFS Works">[http://technet2.microsoft.com/windowsserver/en/library/8cc5891d-bf8e-4164-862d-dac5418c59481033.mspx How NTFS Works]</ref> Pfade sind auf circa 32.767 UTF-16 Zeichen beschränkt <ref>http://msdn.microsoft.com/en-us/library/aa365247%28v=VS.85%29.aspx#maxpath MSDN : ''Naming Files, Paths, and Namespaces''</ref>, mit einigen API-Funktionen sogar nur auf 260 Zeichen <ref>http://msdn.microsoft.com/en-us/library/cc249520%28v=prot.10%29.aspx MSDN : ''MAX_PATH''</ref>
; Dateinamen: Dateinamen sind auf 255 [[UTF-16]] Zeichen beschränkt. Bestimmte Namen sind reserviert und können nur im Root-Verzeichnis eines Laufwerkes vergeben werden. Diese sind: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (Punkt), $Bitmap, $Boot, $BadClus, $Secure, $Upcase und $Extend <ref name="How NTFS Works">[http://technet2.microsoft.com/windowsserver/en/library/8cc5891d-bf8e-4164-862d-dac5418c59481033.mspx How NTFS Works]</ref>. Pfade sind auf circa 32.767 UTF-16 Zeichen beschränkt <ref>[http://msdn.microsoft.com/en-us/library/aa365247%28v=VS.85%29.aspx#maxpath MSDN : ''Naming Files, Paths, and Namespaces'']</ref>, mit einigen API-Funktionen sogar nur auf 260 Zeichen <ref>[http://msdn.microsoft.com/en-us/library/cc249520%28v=prot.10%29.aspx MSDN : ''MAX_PATH'']</ref>


; Maximale Laufwerksgrößen: Theoretisch ist die maximale Laufwerksgröße von NTFS 2<sup>64</sup>−1 Cluster. In der Praxis wird sie aber vom Betriebssystem eingeschränkt. Unter Windows XP Professional liegt sie bei 2<sup>32</sup>−1 Cluster, was beispielsweise bei Verwendung von 64 KiB pro Cluster einer maximalen Laufwerksgröße von 256 [[Tebibyte|TiB]] weniger 64 [[KiB]] entspricht (unter Verwendung der Standardclustergröße von 4 KiB, läge das Maximum bei 16 TiB minus 4 KiB. Nachdem aber der Master Boot Record (MBR) nur Partitionen bis 2 TiB zulässt, müssen für mehr als 2 TiB dynamische oder [[GUID Partition Table|GPT]] Volumen benutzt werden. Das Booten von so einem Volumen benötigt bei Microsoft Windows allerdings ein System mit [[Extensible Firmware Interface|EFI]] und 64-bit.<ref>http://www.rodsbooks.com/gdisk/booting.html</ref><ref name="WwFS" />
; Maximale Laufwerksgrößen: Theoretisch ist die maximale Laufwerksgröße von NTFS 2<sup>64</sup>−1 Cluster. In der Praxis wird sie aber vom Betriebssystem eingeschränkt. Unter Windows XP Professional liegt sie bei 2<sup>32</sup>−1 Cluster, was beispielsweise bei Verwendung von 64 KiB pro Cluster einer maximalen Laufwerksgröße von 256 [[Tebibyte|TiB]] weniger 64 [[KiB]] entspricht (unter Verwendung der Standardclustergröße von 4 KiB, läge das Maximum bei 16 TiB minus 4 KiB. Nachdem aber der Master Boot Record (MBR) nur Partitionen bis 2 TiB zulässt, müssen für mehr als 2 TiB dynamische oder [[GUID Partition Table|GPT]] Volumen benutzt werden. Das Booten von so einem Volumen benötigt bei Microsoft Windows allerdings ein System mit [[Extensible Firmware Interface|EFI]] und 64-bit.<ref>http://www.rodsbooks.com/gdisk/booting.html</ref><ref name="WwFS" />

Version vom 15. Juli 2011, 08:45 Uhr

NTFS
HerstellerMicrosoft
Vollständige BezeichnungNew Technology File System
ErstveröffentlichungJuli 1993 (Windows NT 3.1)
Partitionskennung0x07 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Technische Umsetzung
VerzeichnisseB+-Baum
DateienBitmap/Extents
DefektblocklisteBitmap/Extents
Maximalwerte
Größe einer Datei16 TiB in der aktuellen Umsetzung (16 EiB konzeptbedingt) = ca. 16 TB
Anzahl aller Dateien4.294.967.295 (232-1)
Länge des Dateinamens255 Zeichen
Größe des Dateisystems256 TiB in der aktuellen Umsetzung (16 EiB konzeptbedingt)
Erlaubte Zeichen im Dateinamenalle Zeichen außer '\0' (NUL) und '/', Windows verbietet außerdem die folgenden Zeichen \ : * ? " < > |
Eigenschaften
Datumsangaben einer DateiErzeugung, Änderung, Änderung nach POSIX, letzter Zugriff
Datumsbereich1. Januar 1601 bis 28. Mai 60056
Forksunterstützt
Dateiattributeschreibgeschützt, versteckt, System-Datei, Archiv
Dateirechte-VerwaltungACL
Transparente Komprimierungauf Dateiebene, LZ77 (ab Windows NT 3.51)
Transparente Verschlüsselungauf Dateiebene
DESX (ab Windows 2000),
Triple DES (ab Windows XP),
AES (ab Windows XP Service Pack 1, Windows Server 2003)
Unterstützende Betriebssystemenativ:
Windows NT-basierte Betriebssysteme (Windows NT 3.1 bis Windows 7)
andere Betriebssysteme:
über Fremdtreiber (Linux, MS DOS, Windows 9x, Mac OS X),
Einschränkungen: siehe nachstehende Angaben

Microsoft NTFS ist ein proprietäres Dateisystem von Microsoft für das Betriebssystem Microsoft Windows NT, einschließlich dessen Nachfolgern 2000, XP, Server 2003, Vista, Server 2008, Windows 7 und Server 2008 R2. Die Abkürzung steht für New Technology File System.

Im Vergleich zum Dateisystem FAT bietet NTFS unter anderem einen gezielten Zugriffsschutz auf Dateiebene sowie größere Datensicherheit durch Journaling. Allerdings ist keine so breite Kompatibilität gegeben wie bei FAT. Ein weiterer Vorteil von NTFS ist, dass die Dateigröße nicht wie bei FAT auf 4 GiB beschränkt ist. Größere Dateien werden beispielsweise beim Erstellen von DVD-Images benötigt.

Aufbau – MFT

NTFS erbte viele Konzepte des Dateisystems HPFS von IBM, das in dem anfangs zusammen mit Microsoft entwickelten Betriebssystem OS/2 verwendet wurde.

Aus Sicht des Dateisystems – darin folgt NTFS dem Dateisystemkonzept von Unix – ist alles Teil einer Datei, auch die Informationen des Systems. Die Hauptdatei ist die Master File Table kurz MFT. In dieser Datei befinden sich die Einträge, welche Blöcke zu welcher Datei gehören, die Zugriffsberechtigungen und die Attribute. Zu den Eigenschaften (Attributen) einer Datei gehören unter NTFS Dateigröße, Datum, Dateierstellung, Datum der letzten Änderung, Freigabe, Dateityp und 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

Die folgende Liste spiegelt die Zuordnung zwischen NTFS- und Windows-Version wider:

Versionskompatibilität

  • Einzige Aufwärtskompatibilität besteht für Version 3.0 zu 3.1, da die Datenträgerformate identisch sind. Somit kann selbst NT 4.0 noch auf Windows-XP-Partitionen zugreifen, mit Ausnahme des für Windows-Domänencontroller nötigen USN-Journals bei einem Dualbootszenario auf demselben Rechner.[1]
  • Grundsätzlich sind alle übrigen Versionen von NTFS zu früheren Versionen abwärtskompatibel (spätere Windows-Versionen haben Vollzugriff auf ältere NTFS-Versionen), aber zu späteren Versionen sind sie ohne aktualisierten Treiber nicht aufwärtskompatibel.

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

Die Unterschiede gegenüber FAT sind:

  • effiziente Speichernutzung bei Partitionen über 400 MiB
  • 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 255 Zeichen lang sein und aus fast beliebigen Unicode-Zeichen bestehen, wobei Groß- und Kleinschreibung zwar beibehalten aber nicht unterschieden werden.
  • eine maximale Länge des kompletten Pfadnamens von 32.767 Zeichen, einige Backupprogramme funktionieren jedoch nur bis zu 256 Zeichen.
  • flexible Rechteverwaltung durch Verwendung von ACLs
  • maximale Dateigröße von theoretisch 16 Exbibyte (EiB)
  • schnelle und effiziente Speicherung von kleinen Dateien (ab Windows NT 3.51 werden standardmäßig 4096 Byte 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 Windows XP Home Edition und nur bei unkomprimierten Daten)
  • Kontingente, 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 tatsächlich 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 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 bereitgestellten 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. Diese wurden mit Vista eingeführt und unterstützen anders als die zuvor genannten Analysepunkte auch Verweise zu nicht lokalen Objekten.

Erweiterungen seit Windows Vista

Fehlerhafte Sparse-Datei-Unterstützung

Die bereits in früheren NTFS-Versionen eingeführte Unterstützung so genannter Sparse-Dateien wurde mit der Einführung von Windows Vista 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.

Transactional NTFS (TxF)

Mit der Einführung von Windows Vista wurde das NTFS-Dateisystem um das Konzept atomarer Operationen (Transaktionen) erweitert. 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[2] (KTM) implementiert, der Transaktionen auf der Ebene des Betriebssystemkerns 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 folgende 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 konnten (z. B. die zentrale Synchronisation mehrerer Arbeitsplatzrechner).

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

Standard-Clustergrößen und Einschränkungen

Je nach Größe des Laufwerks werden folgende Standard-Clustergrößen vergeben:

Laufwerksgröße Clustergröße Sektoren
512 Mebibyte oder weniger512 Bytes1
513 Mebibyte bis 1024 MiB1024 Bytes2
1025 Mebibyte bis 2048 MiB2048 Bytes4
2049 Mebibyte und mehr4096 Bytes8
Dateinamen
Dateinamen sind auf 255 UTF-16 Zeichen beschränkt. Bestimmte Namen sind reserviert und können nur im Root-Verzeichnis eines Laufwerkes vergeben werden. Diese sind: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (Punkt), $Bitmap, $Boot, $BadClus, $Secure, $Upcase und $Extend [3]. Pfade sind auf circa 32.767 UTF-16 Zeichen beschränkt [4], mit einigen API-Funktionen sogar nur auf 260 Zeichen [5]
Maximale Laufwerksgrößen
Theoretisch ist die maximale Laufwerksgröße von NTFS 264−1 Cluster. In der Praxis wird sie aber vom Betriebssystem eingeschränkt. Unter Windows XP Professional liegt sie bei 232−1 Cluster, was beispielsweise bei Verwendung von 64 KiB pro Cluster einer maximalen Laufwerksgröße von 256 TiB weniger 64 KiB entspricht (unter Verwendung der Standardclustergröße von 4 KiB, läge das Maximum bei 16 TiB minus 4 KiB. Nachdem aber der Master Boot Record (MBR) nur Partitionen bis 2 TiB zulässt, müssen für mehr als 2 TiB dynamische oder GPT Volumen benutzt werden. Das Booten von so einem Volumen benötigt bei Microsoft Windows allerdings ein System mit EFI und 64-bit.[6][7]
Maximale Dateigröße
Die maximale Dateigröße unter NTFS liegt theoretisch bei 16 EiB (16 × 10246 = 264 Bytes) minus 1 KiB (18.446.744.073.709.550.592 Bytes). In der Praxis jedoch vom Betriebssystem eingeschränkt: unter Windows XP 16 TiB (244 Bytes) minus 64 KiB[7]
Dateien pro Laufwerk
Theoretisch 4.294.967.295 (232 Dateien minus 1 Datei), was der maximalen Cluster-Anzahl entspricht, jedoch weiteren Ausnahmen und Restriktionen unterliegt.[7]

Unterstützung durch andere Betriebssysteme

Da es sich bei NTFS um ein proprietäres Dateisystem handelt, ist ein Zugriff durch andere Betriebssysteme als die der Windows-NT-Reihe unter Umständen nur in begrenztem Umfang möglich.

Zugriff mit DOS-basierten Betriebssystemen

Für DOS basierte Betriebssysteme, zu denen auch die Betriebssysteme Windows-9x-Reihe zählen, existieren Treiber wie NTFS4DOS, die einen vollständigen Zugriff auf NTFS-Laufwerke ermöglichen.

Zugriff mit Unix-basierten Betriebssystemen

Linux unterstützt über ntfsprogs vollständigen Lese- und Schreibzugriff sowie Lesezugriff auf verschlüsselte Dateien.[8] Mac OS X kann seit Version 10.3 NTFS-Dateien lesen, aber nicht schreiben. In Version 10.6 (Snow Leopard) wurde eine versteckte Schreibfunktionalität gefunden, die aber nicht offiziell freigegeben ist.[9]

Unter beiden Betriebssystemen kann außerdem über den User-Mode-Treiber NTFS-3G auf NTFS-Dateisysteme zugegriffen werden. Darüber hinaus stellt Paragon einen kommerziellen Treiber zur Verfügung.

Einzelnachweise

  1. a b Microsoft-Hilfeseite
  2. Dokumentation zum Kernel Transaction Manager (Englisch)
  3. How NTFS Works
  4. MSDN : Naming Files, Paths, and Namespaces
  5. MSDN : MAX_PATH
  6. http://www.rodsbooks.com/gdisk/booting.html
  7. a b c Microsoft TechNet Working with File Systems
  8. ntfsprogs 2.0.0 release notes
  9. Alvares, Milind: Snow Leopard’s hidden NTFS read/write support. 2. Oktober 2009, abgerufen am 10. Januar 2011.

Literatur

  • Harald Bögeholz: Datenleger. Defragmentierprogramme für NTFS. (c't 21/2005, S. 178)