PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : windows partition read-only unter mandrake 10



easyfragger
02.12.04, 10:47
Hallo Leute,

habe gerade Mandrake 10 installiert, doch jetzt kann ich auf meine Windows-Partitionen nur zum Lesen zugreifen (auch als root). Von der Suse war ich es gewohnt, dass ich voll (Lesen+Schreiben) auf alle Partitionen zugreifen kann. Das sollte sich doch auch mit Mandrake einrichten lassen, aber wie? Ich habe leider keine Ahnung, aber füge hier mal den output von "df -Th" hinzu, vielleicht hilft es ja..

/dev/sda2 reiserfs 20G 9,9G 11G 50% /
/dev/sda3 ntfs 56G 52G 3,6G 94% /mnt/win_c2
/dev/hda1 ntfs 9,8G 6,6G 3,2G 68% /windows/C
/dev/hda5 vfat 14G 12G 1,9G 87% /windows/E
/dev/hda6 vfat 16G 8,0G 7,4G 52% /windows/F

Gandalf

RedEdison
02.12.04, 10:54
Hi,

bei SuSE ist das mittlerweile auch nicht mehr möglich. Du brauchst "captive" (www.jankratochvil.net/project/captive), das mit den originalen Microsoft-Treibern eine NTFS-Sandbox emuliert. Läuft bei mir ganz gut!

Gruß,
RedEdison

Dirk_St
02.12.04, 11:27
Die /etc/fstab musst Du ändern.

Hier sollte für die Zeilen mit den Windowspartitionen
in den Optionen umask=0 und user(s) eingefügt werden.

Alternativ geht das auch im Mandrake-Kontrollzentrum
( configure your computer - im K-Menu - System )
Hier wird beim Aufruf das Root-Password verlangt,
anschliessend Einhängepunkte auswählen.

Im erscheinenden Partitionierungsprogramm die
Partitionen auswählen und Erweiterte Optionen
( oder war dat Experten ?? )

Dort kannst Du dann einstellen, das auch USER
schreibenden Zugriff auf andere Partitionen
haben.

Vorsicht : Deine Laufwerke E: und F: sind FAT32
Diese kannst Du ohne Sorge schreibbar machen
Für LW C: gilt entweder Nur Lesen oder
die captive-Treiber installieren.

mfg Dirk

easyfragger
02.12.04, 11:43
Das geht hier ja superschnell mit den Antworten! Auf Laufwerke E und F kann ich jetzt schon schreiben, für die anderen gucke ich mir mal captive an .. vielen Dank!

Gandalf

RedEdison
02.12.04, 11:55
Zu Captive habe ich so eine Art DAU-HowTo geschrieben, da ich meinen Kollegen hier in der Firma die ersten Schritte in Linux zeigen soll. Wenn Du Interesse hast, kann ich sie Dir auch mailen bzw. hier posten.

Gruß,
RedEdison

easyfragger
02.12.04, 12:02
tatsächlich könnte ich etwas Hilfe zu captive gebrauchen - captive-install-acquire bleibt bei mir nämlich auf der treibersuche hängen und reagiert nicht mehr. zwar habe ich jetzt zwei partitionen (?) /mnt/captive-* eingetragen und kann da auch drauf schreiben, aber die daten landen noch nicht auf der richtigen win-ntfs partition..
wenn du hier also ein howto posten könntest (das interessiert ja vermutlich noch mehr leute), würde mir das durchaus helfen.

gandalf

RedEdison
02.12.04, 12:52
wenn du hier also ein howto posten könntest (das interessiert ja vermutlich noch mehr leute), würde mir das durchaus helfen.

gandalf


kommt sofort...


Auf NTFS-Partitionen schreiben

