NTFS

aus Wikipedia, der freien Enzyklopädie

Wechseln zu: Navigation, Suche
Wikipedia:Redundanz
Redundanz
Die Artikel Master File Table und NTFS überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Die Diskussion über diese Überschneidungen findet hier statt. Bitte äußere dich dort, bevor du den Baustein entfernst. Tuxi81 18:23, 2. Mär. 2007 (CET)
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 TiB in der aktuellen Umsetzung

(16 EiB konzeptbedingt)

Anzahl aller Dateien 4.294.967.295 (232-1)
Länge des Dateinamens 255 Zeichen
Größe des Dateisystems 256 TiB in der aktuellen Umsetzung (16 EiB konzeptbedingt)
Erlaubte Zeichen im Dateinamen alle Zeichen ausser '\0' (NULL) und '/'[1]

Windows verbietet außerdem die folgenden Zeichen \ : * ? " < >

Eigenschaften
Datumsangaben einer Datei Erzeugung, Änderung, Änderung nach POSIX, letzter Zugriff
Datumsbereich 1. Januar 1601 - 28. Mai 60056
Forks Unterstützt
Dateiattribute Nur-lesen, versteckt, System-Datei, Archiv
Dateirechte-Verwaltung ACL
Transparente Komprimierung auf Dateiebene, LZ77 (ab Windows NT 3.51)
Transparente Verschlüsselung auf Deteiebene
DESX (ab Windows 2000),
Triple DES (ab Windows XP),
AES (ab Windows XP Service Pack 1, Windows Server 2003)
Unterstützte Betriebssysteme Windows NT basierte Betriebssysteme (Windows NT 3.1 bis Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista)

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 und Windows Vista. 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.

Inhaltsverzeichnis

[Bearbeiten] Aufbau

Aus Sicht des Dateisystems ist alles Teil einer Datei, auch die Informationen des Systems. Die Hauptdatei ist die MFT (Master File Table). 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. Es sind jedoch auch Werte von 25 %, 37,5 % und 50 % konfigurierbar.

Beim Speichern von Meta-Daten 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 Stromausfalls, muss das Dateisystem nur die Änderungen im Journal zurücknehmen und befindet sich anschließend wieder in einem konsistenten Zustand.

[Bearbeiten] NTFS-Versionen

Oft wird fälschlicherweise von NTFS-Version 5, bzw 5.1 gesprochen, wobei die 5 nicht die Version, sondern die Zugehörigkeit zu Windows 2000 (NT 5) bzw. zu Windows XP (NT 5.1) signalisiert. Aktuell ist NTFS 3.1.

[Bearbeiten] Vorteile

  • 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 bis zu 256 Zeichen lang sein und aus fast beliebigen Unicode-Zeichen bestehen
  • eine maximale Länge des kompletten Pfadnamens von ca. 32.000 Zeichen. Backupprogramme funktionieren jedoch nicht bis in diese Tiefe
  • 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 (nur bei unverschlüsselten Dateien und Clustergrößen bis 4KiB verfügbar)

[Bearbeiten] NTFS 3.X

  • Daten- und Datenträgerverschlü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 und Verzeichnissen, z.B. für
    • Hardlinks: Daten können von bis zu 1023 Dateinamen referenziert werden (eine Datei, viele Namen).
    • NTFS-Junction-Points bzw. symbolische Links, um Verzeichnisse, Partitionen oder Laufwerke in andere Verzeichnisse einzuhängen (siehe Symlinks bei Unix/Linux). NTFS-Junction-Points können jedoch nur auf lokale Ressourcen verweisen, nicht auf Freigaben anderer Rechner – das ist nur mit DFS-Junction-Points möglich.
    • Remote Storage Server
  • Für Dateien mit vielen Leerinhalten werden, wenn sie als Sparse File gekennzeichnet sind, nur die bereits geschriebenen Abschnitte gespeichert.

[Bearbeiten] Nachteile

  • Proprietäres Dateisystem, d. h. die genaue Funktionsweise ist ein Betriebsgeheimnis von Microsoft
  • Ohne Verwendung von Third-Party-Treibern inkompatibel zu DOS und damit auch älteren Windows-Versionen
  • Aufgrund des Sicherheitskonzeptes von NTFS (Sichern/Protokollieren) ist NTFS beim Schreiben auf Partitionen unter 120 GB etwas langsamer als die FAT32-Dateisysteme. Wie stark sich das Ganze auswirkt, ist abhängig vom IDE-Controller und der Festplattenarchitektur.
  • NTFS erlaubt Alternative Datenströme (ADS), in denen versteckt Dateien abgelegt werden können, was eine mögliche Gefahrenquelle darstellt.
  • NTFS versucht standardmäßig, Dateien am Stück zu speichern, trotzdem kann es mit vielen kleinen Dateien zu einer Fragmentierung der MFT kommen. Microsoft liefert ein Defragmentierungsprogramm mit, das aber keine komplette Defragmentierung schafft. Produkte von Drittherstellern können auch stark fragmentierte NTFS-Partitionen sicher defragmentieren (siehe Defragmentierungsprogramm für NTFS, c't 21/05).
  • Die kleineren Clustergrößen machen das Dateisystem langsamer. Allerdings kann dies behoben werden, indem man über die Befehlszeile formatiert und größere Clustergrößen (bis zu 64 KiB) verwendet. Allerdings funktioniert die implementierte Komprimierung von Dateien nur bei Clustergrößen bis 4 KiB und die interne Fragmentierung steigt deutlich, was zu Speicherplatzverschwendung führt.
  • Die MFT ist eine lineare Struktur, was Zugriffe verhältnismäßig ineffizient macht.
  • Der freie Speicherplatz wird in Bitmaps verwaltet, was zu erhöhtem Zeitaufwand beim Suchen freier Blöcke führen kann.

[Bearbeiten] NTFS 3.X

[Bearbeiten] Standard-Clustergrößen

Laufwerksgröße  Clustergröße  Sektoren
512 Megabyte oder weniger 512 Bytes 1
513 Megabyte - 1024 MiB 1024 Bytes 2
1025 Megabyte - 2048 MiB 2048 Bytes 4
2049 Megabyte und mehr 4096 Bytes 8

[Bearbeiten] Zugriff mit Linux

[Bearbeiten] Kernel-Treiber

Der Linux-Kernel kann seit Version 2.2.0 NTFS-Laufwerke mounten, allerdings ohne Schreibunterstützung. In Linux 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[2] 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.

[Bearbeiten] 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 Zusammenführung von ntfs-3g in den offiziellen User-Mode-Treiber ist vorgesehen.[3]

Die älteste freie 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.

[Bearbeiten] 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 besitzen.

[Bearbeiten] Zugriff mit DOS / Windows 95/98/ME

Für DOS-Systeme (z.B. Bootdisketten) kann man beschränkten NTFS-Zugriff erlangen. Die Firma Sysinternals bietet Treiber namens NTFSDOS an, der in der kostenlosen Version allerdings nur lesen kann. 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.

[Bearbeiten] Weblinks

[Bearbeiten] weiterführende Literatur

[Bearbeiten] Software

[Bearbeiten] Quellen

  1. UTF-16 codepoints accepted, but not validated
  2. Entwickelt von Anton Altapamarkov [1], Universität Cambridge, und Richard Russon
  3. ntfs-3g: open source read-write driver auf der linux-ntfs-dev-Mailingliste
Persönliche Werkzeuge