Home > Computer, Linux, Mac OS X > Zugriff auf Linux-Dateisysteme (XFS, ext2fs, ext3fs, ReiserFS, JFS …) unter Mac OS X

Zugriff auf Linux-Dateisysteme (XFS, ext2fs, ext3fs, ReiserFS, JFS …) unter Mac OS X

Tux

Wenn ich nun schon Mac OS X, Linux und Windows auf einem System habe, würde ich jetzt natürlich auch ganz gern von von Mac OS auf meine bestehenden Daten zugreifen.

Meine Daten sind über zwei SATA-Festplatten mit XFS-Dateisystem verteilt, eine für Musik und eine für sonstige Daten.

Unter Windows habe ich für diesen Zweck gute Erfahrungen mit coLinux und VirtualBox gemacht. Letzteres gibt es auch für Mac OS, aber unterstützt dort leider nicht den Zugriff auf phys. Festplatten (vielleicht kommt dies ja in einer späteren Version — unter Linux und Windows wird es ja unterstützt).

Meine (zugegebenermaßen nicht sonderlich elegante) Lösung für Mac OS setzt also auf das etwas weniger performante QEMU, bzw. dessen Mac-Variante Q.app. Darin habe ich die Servervariante von Ubuntu Linux 8.04 LTS „Hardy Heron” installiert.

QEMU bekommt nun Zugriff auf z.B. /dev/disk2 als zusätzliches Festplattenlaufwerk (mit der QEMU-Option -hdb /dev/disk2 erscheint diese Platte im Linux-Gast als /dev/sdb). Dieses kann nun im Linux-Gast gemountet und per Samba freigegeben werden.

Q.app gestattet die komfortable Einrichtung von Portweiterleitungen über die grafische Oberfläche. Wenn QEMU nicht als root ausgeführt wird, kann es sich allerdings nicht an Port 139 binden. Stattdessen könnte jedoch z.B. Port 1390 auf dem Wirtssystem an Port 139 auf dem Gastsystem weitergegeben werden. Leider unterstützt das von FreeBSD geerbte mount_smbfs(8) unter Mac OS X im Gegensatz zum entsprechenden Tool mount.cifs(8) aus der Samba-Suite unter Linux nicht die Angabe einer Portnummer, sondern verwendet immer Port 139.

Daher erzeuge ich (was jetzt nicht so elegant ist) einen SSH-Tunnel in die virtuelle Maschine, der den Samba-Server auf dem Wirtssystem zur Verfügung stellt (vorausgesetzt, dort werden nicht schon SMB-Freigaben bereitgestellt):

sudo ssh -c blowfish -p 2200 linuxbenutzer@localhost -L 139:localhost:139

Nun lassen sich die Samba-Shares in Mac OS X von der Kommandozeile aus einhängen (mit Angabe der Server-Adresse im Finder hatte ich leider keinen Erfolg):

mkdir /Volumes/Daten /Volumes/Musik
mount -o noowners -t smbfs "//WORKGROUP;smbbenutzer:smbpasswd@localhost/daten" /Volumes/Daten
mount -o noowners -t smbfs "//WORKGROUP;smbbenutzer:smbpasswd@localhost/musik" /Volumes/Musik

Diese Lösung ist also, wie schon beschrieben, aus mehreren Gründen noch sehr unelegant:

  • QEMU ist nicht soo sonderlich schnell
  • die Verschlüsselung aller Dateien mit SSH kostet unnötig Performance — dies ließe sich leicht umgehen, indem QEMU priviligiert ausgeführt wird und sich somit an Port 139 binden darf oder durch Verwendung von Netcat, um den Verkehr z.B. von Port 1390 auf Port 139 umzuleiten.
  • auf dem lokalen Rechner darf bei dieser Lösung nicht selbst schon ein SMB-Server laufen

Als Quick&Dirty-Hack reicht sie mir aber erstmal. Ich komme an meine Dateien von von XFS-Dateisystemen heran und die Performance reicht für Fotos, Musik und Dokumente locker aus.

Hinweis

Da ich oben schreibe, dass QEMU für diese Lösung nicht sonderlich performant ist, möchte ich an dieser Stelle aber noch erwähnen, dass QEMU als CPU-Emulator gegenüber Virtualisierern wie VirtualBox, VMware oder Parallels durchaus Vorteile hat, wie z.B. dass er im unpriviligierten Anwender-Modus läuft und auch andere Architekturen als die des Wirtssystems emulieren kann.

Nachtrag

Inzwischen habe ich eine QEMU-Version für Mac OS X, die sich als priviligierter Benutzer von der Kommandozeile ausführen lässt: Mehr dazu in diesem Artikel.

Timo Holle Computer, Linux, Mac OS X , ,

  1. 25. August 2008, 10:10 | #1

    Da hast du ja ein schönes neues Spielzeug! Solltest du nicht lieber lernen, anstatt die ganze Zeit vor dem Mac zu hocken? ;-)

  1. 27. August 2008, 05:39 | #1
Du musst Dich anmelden um einen Kommentar zu schreiben