Der Linux-Kernel enthält standardmäßig nur einen Read-only-Treiber für das NTFS-Dateisystem. Im Folgenden wird beschrieben, wie Sie dennoch auf NTFS-Partitionen schreiben können (s.a. ct 4/2004, S. 200). Bitte beachten Sie, daß damit ein gewisses Risiko verbunden ist, das schlimmstenfalls Datenverlust zur Folge haben kann. Nutzen Sie dieses Verfahren daher nur im Notfall und am besten nicht auf der Windows-Systempartition!
Alternativ können Sie auch von Windows aus Ext2- und Ext3- Partitionen lesen, dieses Verfahren ist einfacher und auch sicherer.

Zunächst benötigen Sie den NTFS-Treiber Captive von Jan Kratochvil (www.jankratochvil.net/project/captive). Dieses Tool nutzt den originalen Microsoft-Treiber ntfs.sys und sperrt ihn in eine Sandbox ein. Hier gaukelt es dem Treiber seinen gewohnten Lebensraum vor und emuliert die nötigen Funktionen des XP-Kernels. Wenn Sie bei der Installation von Linux die Selektion C/C++ Compiler und Werkzeuge installiert haben, können Sie die heruntergeladene .rpm-Datei im Konqueror anklicken und mit dem Button Install Package with YaST installieren.
Da die weitere Installation statt in der Kommandozeile auch in grafischen X-Fenstern ablaufen kann, sollten Sie zunächst root das Recht einräumen, Fenster auf der X-Window-Oberfläche öffnen zu dürfen. (standardmäßig darf dies nur der aktuell eingeloggte user! Auch z.B. YaST-Aufrufe, die dann freilich das root-Kennwort verlangen, wurden vom user initiiert).
Öffnen Sie eine Benutzer-shell und geben Sie den Befehl

xhost +localhost

ein. Mit

sux -

erhalten Sie eine root-shell, aus der heraus Sie Fenster öffnen können.
Stellen Sie sicher, daß die Windows-Systempartition aktuell gemountet ist (z.B. /windows/C). Das Tool captive-install-acquire fahndet auf den angeschlossenen Festplatten vollautomatisch nach einer Windows-Installation, der es die Systemdateien entnehmen kann (unbedingt notwendig sind die Dateien ntfs.sys und ntoskrnl.exe). Starten Sie dieses Tool mittels

/usr/sbincaptive-install-aquire

Daraufhin öffnet sich ein Fenster mit ein paar selbsterklärenden Nachfragen. Nach Abschluß der Suche hat captive die Datei /etc/fstab mit Einträgen für die NTFS-Partitionen erweitert. Damit man nicht nur als root das Recht hat, auf diese Partitionen zu schreiben, sollte man die entsprechenden Zeilen anpassen. Öffnen Sie die /etc/fstab mit einem Editor. Sie sehen u.a z.B. folgende Zeilen:

...
/dev/sda2 /mnt/captive-tcs captive-ntfs defaults,noauto 0 0
/dev/sda3 /mnt/captive-daten captive-ntfs defaults,noauto 0 0
...

Fgen Sie den Zeilen für die captive-Partitionen die Optionen uid=1000 und gid=1000 hinzu, so daß die rechte Spalte nun wie folgt aussieht:

[...] captive-ntfs defaults,uid=1000,gid=1000,noauto 0 0
[...] captive-daten defaults,uid=1000,gid=1000,noauto 0 0


Jetzt muß zunächst die bereits gemountete Windows-Partition wieder aus dem Dateisystem ausgehangen werden, um sie im nächsten Schritt mit Schreib-/Lese-Rechten wieder einzubinden. Im folgenden wird davon ausgegangen, daß Sie auf die D:\-Partition von Windows zugreifen möchten, die unter Linux in /windows/D eingehangen wurde. Schließen Sie alle Programme, die auf /windows/D zugreifen, öffnen Sie eine root-Shell und geben sie folgendes Kommando ein:

umount /windows/D

Wenn daraufhin die Fehlermeldung "Das Gerät wird momentan noch benutzt" erscheint, sind noch ein oder mehrere Prozesse aktiv, die auf /windows/D zugreifen. Schließen Sie alle Fenster, die auf das Verzeichnis zugreifen, z.B. shell, Konqueror etc. Sollte das Gerät danach immer noch nicht frei sein, können Sie sich mit

lsof | grep /windows/D

die verantwortlichen Prozesse bzw. deren Prozessnummern anzeigen lassen (die drei- oder vierstellige Zahl in der zweiten Spalte). Hinweis: bei dem senkrechten Strich handelt es sich um das Pipe-Zeichen, Tastankombination <Alt Gr> + <. Die zugreifenden Prozesse gilt es nun nacheinander anhand ihrer Prozessnummern mit dem kill-Kommando zu beenden:

kill 3419
kill ....

(entsprechend den bei Ihnen angezeigten Nummern.)

Das Einbinden der Partition mit Schreib- Lesezugriff geschieht, wiederum von einer root-shell aus, mit dem Befehl

mount /mnt/captive-tcs (entsprechend anzupassen).

Weitere Stichworte zur Partitionsverwaltung sind neben mount und umount auch fstab, mtab und Kdiskfree. Zur Benutzer- und Gruppenrechteverwaltung finden Sie Hilfe unter den Stichw?tern chmod, chown, gid, uid und umask.


- ohne Gewähr -



Gruß,
RedEdison

easyfragger
03.12.04, 10:54
Hallo RedEdison, vielen Dank für die Hilfe. Ich konnte mit Deiner Anleitung die captive-Treiber zum Laufen bringen, musste nur statt uid=1000, gid=1000 meinen usernamen eintragen, damit ich auch als normaler Benutzer Schreibrechte bekomme.
Leider ist die Schreibgeschwindigkeit bescheiden, ich komme auf ca 600 kB/s, im Gegensatz zu ca 10 MB/s auf den anderen Partitionen. Kann man das noch optimieren?
Und als letzte Frage (dann bin ich auch wirklich zufrieden ;-): Wie kann ich dem Betriebssystem (bei mir Mandrake 10) mitteilen, dass es jeweils beim Start die captive-Partitionen einhängen soll, damit ich mich nicht immer erst als root einloggen, alte Partition aus- und captive einhängen muss?

MfG und nochmal vielen Dank,

Gandalf

easyfragger
03.12.04, 11:44
Probleme mit captive

Die anfängliche Begeisterung über captive lässt bei mir gerade etwas nach: Beim Verschieben von Dateien auf die captive Partition kamen da nur Bruchstücke an, viele 0 Byte groß :(
Nachdem es anfangs - wenn auch langsam - lief, bekam ich plötzlich beim Versuch, ein Verzeichnis auf der captive Partition aufzulisten, "Connection refused" als Antwort .. scheint insgesamt leider noch nicht so glatt zu laufen, dieses captive.

Gandalf

RedEdison
03.12.04, 12:20
Probleme mit captive

Die anfängliche Begeisterung über captive lässt bei mir gerade etwas nach:

Hi nochmal!

Aalso: den langsamen Zugriff via captive kann ich bestätigen, wenngleich es bei mir etwas mehr als 600kB/s waren (so vom Gefühl her). Ich habe hier (in der Firma) aber auch einen 3,4 GHz-Intel-Rechner vor mir, vielleicht ist es deshalb etwas schneller. Wie gesagt, captive läßt die originalen Treiber in ner Sandbox laufen, das kostet einiges an Rechenzeit. Den Hinweis, daß es bei Dir nicht mit uid,gid=1000 geklappt hat, werde ich aufnehmen, danke!

Tja, und was den Datenverlust angeht, habe ich leider auch keine Idee. Du kannst Dir ja während des Kopierens mal die Kernelmeldungen ansehen, tail -f /var/log/messages in ner Konsole. Vielleicht wäre die Frage mal nen neuen Thread wert, dann könnte man sehen, ob es ein generelles Problem ist oder nicht. Meine Erfahrungen sind ja durchaus positiv. Zur Hardware bei mir:

3,4 GHz P4,
Tyan S5101,
1 GB DDR-RAM,
250 GB SATA-Platte (Maxtor)
SuSE Linux 9.1, Kernel 2.6.4-52-smp
(wie gesagt, Firma... :) )

Gruß,
RedEdison