Zugriff auf Windows-Partitionen: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Artikel neugeschrieben bzw. komplett überarbeitet. Übersicht Möglichkeiten um auf Winpartitionen zuzugreifen, einhängen von win-partitionen dokumentiert usw..)
K (cleanup)
Zeile 1: Zeile 1:
 
=Zugriff auf Windowspartitionen=
 
=Zugriff auf Windowspartitionen=
 
In der Vergangenheit war der gemeinsame Datenaustausch zwischen Linux- und Windowssystemen innerhalb eines Systemes sehr problematisch. Windows unterstützt von Haus aus lediglich zwei verschiedene Dateisysteme:
 
In der Vergangenheit war der gemeinsame Datenaustausch zwischen Linux- und Windowssystemen innerhalb eines Systemes sehr problematisch. Windows unterstützt von Haus aus lediglich zwei verschiedene Dateisysteme:
*[http://de.wikipedia.org/wiki/File_Allocation_Table FAT] (File Allocation Table)
+
*[http://de.wikipedia.org/wiki/File_Allocation_Table FAT] (File Allocation Table) und  
und  
 
 
*[http://de.wikipedia.org/wiki/NTFS NTFS] (New Technology File System)
 
*[http://de.wikipedia.org/wiki/NTFS NTFS] (New Technology File System)
  
Für andere, offene Dateisysteme wie [http://de.wikipedia.org/wiki/Ext3 EXT3] oder  [http://de.wikipedia.org/wiki/ReiserFS ReiserFS] bietet Microsoft keine Unterstützung an. Das beudetet, dass man für die [http://de.wikipedia.org/wiki/Interoperabilität Interoperabilität] des Datenaustausch grundsätzlich auf den gemeinsamen Nenner NTFS bzw. FAT angewiesen ist. Genau hier liegt auch der Knackpunkt, denn Linux unterstützt von Haus aus nur den vollen Zugriff auf FAT-Partitionen.  
+
Für andere, offene Dateisysteme wie [http://de.wikipedia.org/wiki/Ext3 ext3] oder  [http://de.wikipedia.org/wiki/ReiserFS ReiserFS] bietet Microsoft keine Unterstützung an. Das beudetet, dass man für die [http://de.wikipedia.org/wiki/Interoperabilität Interoperabilität] des Datenaustausch grundsätzlich auf den gemeinsamen Nenner NTFS bzw. FAT angewiesen ist. Genau hier liegt auch der Knackpunkt, denn Linux unterstützt von Haus aus nur den vollen Zugriff auf FAT-Partitionen.
FAT32 an sich ist eigentlich nur ein Überbleibsel aus alten MSDOS/Windows 95/98/ME-Tagen. Seit Windows NT verwendet Microsoft für seine Betriebssysteme standardmäßig NTFS als Dateisystemen. Dem Fat-Dateisystem merkt man das Alter zunehmend an, so ist z.B. das Setzen von Benutzerrechten gar nicht erst möglich und die maximale Dateigröße ist auf 4 Gigabyte beschränkt. Dennoch, der Zugriff auf FAT-Partitionen von Linux aus gestaltet sich als völlig problemlos.
+
FAT32 an sich ist eigentlich nur ein Überbleibsel aus alten MSDOS/Windows 95/98/ME-Tagen. Seit Windows NT verwendet Microsoft für seine Betriebssysteme standardmäßig NTFS als Dateisystem. Dem FAT-Dateisystem merkt man das Alter zunehmend an, so ist z.B. das Setzen von Benutzerrechten gar nicht erst möglich und die maximale Dateigröße ist auf 4 Gigabyte beschränkt. Dennoch, der Zugriff auf FAT-Partitionen von Linux aus gestaltet sich als völlig problemlos.
Anders sieht die Situation da für NTFS aus. Da NTFS ein proprietäres Dateisystem ist (das heißt die genaue Funktionsweise kennt nur Microsoft) war das Schreiben auf NTFS-Partitionen lange zeit unter Linux nicht möglich. Erst in den letzten Jahren sind einige viel versprechende Projekte ins Leben gerufen worden, die das Schreiben auf Partitionen dieses Dateisystem nun unterstützen. Hier eine Auflistung der verschiedenen Treiber:
+
Anders sieht die Situation für NTFS aus. Da NTFS ein proprietäres Dateisystem ist (das heißt, die genaue Funktionsweise kennt nur Microsoft) war das Schreiben auf NTFS-Partitionen lange Zeit unter Linux nicht möglich. Erst in den letzten Jahren sind einige viel versprechende Projekte ins Leben gerufen worden, die das Schreiben auf Partitionen dieses Dateisystem nun unterstützen. Hier eine Auflistung der verschiedenen Treiber:
  
*'''Kernel-Treiber''' - Der Kernel-Treiber war lange Zeit nur in der Lage NTFS-Partitionen schreibgeschützt (ReadOnly) in das System zu mounten. Ab Kernel 2.6.7 konnten lediglich schon existierende und nicht schreibgeschützte Dateien sicher geändert bzw. überschrieben werden, wenn sich dabei die Dateigröße nicht änderte. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wurde noch nicht unterstützt. Mitlerweile (seit Kernel 2.6.12) wird das Schreiben nicht einmal mehr als experimentell bezeichnet, dennoch sind mit diesem Treiber viele Einschränkungen noch vorhanden. Seit 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.
+
*'''Kernel-Treiber''' - Der Kernel-Treiber war lange Zeit nur in der Lage NTFS-Partitionen schreibgeschützt (ReadOnly) zu mounten. Ab Kernel 2.6.7 konnten lediglich schon existierende und nicht schreibgeschützte Dateien sicher geändert bzw. überschrieben werden, wenn sich dabei die Dateigröße nicht änderte oder verkleinerte. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wurde noch nicht unterstützt. Mitlerweile (seit Kernel 2.6.12) wird das Schreiben nicht einmal mehr als experimentell bezeichnet, dennoch sind mit diesem Treiber viele Einschränkungen noch vorhanden. Seit 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.
  
 
*'''[http://wiki.linux-ntfs.org/doku.php?id=ntfsmount ntfs-mount]''' Dieser Treiber basiert auf [http://de.wikipedia.org/wiki/FUSE FUSE] (Filesystem in User Space) und ist somit für Betriebssysteme mit FUSE-Unterstützung verfügbar. Er erlaubt das Mounten von NTFS-Partitionen mit Schreibunterstützung. Das Schreiben auf der Partitionen kann zwar fehlschlagen, aber das Dateisystem wird bei einem Fehler nicht beschädigt.
 
*'''[http://wiki.linux-ntfs.org/doku.php?id=ntfsmount ntfs-mount]''' Dieser Treiber basiert auf [http://de.wikipedia.org/wiki/FUSE FUSE] (Filesystem in User Space) und ist somit für Betriebssysteme mit FUSE-Unterstützung verfügbar. Er erlaubt das Mounten von NTFS-Partitionen mit Schreibunterstützung. Das Schreiben auf der Partitionen kann zwar fehlschlagen, aber das Dateisystem wird bei einem Fehler nicht beschädigt.
Zeile 22: Zeile 21:
 
== Grundlegendes zum Einbinden von Partitionen  ==
 
== Grundlegendes zum Einbinden von Partitionen  ==
  
Unter Linux gibt es keine Laufwerkbuchstaben. Wenn man auf ein anderes Dateisystem, Festplatte, bzw. auf eine andere Partition zugreifen will, so muss man diese(s) zuvor mounten. Das bedeutet, der Datenträger wird im Verzeichnisbaum an einer bestimmten Stelle eingehängt. Man kann Dateisysteme beim Hochfahren auch automatisch mounten lassen.  
+
Unter Linux gibt es keine Laufwerkbuchstaben. Wenn man auf ein anderes Dateisystem, Festplatte, bzw. auf eine andere Partition zugreifen will, so muss man diese(s) zuvor mounten. Das bedeutet, dass der Datenträger wird im Verzeichnisbaum an einer bestimmten Stelle eingehängt wird. Man kann Dateisysteme beim Hochfahren auch automatisch mounten lassen.  
  
 
Dazu muss ein Eintrag in der Datei  
 
Dazu muss ein Eintrag in der Datei  
<pre>/etc/fstab</pre>
+
<code>/etc/fstab</code>
 
vorgenommen werden. Wenn ein solcher Eintrag existiert kann man die Dateisysteme auch mit  
 
vorgenommen werden. Wenn ein solcher Eintrag existiert kann man die Dateisysteme auch mit  
<pre>mount /mountpoint</pre>
+
<code>mount /mountpoint</code>
bzw mit  
+
bzw. mit  
<pre>umount /mountpoint</pre> ein- bzw. aushängen, da sich die Befehle die nötigen Informationen aus der /etc/fstab holen.
+
<code>umount /mountpoint</code> ein- bzw. aushängen, da sich die Befehle die nötigen Informationen aus der <code>/etc/fstab</code> holen.
  
  
'''Bitte seid bei Änderungen in der /etc/fstab vorsichtig. Bei Syntaxfehlern kann es zu Problemen beim Systemstart kommen.'''
+
'''Bitte seid bei Änderungen in der <code>/etc/fstab</code> vorsichtig. Bei Syntaxfehlern kann es zu Problemen beim Systemstart kommen.'''
  
  
Zeile 50: Zeile 49:
 
Wenn alle Benutzer auf die Windows-Partition zugreifen sollen, muss man weitere Optionen hinzufügen.
 
Wenn alle Benutzer auf die Windows-Partition zugreifen sollen, muss man weitere Optionen hinzufügen.
  
Damit alle in der Lage sind die Partition ein- bzw. auszuhängen muss man die Option '''users''' an die fstab übergeben.
+
Damit alle in der Lage sind die Partition ein- bzw. auszuhängen, muss man die Option '''users''' an die fstab übergeben.
 
Wenn man '''user''' anstelle von '''users''' verwendet, dürfen zwar alle Benutzer die Partition mounten, aber nur derjenige, der sie eingahangen hat, darf sie unmounten.
 
Wenn man '''user''' anstelle von '''users''' verwendet, dürfen zwar alle Benutzer die Partition mounten, aber nur derjenige, der sie eingahangen hat, darf sie unmounten.
  
Windowspartitionen kennen nicht wie Linuxpartitionen die übliche Aufteilung zwischen User, group und others.
+
Windowspartitionen kennen nicht wie Linuxpartitionen die übliche Aufteilung zwischen User, Group und Others.
 
Um dennoch Gruppen- und Benutzerangaben festlegen zu können, muss man hier der fstab die Optionen '''uid''' und '''gid''' mitteilen.
 
Um dennoch Gruppen- und Benutzerangaben festlegen zu können, muss man hier der fstab die Optionen '''uid''' und '''gid''' mitteilen.
 
Die folgende Zeile würde z.B.
 
Die folgende Zeile würde z.B.
 
<pre>/dev/hda1 /mnt vfat users,exec,gid=users,umask=000,iocharset=utf8 0 0</pre>
 
<pre>/dev/hda1 /mnt vfat users,exec,gid=users,umask=000,iocharset=utf8 0 0</pre>
die FAT32-Partition hda1 in das Verzeichnis /mnt/windows einhängen. Alle Benutzer dürften das Verzeichnis mounten und haben vollen Schreibzugriff.
+
die FAT32-Partition <code>hda1</code> in das Verzeichnis <code>/mnt/windows</code> einhängen. Alle Benutzer dürften das Verzeichnis mounten und haben vollen Schreibzugriff.
 
Die Gruppenzugehörigkeit läge bei der Gruppe '''users'''. Zusätzlich wurde als Zeichensatz utf8 übergeben.
 
Die Gruppenzugehörigkeit läge bei der Gruppe '''users'''. Zusätzlich wurde als Zeichensatz utf8 übergeben.
  
Zeile 65: Zeile 64:
 
===NTFS Unterstützung des Kernels===
 
===NTFS Unterstützung des Kernels===
  
NTFS-Partitionen lass sich ähnlich wie Vfat-Partitionen in das System einhängen
+
NTFS-Partitionen lassen sich ähnlich wie VFAT-Partitionen in das System einhängen.
  
 
<pre>mount -t ntfs -o ro,users,exec,gid=users,umask=0002,nls=utf8 /dev/hda1 /mnt</pre>
 
<pre>mount -t ntfs -o ro,users,exec,gid=users,umask=0002,nls=utf8 /dev/hda1 /mnt</pre>
  
Eintrag in /etc/fstab:
+
Eintrag in <code>/etc/fstab</code>:
  
 
<pre>/dev/hda1 /mnt ntfs ro,users,exec,gid=users,umask=0002,nls=utf8 0 0</pre>
 
<pre>/dev/hda1 /mnt ntfs ro,users,exec,gid=users,umask=0002,nls=utf8 0 0</pre>
Zeile 94: Zeile 93:
 
verwenden.
 
verwenden.
  
In der /etc/fstab lässt sich ntfs-3g fast analog zum vfat/ntfs-kernel-Treiber einhängen.
+
In der <code>/etc/fstab</code> lässt sich ntfs-3g fast analog zum vfat/ntfs-kernel-Treiber einhängen.
  
 
<pre>
 
<pre>

Version vom 3. März 2007, 17:31 Uhr

Zugriff auf Windowspartitionen

In der Vergangenheit war der gemeinsame Datenaustausch zwischen Linux- und Windowssystemen innerhalb eines Systemes sehr problematisch. Windows unterstützt von Haus aus lediglich zwei verschiedene Dateisysteme:

  • FAT (File Allocation Table) und
  • NTFS (New Technology File System)

Für andere, offene Dateisysteme wie ext3 oder ReiserFS bietet Microsoft keine Unterstützung an. Das beudetet, dass man für die Interoperabilität des Datenaustausch grundsätzlich auf den gemeinsamen Nenner NTFS bzw. FAT angewiesen ist. Genau hier liegt auch der Knackpunkt, denn Linux unterstützt von Haus aus nur den vollen Zugriff auf FAT-Partitionen. FAT32 an sich ist eigentlich nur ein Überbleibsel aus alten MSDOS/Windows 95/98/ME-Tagen. Seit Windows NT verwendet Microsoft für seine Betriebssysteme standardmäßig NTFS als Dateisystem. Dem FAT-Dateisystem merkt man das Alter zunehmend an, so ist z.B. das Setzen von Benutzerrechten gar nicht erst möglich und die maximale Dateigröße ist auf 4 Gigabyte beschränkt. Dennoch, der Zugriff auf FAT-Partitionen von Linux aus gestaltet sich als völlig problemlos. Anders sieht die Situation für NTFS aus. Da NTFS ein proprietäres Dateisystem ist (das heißt, die genaue Funktionsweise kennt nur Microsoft) war das Schreiben auf NTFS-Partitionen lange Zeit unter Linux nicht möglich. Erst in den letzten Jahren sind einige viel versprechende Projekte ins Leben gerufen worden, die das Schreiben auf Partitionen dieses Dateisystem nun unterstützen. Hier eine Auflistung der verschiedenen Treiber:

  • Kernel-Treiber - Der Kernel-Treiber war lange Zeit nur in der Lage NTFS-Partitionen schreibgeschützt (ReadOnly) zu mounten. Ab Kernel 2.6.7 konnten lediglich schon existierende und nicht schreibgeschützte Dateien sicher geändert bzw. überschrieben werden, wenn sich dabei die Dateigröße nicht änderte oder verkleinerte. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wurde noch nicht unterstützt. Mitlerweile (seit Kernel 2.6.12) wird das Schreiben nicht einmal mehr als experimentell bezeichnet, dennoch sind mit diesem Treiber viele Einschränkungen noch vorhanden. Seit 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.
  • ntfs-mount Dieser Treiber basiert auf FUSE (Filesystem in User Space) und ist somit für Betriebssysteme mit FUSE-Unterstützung verfügbar. Er erlaubt das Mounten von NTFS-Partitionen mit Schreibunterstützung. Das Schreiben auf der Partitionen kann zwar fehlschlagen, aber das Dateisystem wird bei einem Fehler nicht beschädigt.
  • Captive NTFS-Treiber Captive verwendet, anders als die anderen Lösungen, den Original-Treiber 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. Zudem benötigt man eine Windows-Lizenz für diesen Treiber.
  • ntfs-3g Das neueste Projekt in der Runde ist der ntfs-3g-Treiber (Weiterentwicklung von ntfs-mount). Hiermit lassen sich Dateien (sofern sie nicht verschlüsselt oder komprimiert sind) auf NTFS-Partitionen modifizieren, löschen und erstellen. Das gesamte Projekt basiert auf Reverse Engineering. Das Projekt ist mittlerweile für den produktiven Einsatz in der Version 1.0 freigegeben. Auch wenn NTFS-Berechtigungen noch nicht unterstützt werden, dürfte der komplette Schreibzugriff auf Windows-Partitionen unter Linux damit wieder etwas näher gerückt sein.


Windows Partitionen in das System einhängen

Grundlegendes zum Einbinden von Partitionen

Unter Linux gibt es keine Laufwerkbuchstaben. Wenn man auf ein anderes Dateisystem, Festplatte, bzw. auf eine andere Partition zugreifen will, so muss man diese(s) zuvor mounten. Das bedeutet, dass der Datenträger wird im Verzeichnisbaum an einer bestimmten Stelle eingehängt wird. Man kann Dateisysteme beim Hochfahren auch automatisch mounten lassen.

Dazu muss ein Eintrag in der Datei /etc/fstab vorgenommen werden. Wenn ein solcher Eintrag existiert kann man die Dateisysteme auch mit mount /mountpoint bzw. mit umount /mountpoint ein- bzw. aushängen, da sich die Befehle die nötigen Informationen aus der /etc/fstab holen.


Bitte seid bei Änderungen in der /etc/fstab vorsichtig. Bei Syntaxfehlern kann es zu Problemen beim Systemstart kommen.



Einbinden von FAT32-Partitionen

Um einge FAT-Partition in das System einzuhängen kann man den Befehl:

mount -t vfat -o users,exec,gid=users,umask=000,iocharset=utf8 /dev/hdx1 /mnt

verwenden (wobei x für den Buchstabden des Devices steht und die 1 für die Nummer der Partition).


Um die Partition direkt beim Systemstart einzubinden, fügt man einen Eintrag in der /etc/fstab hinzu:

/dev/hda1        /mnt/windows      vfat     auto,rw                0 0

Wenn alle Benutzer auf die Windows-Partition zugreifen sollen, muss man weitere Optionen hinzufügen.

Damit alle in der Lage sind die Partition ein- bzw. auszuhängen, muss man die Option users an die fstab übergeben. Wenn man user anstelle von users verwendet, dürfen zwar alle Benutzer die Partition mounten, aber nur derjenige, der sie eingahangen hat, darf sie unmounten.

Windowspartitionen kennen nicht wie Linuxpartitionen die übliche Aufteilung zwischen User, Group und Others. Um dennoch Gruppen- und Benutzerangaben festlegen zu können, muss man hier der fstab die Optionen uid und gid mitteilen. Die folgende Zeile würde z.B.

/dev/hda1 /mnt vfat users,exec,gid=users,umask=000,iocharset=utf8 0 0

die FAT32-Partition hda1 in das Verzeichnis /mnt/windows einhängen. Alle Benutzer dürften das Verzeichnis mounten und haben vollen Schreibzugriff. Die Gruppenzugehörigkeit läge bei der Gruppe users. Zusätzlich wurde als Zeichensatz utf8 übergeben.


Einbinden von NTFS-Partitionen

NTFS Unterstützung des Kernels

NTFS-Partitionen lassen sich ähnlich wie VFAT-Partitionen in das System einhängen.

mount -t ntfs -o ro,users,exec,gid=users,umask=0002,nls=utf8 /dev/hda1 /mnt

Eintrag in /etc/fstab:

/dev/hda1 /mnt ntfs ro,users,exec,gid=users,umask=0002,nls=utf8 0 0

Die zusätzlichen Mountoptionen sind analog zu denen von vfat (siehe oben).


NTFS-3g verwenden

Für ntfs-3g benötigt man folgende Pakete

  • fuse
  • ntfs-3g

Laut SuSE Doku sollen sich diese Pakete im Guru-Repository wiederfinden. Für OpenSuSE 10.2 findet man die Pakete im JengelH-repository, das man mithilfe von YaST, Smart oder APT einbinden kann.

[suser-jengelh]
type = rpm-md
name = openSUSE 10.2 Suser-Jengelh Repository
disabled = yes
baseurl = http://ftp-1.gwdg.de/pub/linux/misc/suser-jengelh/SUSE-10.2/

Um eine Partition manuell einzuhängen kann man den Befehl:

ntfs-3g -o ro,gid=users,umask=0002 /dev/sda1 /mnt

verwenden.

In der /etc/fstab lässt sich ntfs-3g fast analog zum vfat/ntfs-kernel-Treiber einhängen.

#Device      Mountpoint     Filesystem   Parameters
/dev/sda1    /Windows/C     ntfs-3g      user,users,gid=users,umask=0002    0 0


Der andere Weg

Wenn alle Stricke reißen und hier nichts wirklich brauchbar erscheint, kann man auch über einen anderen Weg nachdenken. Da Linux offene Dateisysteme verwendet und somit für jeden zugänglich sind, gibt es einige Projekte die versuchen Windows EXT2/3 kompatibel zu machen. Das Ext2 Installable File System For Windows bringt Windows dazu auf ext-Partitionen Zugriff zu bekommen.


Lesestoff & Weblinks