Login
Newsletter
Werbung

Mo, 1. August 2005, 00:00

NTFS unter Linux

/sbin/modprobe ntfs
cat /proc/filesystems

Wenn Sie irgendwelche Fehlermeldungen bekommen, ausgenommen die, daß das Modul ntfs bereits geladen ist, dann müssen Sie den Kernel leider selbst kompilieren, um NTFS-Unterstützung zu kriegen. Als nächstes finden Sie die Version des NTFS-Treibers heraus. Version 1.* ist der alte Treiber und Version 2.* der neue. Beide dieser Befehle sollten Ihnen diese Nachricht in den Logs zeigen:

dmesg | grep -i ntfs
grep -i ntfs /var/log/messages

Schauen Sie außerdem auch nach R/O, was bedeutet, dass der Treiber Read-Only ist, oder R/W für Read-Write (Schreibunterstützung ist aktiviert). Um die Partition zu mounten, benötigen Sie zwei Dinge: den Namen des Geräts und ein leeres Verzeichnis. Partitionen werden in ein Verzeichnis gemountet. Um alle Partitionen anzeigen zu lassen, führen Sie fdisk -l aus:

Die Ausgabe könnte folgendermaßen aussehen:

Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
Units = cylinders of 4032 * 512 bytes
 Device BootStart EndBlocks Id System
 /dev/hda1 1 2125 4283968+ 07 NTFS/HPFS
 /dev/hda2 2126 19851 35735616 0f Win95 Ext'd (LBA)
 /dev/hda5 * 2126 4209 4201312+ 83 Linux
 /dev/hda6 4210 4465516064+ 82 Linux swap

Beachten Sie, dass Festplatten Namen wie hda (Harddisk a), hdb und sda (SCSI-Disk a) haben. Partitionsnamen werden aus dem Festplattennamen und einer Nummer, z. B. hda1 oder sda2 zusammengesetzt.

Wenn Sie noch kein Verzeichnis dafür haben, erstellen Sie eins, zum Beispiel: mkdir /mnt/windows. Zum Schluss mounten Sie noch (indem Sie den Namen der NTFS-Partition und des Verzeichnisses, dass Sie erstellt haben, benutzen):

mount /dev/hda1 /mnt/windows -o umask=0222,nls=utf8

wobei -o zwei Optionen einarbeitet, die durch Kommas getrennt sind. Die umask-Option ändert die Rechte der Dateien und Verzeichnisse, so dass Benutzer, die nicht root sind, sie auch lesen können. Die nls-Option sagt dem Treiber, wie er Nicht-ASCII-Zeichen darstellen soll. Wenn Sie damit fertig sind, können Sie die Partitionen unmounten mit einem dieser Befehle:

umount /dev/hda1
umount /mnt/windows

Beachten Sie, dass der Befehl hier umount ist (mit nur einem "n"). Wenn Sie die Partition automatisch während des Bootvorganges gemountet haben wollen, editieren Sie die Datei /etc/fstab und fügen einen Eintrag in folgender Form hinzu:

device directory type options 0 0

z.B.:

/dev/hda1 /mnt/windows ntfs umask=0222,nls=utf8 0 0

Kümmern Sie sich nicht um die zwei Nullen am Ende.

Alternativen

Verschiedene Alternativen zum NTFS-Treiber für Linux sind aus einer sehr einfachen Idee heraus entstanden. Warum machen wir all die Arbeit, die Microsoft für uns machen könnte? Der Windowstreiber für NTFS liegt in der Datei ntfs.sys (einer Systembibliothek). Wenn wir einen Wrapper dort herum schreiben könnten, bräuchten wir nicht wissen, wie NTFS wirklich funktioniert. Dadurch ist jetzt nicht mehr das Verstehen von NTFS als solches, sondern das Verstehen von ntfs.sys das Problem. Es ist zwar einfacher, doch erzeugt es dennoch viele neue Probleme:

  • Woher bekommen Sie eine Kopie von ntfs.sys?
  • Welche Version?
  • Ist es legal, diese zu benutzen?
  • Wie können Sie mit Sicherheit wissen, welche Funktionen aufgerufen werden sollen?
  • Wie können Sie wissen, was für Auswirkungen solche Aufrufe haben werden?
  • Wem geben Sie die Schuld, wenn alles schief geht?

Der erste Wrapper kam von SysInternals. Sie schrieben einen Treiber, der es Benutzern ermöglicht, DOS zu booten und dennoch von ihren NTFS-Partitionen lesen und auf sie schreiben zu können. Von da an war es ein einfacher Schritt, NTFS-Unterstützung für Windows 95 und 98 bereitzustellen. Obwohl SysInternals die read-only Version frei zur Verfügung stellte, wollten sie 1400 US-Dollar für die Version mit Schreibunterstützung (als Teil ihres Administrator's Pak).

Könnten wir also diese Idee aufgreifen und einen Treiber für Linux erstellen, der schreiben kann? Ja, es wird als Captive NTFS bezeichnet. Indem er einige komplizierte Techniken (ReactOS, GnomeVFS, eine Sandbox) benutzte, schaffte es Jan Kratochvil, zuverlässig auf eine NTFS-Partition zu schreiben. Um die NTFS-Partitionen zu mounten, benötigen Sie auch lufs (Linux User FileSystem). Warum nutzt also nicht jeder Captive? Die Antwort ist einfach:

  • Gesetzmäßigkeit: Niemand ist sich sicher, dass es legal ist, selbst wenn Sie eine Lizenz von Windows besitzen.
  • Aufgeblähtheit: Sobald es läuft, benutzt es eine riesige Menge an Speicher.
  • Geschwindigkeit: Es ist langsam. Sehr langsam.
  • Gefährdung: Wenn ntfs.sys verändert wird (sagen wir mal von einem Service Pack), gibt es keine Gewissheit, dass der Treiber noch zuverlässig und sicher läuft.
  • Support: Kurz nachdem Captive funktionierte, beendete Jan den Support für das Projekt. Ihm ging es nur über das Erproben des Konzepts als solches. Auch LUFS, eine entscheidende Komponente, wird nicht länger supported.

Eine andere Möglichkeit ist Paragons NTFS für Linux (ein proprietärer Kerneltreiber für Linux). Für läppische 70 US-Dollar können Sie deren nur als Binary verfügbaren Treiber für jeden Linuxkernel (2.0, 2.4 oder 2.6) installieren. Das ist an sich schon sehr ordentlich. Was den NTFS-Treiber betrifft, funktioniert es, aber sie sagen nicht wie. Ich glaube kaum, dass sie es durch das Lesen unserer Dokumentation geschafft haben, weshalb ich vermute, dass sie ein NDA (Nicht-Veröffentlichungs-Übereinkommen) mit Microsoft haben. Ich habe es nicht ausprobiert, aber Berichte behaupten, dass es genau das macht, was man erwartet. Sie können Dateien und Verzeichnisse erstellen und entfernen.

Die letzte Lösung ist es, den Spieß umzudrehen. Wenn man nicht auf NTFS von Linux aus schreiben kann, muss man Windows beibringen, wie es ext2 lesen kann. John Newbiggins Treiber für Windows macht genau das. Explore2fs gibt Ihnen einen explorerähnlichen Blick auf Ihre Linuxpartition.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung