logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
      Anzeige

Erschienen in LinuxUser 08/2000

LTOOLS - Lesen und Schreiben von Linux-Dateien unter Windows 9x und Windows NT

Friedliche Koexistenz

von Prof. Werner Zimmermann


Ungeliebt, aber unvermeidlich: Auch der eingefleischteste Linuxer kann es nicht vermeiden, ab und zu doch mal Windows auf seinem Rechner zu booten, z. B. weil ein freundlicher, aber unbelehrbarer Kollege an die gerade eingegangene Mail ein Office-Dokument angehängt hat und es für das brandaktuelle Office 2010- Format halt im Augenblick nur unter Windows einen Datei-Viewer gibt ... Kaum hat man allerdings Windows gestartet, fällt einem ein, dass man genau diese Mail und ihr ungeliebtes Anhängsel auf der Extended-2-Linux-Partition gespeichert hat. Also rebooten, Linux starten, auf eine Windows-lesbare Partition kopieren, erneut Windows booten und ... Halt! Unnötig, gibt es doch die LTOOLS, mit denen man Dateien auf Linux-Partitionen auch von Windows aus lesen und schreiben kann.

Die LTOOLS [1] sind unter Windows das, was die MTOOLS unter Linux sind. Sie können auf Dateien im "feindlichen" Dateisystem zugreifen, wenn Sie schnell mal eine Datei oder ein Verzeichnis suchen oder eine Datei kopieren wollen.

Kommandozeile allerorten

Den Kern der LTOOLS bildet ein Bündel von Kommandozeilenprogrammen, die, unter DOS oder im DOS-Fenster von Windows 9x oder Windows NT aufgerufen, ungefähr dieselbe Funktionalität bereitstellen wie die Linux-Befehle ls, cp, rm, chmod, chown und ln. Damit lassen sich unter Windows

Die gesamte Funktionalität ist UNIX-artig in einem einzigen ausführbaren Programm realisiert, das mit einer Vielzahl von Parametern gefüttert werden will. Da sich aber kaum jemand ein halbes Dutzend Parameter merken oder gar eintippen wird, existieren zusätzliche Skripte, unter DOS/Windows Batchfiles genannt, die das übernehmen.

Und Java ist auch schon drin ...

Kommandozeile ist out, Programme sind nur schick mit Klick! - Also brauchen die LTOOLS natürlich auch eine graphische Benutzeroberfläche. Mit dem Programm LTOOLgui steht für die LTOOLS eine graphische Benutzeroberfläche zur Verfügung, die auf den aktuellen Swing- Bibliotheken aus Java 2 basiert (Abb. 1). Das Programm bietet zwei Fensterhälften im Windows-Explorer-Stil, in denen die Verzeichnisstruktur jeweils eines DOS/Windows- und eines Linux-Laufwerks dargestellt und mit den üblichen Klickaktionen navigiert werden kann. Kopieren von Dateien in beiden Richtungen ist mit Copy-and-Paste oder durch Drag-and-Drop möglich. Ein Klick mit der rechten Maustaste öffnet einen Dialog, in dem die Dateiattribute angezeigt und verändert werden können. Durch Doppelklicken auf eine Datei wird diese gestartet oder mit der unter Windows registrierten Anwendung geöffnet. Das funktioniert übrigens auch bei Linux-Dateien, sofern es für diese unter Windows eine geeignete Anwendung gibt.

Man kann LTOOLgui übrigens auch einfach als Dateimanager unter Linux einsetzen. Dabei ist's dann ganz nett, dass es für die Kommandozeilenprogramme auch eine Linux-Variante gibt. Auf diese Weise kann man nämlich auch auf Festplattenpartitionen zugreifen, die gerade gar nicht 'gemountet' sind.


Abbildung 1: LTOOLgui - Java-Benutzeroberfläche für die LTOOLS

Geht's auch im Internet?

Keine Frage, ein modernes Programm muss nicht nur eine schicke Oberfläche haben, es muss unbedingt auch über's Internet bedienbar sein. Daher kann man sich über den Connect-Button von LTOOLgui mit einem anderen Rechner verbinden, auf dem LREADjav läuft.LREADjav ist ein einfacher Server-Daemon, der TCP/IP- Anfragen der LTOOLgui in Aufrufe der LTOOLS-Kommandozeilenprogramme umsetzt und deren Ausgabe wieder über TCP/IP an LTOOLgui überträgt (Abb. 2). Auf diese Weise kann man also vom lokalen Rechner aus, auf dem LTOOLgui gestartet wird, auf die Linux-Dateien eines entfernten Rechners zugreifen, als ob sie auf der lokalen Festplatte wären. Im Augenblick ist das eher eine Spielerei, zumal es an einem vernünftigen Zugriffsschutz mangelt. In der Defaulteinstellung lässt LREADjav nur lokale Zugriffe zu, es kann aber beim Start so konfiguriert werden, dass bis zu 3 Benutzer mit bekannten IP-Nummern auch von fremden Rechnern aus zugreifen können. Eine echte Authentifizierung mit Passwortüberprüfung oder ähnlichem erfolgt aber nicht. Falls Sie, liebe Leser, wirklich einen sinnvollen Einsatz dafür haben, lässt sich das aber leicht nachrüsten.


Abbildung 2: LTOOLgui im Remote-Betrieb

Und was ist, wenn ich kein Java habe?

Gibt's solche Anwender eigentlich noch? - Na klar, vielleicht musste der Anwender ja die JVM und die Java Classfiles löschen, um das letzte Gigabyte seiner Festplatte für's neueste Office 2010-Update frei zu machen. Da genau dieser Anwender aber seinen Webbrowser ganz sicher nicht gelöscht hat, weil er ja sonst die notwendigen Service Packs nicht herunterladen könnte, kann leicht Abhilfe geschaffen werden. Starten Sie dazu das Programm LREADsrv und geben Sie als URL im Webbrowser http://localhost ein und schon sehen Sie Ihr Linux-Dateisystem im Webbrowser (Abb. 3). LREADsrv ist ein kleiner lokaler Webserver, der dynamische HTML-Dateien erzeugt und mit einem Pseudo-CGI-Interface den Zugriff auf die LTOOLS über's HTTP-Protokoll ermöglicht (Abb. 4). Auch das geht selbstverständlich sowohl lokal als auch remote; der Zugriffsschutz ist aber ähnlich rudimentär wie bei LREADjav.

Mit dem Webbrowser zu arbeiten ist nicht ganz so komfortabel wie mit der Java-Oberfläche, weil die Bedienung über HTML-Formulare mangels Drag- and-Drop und ähnlicher Annehmlichkeiten etwas umständlicher ist. Aber es funktioniert. Außerdem hatte ich für ein anderes Projekt ohnehin einen kleinen Webserver schreiben müssen. Und wenn man den Code schon einmal hat, ...


Abbildung 3: Mit dem Internet Explorer in Linux-Dateien browsen


Abbildung 4: Zugriff auf Linux-Dateien über einen Webbrowser

Wie steht es mit der Sicherheit?

Natürlich sind die LTOOLS eine potentielle Sicherheitslücke. Jedermann, der die LTOOLS auf einem Rechner starten kann, kann im Linux- Dateisystem auf diesem Rechner beliebige Änderungen vornehmen, z. B. Zugriffsrechte von Dateien oder deren Besitzer ändern, Passwortdateien austauschen usw.. Das geht allerdings mit jedem gewöhnlichen Diskeditor auch, mit den LTOOLS ist es vielleicht nur ein wenig komfortabler. Wirklich gefährlich kann es aber nur werden, wenn der Rechner unter DOS/Windows 9x arbeitet. Unter Windows NT braucht der Anwender zumindest Administratorrechte, sonst kann er die Festplatte noch nicht einmal lesen. Unter Unix kann auch nichts passieren, wenn die Zugriffsrechte auf die "Raw devices" /dev/hda, hda1, ... für den Normalanwender gesperrt sind, wie bei Standardinstallationen üblich.

Im übrigen sind die LTOOLS ja Open Source. Wenn Sie den Schreibzugriff für zu gefährlich halten, kommentieren Sie in main.c einfach das Abfragen des Kommandozeilenparameters -write aus. Wenn Ihnen das nicht ausreicht, dann bauen Sie einfach auch zum Lesen einen Passwortmechanismus ein.

Wettbewerber?

Die LTOOLS sind natürlich nicht die einzige Möglichkeit, auf Linux-Dateien unter Windows zuzugreifen. Schon historisch, nämlich von 1996, ist Claus Tondering's Ext2tool [2], ein Satz von Kommandozeilenprogrammen, der aber leider nur Lesezugriff erlaubt und unter Windows NT nicht funktioniert. Darauf aufbauend hat Peeter Joot 1997 eine Windows-NT-Version, aber ebenfalls nur mit Lesezugriff, realisiert [3]. Beide Tools sind in C geschrieben und im Quellcode erhältlich.

Mit einer schicken graphischen Oberfläche ist Explore2fs von John Newbigin ausgestattet, das unter Windows 9x und Windows NT läuft [4]. Die Funktionalität insgesamt ist ähnlich wie bei den LTOOLS, wenn deren JAVA- Oberfläche LTOOLgui eingesetzt wird. Auf UNIX-Systeme oder andere Plattformen dürfte es, da in Delphi geschrieben, dagegen nur schwer portierbar sein.

Historisches

Die LTOOLS sind nicht über Nacht entstanden. Die erste Version wurde, noch unter dem Namen lread, von Jason Hunter und David Lutz an der Willamette University, Salem/Oregon (USA) geschrieben. Auf der Suche nach einem geeigneten Werkzeug stolperte ich bei einer Web-Recherche 1996 über dieses Programm, probierte es aus - und siehe da: Es funktionierte auf meinem Rechner nicht! Jason und David hatten schlicht nicht damit gerechnet, dass jemand für Linux statt einer primären auch eine erweiterte Partition verwenden könnte. Nachdem das Problem verstanden und notdürftig behoben war und dabei einige weitere vermeintliche Schwachstellen entdeckt wurden, ergab eine Email-Diskussion mit Jason und David, dass ich die Pflege und Weiterentwicklung übernehmen sollte.

In der ersten Version konnte das Programm nur Verzeichnisse anzeigen und Dateien von Linux nach DOS kopieren, die Festplattengröße war der damaligen Zeit entsprechend (!) auf 512MB begrenzt. Schrittweise lernten die LTOOLS dann mit größeren Platten umzugehen, SCSI-Platten anzusprechen, Linux-Dateien auch zu schreiben, nicht nur unter DOS, sondern auch unter Windows 9x und dann auch unter Windows NT zu funktionieren, wurden zurück nach UNIX portiert, um sie auch unter Solaris und sogar unter Linux selbst einsetzen zu können, bekamen eine Webbrowser-basierte und eine Java-basierte graphische Oberfläche usw. usw.. Viele Linux-Anwender haben bei der Fehlersuche und -beseitigung mitgeholfen. Die wichtigsten sind im Quelltext namentlich genannt. Danke!

Mittlerweile sind die LTOOLS bei Versionsnummer 4.9 angekommen, wahrscheinlich noch höher, wenn dieser Artikel erscheint, und haben eine Menge an Bugfixes gesehen, aber vermutlich wurden neben vielen neuen Features auch eine Menge neuer Bugs eingebaut. Ein ständiges Problem sind die immer größer werdenden Festplatten. Schon historisch sind die 512MB-Grenze und die 2GB-Grenze für DOS-Partitionen, die vom PC-BIOS verursachte 8GB-Grenze sowie die diversen Schwierigkeiten, die Windows NT bei 2, 4 und 8GB hat. Die LTOOLS haben darunter immer wieder gelitten, weil neue Methoden für das eigentlich so einfache Lesen und Schreiben der rohen Daten-Bytes von der Platte eingebaut werden mussten. Und weil die verschiedenen Disk-Manager und Festplattenpartitionierungsprogramme diese Grenzen immer wieder in unkonventioneller Weise übersprungen haben, weil die technologische Entwicklung bei den Festplatten viel schneller abläuft als die Standardisierungsanstrengungen der PC-Hersteller folgen können. Also nicht böse sein, falls die LTOOLS auf Ihrer superneuen 100GB-Platte mit der 64GB-ext2-Partition, der 32GB-Swap-Partition und den restlichen 4GB für Windows nicht funktionieren sollten, sondern einfach bei der Weiterentwicklung mithelfen ...

Und vergessen Sie nicht: Benutzung auf eigene Gefahr! Beim Lesen von Linux- Dateien kann eigentlich nicht viel passieren. Beim Schreiben von Linux- Dateien, insbesondere aber beim Löschen oder auch nur Ändern der Dateiattribute können die LTOOLS, und Sie als Anwender (!), eine Menge Unsinn anstellen. Daher: Always keep a backup! (ahu)

Infos

[1] http://www.it.fht-esslingen.de/~zimmerma/software/ltools.html: Die LTOOLS-Homepage.
[2] http://metalab.unc.edu/pub/Linux/system/filesystems/ext2/ext2tool_1_1.lsm: Claus Tondering's Ext2tool
[3] http://metalab.unc.edu/pub/micro/pc-stuff/Linux/utils/dos/ext2nt.lsm: Peeter Joot's Ext2nt
[4] http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm: John Newbigin's Explore2fs

Der Autor

"Im wirklichen Leben" lehrt Werner Zimmermann Regelungstechnik, Digital- und Rechnertechnik an der FH Esslingen - Hochschule für Technik. Systemnahe Programmierung für und unter Linux hat er 1994 begonnen, weil er sich geärgert hat, dass sein damaliges CDROM-Laufwerk unter Linux nicht lief ... So entstand der Kerneltreiber 'aztcd.c', der bis heute fester Bestandteil aller Linux-Kernel ist und auch in der neuesten Kernelversion noch funktioniert, obwohl das Laufwerk selbst inzwischen hoffnungslos veraltet ist. Die LTOOLS entstanden, weil seine Dateien ständig auf der falschen Festplatte gespeichert waren (siehe oben) ... Außerdem musste er den "richtigen" Softwareentwicklern ja 'mal zeigen, dass einer, der eigentlich aus dem "Embedded Control"-Bereich (Kfz- Elektronik) kommt, im Zweifel auch auf "anständigen" Rechnern und mit "erwachsenen" Betriebssystemen ein lauffähiges Stück Software zu Wege bringt. Zu erreichen ist er über http://www.it.fht-esslingen.de/~zimmerma.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Seite drucken | Feedback zu dieser Seite | Datenschutz | © 2018 COMPUTEC MEDIA GmbH

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [EasyLinux] [Linux-Community]