Login
Newsletter
Werbung

Mo, 1. August 2005, 00:00

NTFS unter Linux

Dieser Artikel handelt von Linux und NTFS. Er umfasst dabei, was NTFS kann, wieviel Linux davon versteht und welche Fortschritte das Linux NTFS-Projekt macht.

Vorwort

Zuerst ein bisschen was über NTFS. Das ursprüngliche Dateisystem von Windows war FAT (File Allocation Table). Zu dieser Zeit gab es nur das 8+3-Zeichen-Dateinamenschema und mehr war nicht zugelassen. FAT wurde überbeansprucht und aktualisiert, um längere Dateinamen zu ermöglichen, aber es war nicht gut genug dafür. Dann wurde in den frühen 90er Jahren NTFS veröffentlicht und die Dinge wurden verbessert.

NTFS ist für kleine Sachen nicht gut geeignet, aber das spielte keine Rolle, denn mittlerweile war alles groß genug: große Festplatten, große Dateien, große Dateinamen. Es unterstützte außerdem auch noch Sicherheitsfeatures, Kompression, Verschlüsselung, Quota und alternative Datenströme. Nimmt man all diese Features zusammen, ist es sogar zuverlässig (sozusagen).

NTFS ist ein Journaling-Dateisystem. Das bedeutet zwei Dinge: Sie können Ihren Computer im laufenden Betrieb ausschalten und es werden dabei normalerweise keine Daten zerstört; chkdsk ist mittlerweile ein schnelles Verfahren, selbst für große Festplatten. Kopiert der Benutzer eine Datei, schreibt NTFS als allererstes in das Journal, was gerade gemacht wird. Dann führt es die Tätigkeit durch und zum Schluss schreibt es in das Journal, dass der Vorgang beendet wurde. Wenn Sie den Computer zwischendurch ausschalten, weiß NTFS, wenn Sie ihn wieder anschalten, was es davor konkret gemacht hat. Es weiß genau, wie es das Chaos wieder beseitigen kann und chkdsk muss nicht ausgeführt werden.

Beachten Sie, dass NTFS nicht gewährleistet, dass Sie keine Daten verlieren, sondern nur garantiert, dass das Dateisystem nicht beschädigt wird. Das hört sich für Windowsnutzer großartig an, ist aber ein Problem für Linux. FAT wird sehr gut verstanden und kann von Linux aus benutzt werden, während NTFS undokumentiert war. Ein funktionierender NTFS-Treiber für Linux würde Interoperabilität zwischen den beiden Betriebssystemen ermöglichen. Außerdem würden dadurch Rettungsaktionen mithilfe einer Linux-Bootdisk nach einem Missgeschick möglich werden.

Treiber

Der ursprüngliche NTFS-Treiber wurde im Jahr 1995 geschrieben. Zu dieser Zeit wussten wir nicht viel über NTFS oder Linux. Die Version konnte eine Menge Leseaktionen sicher durchführen, jedoch war das Schreiben auf einen NTFS-Datenträger extrem gefährlich. Dieser Treiber wurde so sicher wie möglich gemacht, dann jedoch wurde seine Entwicklung abgebrochen.

Im Jahr 2000 wurde der neue NTFS-Treiber, Version 2.0, geschrieben. Zu diesem Zeitpunkt hatten wir bereits mehr Informationen über NTFS und eine bessere Nachhilfe von den Linuxkernel-Gurus. Die Tabelle zeigt, welche Arten von Tätigkeiten auf einem NTFS-Dateisystem mit dem NTFS-Treiber 2.0 gemacht werden können.

Sicher und schnell Sicher Riskant Nicht implementiert
Verzeichnisinhalte auflisten
Dateien lesen
Komprimierte Dateien lesen
Mmap - Speichermapping wird von einigen Programmen zum Lesen von Dateien benutzt
Loop-Mounting von Dateien
Das Überschreiben vorhandener Daten
Dateien abschneiden
Dateien vergrößern
Nichts in der derzeitigen Version Erzeugen, Löschen und Umbenennen von Dateien oder Verzeichnissen
Alternative Datenströme
Erzeugen von Hardlinks
Quotas
Windows-Security (ACLs)
Journaling
Lesen verschlüsselter Dateien
Treiberstatus:
Wird gepflegt, aber nicht aktiv entwickelt

Da wir sehr vorsichtig mit neuen Features sind, macht der Treiber zwar nicht viel, ist dafür aber zumindest sicher. Einige Features wie Journaling oder Unterstützung für Verschlüsselung werden möglicherweise nie implementiert werden.

Der nächste Schritt ist es, die Verzeichnisverwaltung zum Funktionieren zu bringen. Leider ist dies eigentlich ein sehr großer Sprung. Verzeichniseinträge werden in einem ausgewogenem B-Tree gespeichert. Eine Umbenennung von Apple nach Zebra könnte bedeuten, maßgebliche Änderungen in diesem Tree zu machen. Wenn Sie aber einen Fehler machen, heißt es natürlich Goodbye, Dateisystem. Richard Russon war teilweise erfolgreich beim Manipulieren dieser Verzeichnisbäume, aber brauchte wesentlich mehr Zeit, um die Arbeit zu beenden. Die derzeitigen Experimente dazu sind in der Datei ntfsrm.c im Verzeichnis tools zu finden.

Die ntfsprogs (Tabelle 2) sind eine Reihe nützlicher Tools für NTFS.

Tool Status Beschreibung
ntfsresize Stabil Größe eines NTFS-Datenträgers ändern
ntfsundelete Stabil Findet Dateien, die gelöscht wurden und stellt sie wieder her
ntfsclone Stabil Nimmt effizient ein Backup oder eine Wiederherstellung eines Datenträgers vor
mkntfs Stabil Erzeugt einen NTFS-Datenträger auf einer Partition
ntfscat Stabil Druckt eine Datei in der Standardausgabe aus
ntfsinfo Stabil Anzeige der Dateiattribute, vollständig
ntfslabel Stabil Anzeigen oder Setzen einer Datenträgerbezeichnung
ntfsls Stabil Auflistung der Verzeichnisinhalte
ntfswipe Alpha Schreibt Nullen in die ungenutzten Teile der Festplatte
ntfsdefrag Riskant Defragmentiert einen NTFS-Datenträger
ntfsrm Riskant Löscht eine Datei (Beginn der Verzeichnisverwaltung)

Irgendwann in der Zukunft wird Microsoft WinFS (Windows Future Storage) veröffentlichen. Offenbar wird WinFS eine Schicht über NTFS liegen. Das bedeutet, dass wir zuerst diese neue Schicht lesen müssen, um Dateien auf einer NTFS-Partition zu finden. Es könnte daher sein, dass wir in ein paar Jahren wieder ganz am Anfang stehen.

NTFS benutzen

Die meisten Linuxdistributionen unterstützen NTFS, die einzigen wirklichen Ausnahmen sind Red Hat und Fedora. Diese entfernten aus rechtlichen Gründen NTFS aus ihren Kerneln. Red Hat- und Fedora-Nutzer können sich NTFS-Unterstützung von folgender Seite herunterladen: http://linux-ntfs.sourceforge.net/rpm/index.html

Mandriva war mit die erste Distribution, die unsere Unterstützung für das zuverlässige Ändern der Größe von NTFS-Partitionen nutzten. Dies ermöglicht es einer neuen großen Gruppe von Windowsnutzern, Linux auszuprobieren, und zwar ohne Gefahren.

Um Ihre NTFS-Partition zu mounten, loggen Sie sich entweder als root ein oder führen den Befehl su - aus und geben das Rootpasswort ein. Als nächstes überprüfen Sie, dass Ihr Kernel NTFS unterstützt. Führen Sie diese Befehle aus und suchen Sie nach ntfs in der Ausgabe:

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung