Login
Newsletter
Werbung

Mo, 1. August 2005, 00:00

NTFS unter Linux

Tools

Nachdem der NTFS-Treiber eingeführt wurde, verwendete Anton Altaparmakov einiges vom ursprünglichen Core-Code, um eine shared Library für NTFS (praktisch eine Linux-DLL) für den User-Space (nicht Teil des Kernels) zu erstellen. Das ermöglichte Programmierern einen einfachen Weg, um auf einen NTFS-Datenträger schauen zu können. Obwohl die Bibliothek Funktionen wie open_volume und read_file besitzt, ist es nur wirklich für diejenigen Programmierer nützlich, die die Interna von NTFS durch und durch verstehen. Das bedeutendste der Tools ist ntfsresize, geschrieben von Szabolcs Szakacsits (Szaka). Es ist der erste freie Resizer mit verfügbarem Quellcode. Er kann nicht nur NTFS-Partitionen verkleinern, sondern sogar Daten aus dem Weg räumen und neu anordnen. Glücklicherweise ist das Verändern der Größe einer Partition einfacher, als eine Datei zu erzeugen, weshalb es sehr sicher ist. Die Alternative ist, viel Geld für etwas wie Partition Magic auszugeben.

Mittlerweile nutzen eine ganze Menge Linuxdistributionen ntfsresize intern während der Installation. Eine andere graphische Möglichkeit, ntfsresize zu nutzen, ist GParted - ein freier Clone von Partition Magic.

Ein weiteres sehr nützliches Tool ist undelete, geschrieben von Richard Russon. Typisch für Dateisysteme ist es, dass sie sehr faul sind. Wenn eine Datei gelöscht wird, werden die Daten nicht überschrieben; der Dateiname wird einfach nur als "nicht im Gebrauch" markiert. Undelete sucht nach Hinweisen auf gelöschte Dateien und kann diese Daten wiederherstellen.

Andere Tools wie mkntfs und ntfsinfo sind vor allem für Entwickler nützlich. Ntfswipe wird den Paranoiden gefallen. Es löscht alle ungenutzten Bereiche des Datenträgers. Ntfsmove ist der Anfang eines vollständigen Defragmentierungs- und Verschiebungsprogramms. Ntfsrm ist ein Testprogramm, das darauf hin arbeitet, Dateien zu löschen - das setzt vollständige Verzeichnisverwaltung voraus. Ntfsclone hat das Ziel, ein Ersatz für Ghost zu sein.

Die Tools stellen eher eine Spielwiese für neue Ideen dar, und es werden nicht unnötig gefährliche Ideen im Kernel getestet. Nur wenige der Tools machen Veränderungen am NTFS selbst und die, die es machen, wurden gut getestet und laufen stabil. Obwohl wir allen Programmcode (inklusive der gefährlicheren Sachen) veröffentlichen, werden nur die sicheren Tools am Ende auch erstellt.

Projekt

Im Jahr 1995 hat der deutsche Student Martin von Löwis mit einem NTFS-Treiber für Linux angefangen. Das war eine erstaunliche Leistung. Zu dieser Zeit war öffentlich über das Innenleben von NTFS nichts bekannt. Keine Dokumentation, keine SDKs, keine MSDN-Einträge.

Reverse Engineering war das erste, was er mit NTFS machen musste, um genügend Informationen zu erhalten, um die Benutzerdateien lesen zu können. Danach musste er einiges über das Linux VFS (Virtual Filesystem) lernen, um den Treiber schreiben zu können.

Mit der Hilfe von einigen anderen Linuxanfängern und einigen wenigen Linuxgurus haben Martin und seine Bekannte den ersten NTFS-Treiber zusammengesetzt. Er war nicht sehr schön, aber er funktionierte. Er konnte Dateien lesen und Verzeichnisse überwinden, aber verstand nicht Dinge wie zum Beispiel komprimierte Dateien.

Zwei Jahre lang entwickelte sich der Treiber und wurde stabiler. Dann, im Dezember 1997, nach viel harter Arbeit, wurde der Treiber Teil des etablierten Linuxkernels ab Version 2.1.74.

Von da an wurden wir zu ehrgeizig. Das Lesen von NTFS ist einfach, wir konnten die Bits ignorieren, die wir nicht verstanden. Das Schreiben auf NTFS hingegen, wurde zu einem wirklichen Albtraum. Es wurden Fehler gemacht und der Treiber wurde schnell zu unsicher, um benutzt zu werden. Das Lesen war wie gesagt OK, aber das Schreiben regelrechter Selbstmord. Nach einigen Berichten über verkorkste Partitionen ist das Ansehen nachhaltig beschädigt. Danach kam die Entwicklung zum Stillstand.

2000 entschied der bulgarische Student Anton Altaparmakov, dass es mit dem damaligen NTFS-Treiber keinen Schritt mehr vorwärts geht und es einfacher wäre, noch einmal anzufangen. Er begann mit einem 2.4er Linuxkernel und allem Wissen, was wir bis dahin bereits gewonnen hatten. Wo sich der ursprüngliche Treiber entfaltet hatte, wird dieser neue Treiber geplant werden. Er nahm schnell Gestalt an und er war stabil wie ein Fels in der Brandung, aber nur was das Lesen angeht.

Obwohl er ein viel besserer Treiber war, wurde er niemals in den 2.4er-Kernel, sondern stattdessen in 2.6.10 eingefügt. Zu diesem Zeitpunkt war der alte Treiber, der immer noch in den 2.4er-Kerneln benutzt wurde, so sicher, wie es nur ging. An ihm würde aber keine Arbeit mehr geleistet werden.

Kaum arbeitete die Unterstützung für das Lesen stabil, dachte man über die Schreibunterstützung nach. NTFS wird wie eine Datenbank gebaut und wenn eine Datei verändert wird, ist es unbedingt notwendig, alle Verweise auf diese Datei zu aktualisieren. Jegliche Fehler können zu Datenverlust führen oder die Daten im schlimmsten Fall komplett zerstören. Die einfachste Schreibmethode, die es gibt, ist das Überschreiben. Dem Benutzer wird nur erlaubt, existierende Daten zu verändern. Das erfordert keinerlei Änderungen an der Struktur des Datenträgers.

Mittlerweile besteht das Projekt nur noch aus drei Leuten: Anton, Rich und Szaka, wodurch das Projekt zu einem Stillstand kam. Sie alle haben Verpflichtungen in der wirklichen Welt, die ihnen keine Zeit lassen, Software zu entwickeln. Gelegentlich bieten Menschen ihnen ihre Hilfe an, aber die sind schnell von der Komplexität des Ganzen abgeschreckt. Leider können wir NTFS nicht einfacher machen.

In zehn Jahren mit und Dutzenden von Leuten, die am Projekt arbeiteten, haben sich erst zwei überhaupt einmal getroffen: Anton und Rich.

Wie funktioniert es?

Das Reverse Engineering von NTFS fand in Deutschland und Großbritannien statt. Nach meinem besten Wissen ist diese Praxis in diesen Staaten legal. Jedoch bin ich kein Jurist. Wenn Microsoft will, dass wir aufhören, bin ich mir sicher, dass sie es könnten; aber in dem Jahrzehnt, als dieses Projekt lief, haben wir darüber immer nur Gerüchte gehört.

Stellen Sie sich vor, Sie haben eine Partition vor sich liegen. Sie haben keine Ahnung, wie der Datenträger ausgelegt ist, aber Sie haben ein funktionierendes Betriebssystem, das bereits eine große Hilfe ist.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung