Linux-Magazin-Logo Die Zeitschrift für Linux-Professionals

Paragon NTFS for Linux 3 gegen Captive 1.1.5

Einblick in fremde Fenster

Jan Kleinert

Auf eine Windows-Partition schreiben, das ist mit dem Linux-eigenen NTFS-Treiber recht gefährlich. Doch Hilfe naht: Denn zum einen gibt es ein verbessertes Kernelmodul der Firma Paragon, zum anderen die GPL-Software Captive, die sich frech diverse Windows-Treiber zu Diensten macht.

Der Linux-Kernel kann NTFS-Partitionen bisher nur lesend mounten. Der Schreib-Support ist experimentell und Fehler könnten auf betroffenden NTFS-Partition Tabula rasa machen. Diesen Mangel wollen sowohl die GPL-Software Captive als auch das kommerzielle Produkt NTFS for Linux 3 von Paragon[1] beheben. Eine frühere Version hatte das Linux-Magazin als Teil einer größeren Suite schon im Test[2].

Captive ist noch relativ neu, ein intern ziemlich kompliziertes Gebilde aus einem kleineren Kernelmodul und einem Hauptmodul im Userspace. Letzterem gelingt das Kunststück, den nativen NTFS-Treiber von Windows XP unter Linux zur Zusammenarbeit zu überreden.

Paragon-Modul für den Linux-Kernel

Teile des Paragon-Linux-Treibers sind offene Quelldateien, unterliegen aber einer proprietären Lizenz. Ansonsten gibt es zwei binäre Libraries, eine für den Kernel 2.4, die andere für 2.6. Darüber muss die Mehrheit der Benutzer aber nichts wissen, denn es reicht, wenn die zum Distributionskernel passenden Headerfiles installiert sind und Root das mitgelieferte Installationsskript oder eine Make-Kombination ausführt.

Wenn es nicht schon geschehen ist, setzt »install.sh« Symlinks zwischen den Kernel-Headerfiles und »/usr/include«. Anschließend kompiliert und linkt es ein Objectfile (das UFSD-Kernelmodul) zusammen. Auf dem Testsystem mit Suse 9.1 wollte das allerdings anfänglich nicht gelingen. Eine Analyse ergab, dass ein Kernelheader nicht richtig inkludiert war und zusätzlich beim Linken Fehler auftraten. Innerhalb einiger Tage behob Paragon das Manko.

Das Ergebnis der Bemühung können alle Linux-Magazin-Leser bewundern - der Kasten "Vorteile für Linux-Magazin-Leser" verrät wie.

Vorteile für Linux-Magazin-Leser

Alle Magazin-Leser, die die Distribution Suse Linux 9.1 SE von der beiliegenden CD installieren, können sich auf der Website [3] kostenlos den Dateisystem-Treiber des aktuellen NTFS for Linux 3.0 downloaden. Der besitzt die volle Funktionalität der Vollversion und läuft zeitlich unbegrenzt. Wer ein gekauftes Suse Linux 9.1 besitzt - egal ob Personal oder Professional -, wird mit der dort angebotenen Software wahrscheinlich auch klarkommen. Das Installationsskript der Vollversion ist zwar nicht dabei, man muss aber nur das passende Object-File mit »insmod Dateiname« in den Kernel einbinden. Ab sofort funktioniert das »mount«-Kommando wie im Artikel beschrieben.

Doch Achtung: Wer seinen Kernel updatet, wird unter Umständen danach beim Insmod des UFDS-Treibers aus Kompatibilitätsgründen abgewiesen. Das ist kein Wunder, ist doch das Kernelmodul gegen eine bestimmte Kernelversion gelinkt. Und das Linken beherrscht nur die normalerweise knapp 70 Euro teure Vollversion des Programms. Linux-Magazin-Leser räumt der Hersteller jedoch einen ordentlichen Rabatt ein, wenn sie über [4] bestellen und den richtigen Coupon-Code angeben. Dann kostet die Lizenz nur noch knapp 38 Euro.

Das neue Kernelmodul und ein paar Kleinigkeiten wie ein Init.d-Skript verfrachtet das Install (je nach Distribution mehr oder minder reibungslos) ins System. Fertig! Ohne weiteres Zutun lädt der Linux-Kernel on demand, also bei:

mount -t ufsd -o iocharset=utf8 Device Mountpoint

Dank des »iocharset«-Parameters funktioniert die Zeichenumsetzung in Datei- und Pfadnamen gut, wie Abbildung 1 zeigt. Root hätte alternativ auch dem Installskript diesen Parameter für die Ewigkeit mitgeben können. Im NTFS verschlüsselte Dateien kann der Paragon-Treiber erwartungsgemäß nicht dekodieren, komprimierte aber wohl.

Abbildung 1: Paragons NTFS-Modul setzt Umlaute in Dateinamen korrekt um, wenn man ihm den Zeichensatz beim Mounten mitteilt. Alternativ reicht es aus, die Kodierung dem Installskript als Parameter zu übergeben.

Auch der erste Eindruck von der Geschwindigkeit ist gut, denn die schlechten Latenzzeiten beim Bedienen der Vorgängerversion gehören der Vergangenheit an: Beim letzten Test dauerte ein »ls -l« in einem NTFS-Verzeichnis mit rund 50 Dateien zähe 44 Sekunden[2]; die aktuelle braucht hier rund 4. Zum Vergleich: Der Nur-Lese-Treiber aus dem Kernel lässt den Benutzer nach 3 Sekunden an seinen Shellprompt.

NTFS for Linux 3

Hersteller: Paragon Technologie

Internet: http://www.ntfs-linux.de

Lizenz: Proprietär, zirka 70 Euro, Leserrabatt möglich, siehe Kasten "Vorteile für Linux-Magazin-Leser", Schullizenzen auf Anfrage

Captive 1.1.5

Autor: Jan Kratochvil

Internet: http://www.jankratochvil.net/ project/captive

Lizenz: GPL; wegen einiger Windows-Dateien ist aber der Besitz einer Windows-XP-Lizenz erforderlich

Captive bedient sich

Captive kann man als Binärpaket im RPM- und Tar.gz-Format von der Projektseite des Programmierers laden oder aus den Sourcen kompilieren. Nach der Installation muss sich der Benutzer noch in den Besitz einiger Windows-XP-Dateien bringen. Dabei hilft ihm das mitgelieferte, sehr pfiffige Programm »captive-install-acquire«. Es durchsucht dazu nicht nur alle möglichen Verzeichnisse, sondern holt auf Anforderung sogar ein Winodws-XP-Servicepack vom Microsoft-Downloadserver. Richtigerweise weist die Doku auf die Notwendigkeit einer gültigen XP-Lizenz hin.

Der Rest geht automatisch: Beim Mounten kompilieren sich die Treiber wie von Geisterhand und die betreffende Partition ist eingehängt. Der Mount-Eintrag ist beeindruckend:

/dev/hda4 on /mnt/captive-windows2000 type captive-ntfs (user=root,fs=captivefs,mntent.mnt_fsname=/dev/hda4,mntent.mnt_type=captive-ntfs,dir_cache_entries=0,image=/dev/hda4,noauto,captive_options=--disk;--rw;--load-module=/var/lib/captive/ntoskrnl.exe;--filesystem=/var/lib/captive/ntfs.sys;--sandbox-server=/usr/sbin/captive-sandbox-server;--bug-pathname=/var/lib/captive/bug-%FT%T.captivebug.xml.gz;--syslog;--rw,server_socket=/tmp/lufsd2057093082,server_pid=6209)

Bei genauem Hinsehen entdeckt man in ihm auch die involvierten Windows-Dateien, wie sie auch Abbildung 2 zeigt. Funktional überzeugt die Software: Sie erkennt selbstständig den richtigen Zeichensatz - im Test UTF-8 und entpackt auf NTFS-Ebene komprimierte Dateien. Die ganz hohe Schule, verschlüsselte Dateien, beherrscht auch Captive nicht - doch hier fällt Nachsicht leicht.

Abbildung 2: Captive schnappt sich entweder lokal oder online einen Satz Windows-XP-Dateien und lässt sie fortan als NTFS-Subystem für sich und den User arbeiten.

Messung der Schreib-Performance

Das Schreiben auf NTFS ist der hauptsächlich Daseinszweck beider Lösungen. Darum sind Messungen der Datendurchsätze beim Schreiben auch besonders interessant. Der Kasten "So haben wir getestet" beschreibt die größtenteils unerfreulichen Begleitumstände des Unterfangens. Die Paragon-Software schlug sich wacker und verfrachtete die Testdatei in einer Minute und 10,5 Sekunden auf die Windows-Partition, was rechnerisch 3,75 MByte/s ergibt.

So haben wir getestet

Einsatzbereich beider Lösungen sind Dual-Boot-Desktops. Darum zogen die Tester keinen Hochleistungsserver heran, sondern eine typische Umgebung: einen Pentium 4 Celeron mit 2 GHz, 256 MByte RAM und 80-GByte-ATAPI-Festplatte. Als Hauptsystem lief auf dem PC ein Suse Linux 9.1 Professional mit originalem Suse-Kernel 2.6.3. Die Linux-Partition war mit Ext 3 formatiert. Lieferant der NTFS-Partition war ein Windows 2000 Professional mit allen aktuellen Updates.

Ursprünglich sollte für die Performancetests Bonnie++ zum Einsatz kommen, das auf der Ext-3-Partition auch bestens funktionierte. Doch schon der erste Versuch mit der vergleichsweise performanten Paragon-Software endete im Fiasko: Die Tester beauftragten Bonnie++ damit, auf einer Größe von 512 MByte und mit 50x1024 Dateien zu hantieren - eine Aufgabe, die auf der Ext-3-Partition in wenigen Minuten erledigt ist. Innerhalb der nächsten sechs Stunden fraßen sich Paragon-Treiber und System praktisch fest. Maus und Tastatur waren kaum bedienbar, Festplattenaktivitäten waren nicht mehr zu verzeichnen, Ergebnisse kamen nicht zustande.

Selbst als die Tester Bonnie++ mit [Strg]+[C] abbrachen, war das Leid noch nicht zu Ende: Das Benchmark-Programm will beim Terminieren nämlich seine reichlich 50000 Files wieder löschen - ein schöner Zug. im konkreten Fall brachen die Tester aus Zeitgründen diese eigentlich recht leichte Aufgabe nach 15 Minuten aus Effizienzgründen mit »kill« ab und räumten den Dateimüll unter Windows 2000 beiseite. Als "Benchmark" musste für diesen Test daher das Kopieren einer 265 MByte großen Datei genügen. Die Lese-Performance wurde durch Schreiben ins Null-Device bestimmt, das Schreiben durch simples Umkopieren zwischen den Partitionen. In einigen Fällen dauerten auch solche Vorgänge Stunden.

Captive dagegen strapazierte die Geduld der Tester 48 Minuten und 19 Sekunden lang. Der Taschenrechner weiß von 93 KByte/s zu berichten - das ist etwa DSL-Geschwindigkeit. In der Praxis Dateien dieser Größe zu kopieren ist zweifellos nicht praktikabel. Für ein paar Textfiles oder kleine Grafiken reicht der Durchsatz aber. Die Hauptarbeit fällt prinzipbedingt im Userspace an.

Lese-Performance

Wer seine NTFS-Partition mit einem der beiden vorgestellten Treiber mountet, verliert natürlich die Möglichkeit, den Kernel-eigenen NTFS-Treiber zum Lesen zu benutzen. Darum mussten die beiden Kontrahenten beweisen, dass sie nicht mit einer Leseschwäche zu kämpfen haben. Paragons Kerneltreiber schaffte hier 2,1 MByte/s, indem er die 265 MByte in 2 Minuten und 6 Sekunden holte. Zum Vergleich: Das originale NTFS-Kernelmodul kopierte die Datei in 35,7 Sekunden und ist damit sogar merklich schneller als das von Paragon.

Der Captive-Software verdankten die Performance-Tester schon eine ausgedehnte Kaffeepause. Doch der Lesetest eignete sich sogar für Ausflüge: Nach rund drei Stunden ging die angestrengt flackernde Festplatten-LED aus. In der Zwischenzeit war der Rechner faktisch unbedienbar.

Schlimmer aber war, dass der Test unrühmlich ausging: Offenbar war eine zentrale Captive-Komponente den Stresstod gestorben und riss Kerneltreiber, Mountpoint, »cp«-Prozess, zugehörige Shell und zum Schluss den ganzen Windowmanager mit sich in die Tiefe. Gerade mal X11 lief noch. Dass der Rechner nun wieder viele Ressourcen frei hat, war den Wartenden kein Trost.

Fazit

Beide Lösungen laufen beim Schreiben stabil und unterstützen die wichtigsten NTFS-Attribute. Im Testzeitraum gab es auch keine Korruption des benutzen NTFS-Dateisystems. Beide sind in dieser Disziplin dem Kernel-eigenen NTFS-Treiber zurzeit haushoch überlegen. Allein diese Tatsache verleiht den Treibern (eigentlich) das Attribut "Empfehlenswert". Captive wird wegen der Abstürze beim Lesen großer Dateien diesen Titel sofort wieder entzogen.

Kaum weniger wichtig sind aber die erreichten Geschwindigkeiten: NTFS for Linux 3.0 erreicht beim Lesen und Schreiben gute Werte. Dass dabei die Systemauslastung Kernel-seitig sehr hoch wird, ist bei überschaubaren Datenmengen sicher zu verschmerzen.

Mit großer Systemlast müssen auch die Anwender von Captive leben - nur viel länger. Dass der Treiber im User- statt im Kernelspace arbeitet, macht bei der praktischen Handhabung keinen Unterschied. Ob jeder Anwender des Windows-Treiber-Emulators mit der unterirdisch schlechten Schreib- und Lese-Performance leben will, darf offen bezweifelt werden.

Unterm Strich eignet sich Captive für den gelegentlichen Austausch kleiner Dateien - Mpeg-Spielfilme zwischen Partitionen verschieben würde auch die Lebenserwartung mancher Festplatte übertreffen. Das lizenzkostenpflichtige NTFS dagegen meistert offenbar ihm übertragene praktische Aufgaben im Normbereich und ist daher klar Erstplatzierter des Tests. Für den harten Dauereinsatz als Arbeitspartition eignet es sich aber auch nicht, wie der gescheiterte Versuch des synthetischen Benchmarkings mit Bonnie++ (siehe Kasten "So haben wir getestet") eindrücklich beweist.

Infos

[1] Paragon Technologie: [http://www.paragon.ag/ger/]

[2] J. Kleinert; "Jeder mit jedem" - Paragon Alles Mounter 3.0 Professional im Test: Linux-Magazin 12/03, S. 52

[3] NTFS-for-Linux-3-Treiber für Suse Linux 9.1 kostenlos für Linux-Magazin-Leser: [http://www.ntfs-linux.com/linux-magazin.htm]

[4] Rabattierter Einkauf von NTFS for Linux 3: [https://secure.element5.com/esales/cart.html?PRODUCT[516868]=1&COUPON1=NTFSCT&languageid=2¤cies=EUR], Coupon Code: »NTFSCT«