• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

HowTo: Netzwerkshares automatisch mounten - ohne Finder-Popups

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Hallo zusammen,

heute habe ich den ganzen Tag damit verbracht, herauszufinden, wie man o.g. Lösung bewerkstelligt und das möchte ich jetzt mit Euch teilen, weil ich bei Google nichts gefunden habe, was mir sofort weiter geholfen hat.

Das Problem

Wer einen Mac besitzt und die meisten Dateien aber auf einem Netzlaufwerk liegen hat, wird das Problem sicherlich kennen!

Bei mir war der größte Leidensdruck meine Musik- und Filmesammlung, die ich auf einem NAS (QNAP TS-412) liegen, aber trotzdem im iTunes eingebunden habe. iTunes hat dann beim Sync ständig gemeckert, dass es die Dateien nicht findet, wenn man vorher das Share nicht einmal aufgemacht und sich damit angemeldet hat.

Man kann natürlich in der Benutzerverwaltung unter "Login Items" die Pfade der Shares anklicken und sie werden beim Einloggen geöffnet.
Nachteil: es ploppen am Anfang so viele Finder-Fenster auf, wie man Shares angegeben hat. Die "Hide"-Option funktioniert mit Volumes leider nicht, d.h. sie wird ignoriert (warum auch immer).

Die Lösung

Daher muss man sich anders behelfen.

Ich setze die folgende Konstellation voraus:

A. Es gibt einen Server namens "NAS01". Das kann ein NAS sein oder ein anderer Server mit Freigaben
B. Die Freigaben sind mit dem Apple Filing Protocol (AFP) oder als Windows-Share verfügbar
C. Auf dem Server gibt es einen User namens "shareuser" mit dem Passwort "sharepasswd"
D. Der User hat Lese- und Schreibberechtigung für unsere Shares auf dem Server
E. Auf "NAS01" liegen die Shares "iTunes", "Documents" und "Software"
F. Der lokale Mac-User hat Administratorrechte auf dem Mac
G. Auf dem Mac läuft OS/X Mountain Lion

Für unsere Lösung muss man ein wenig über den UNIX-Editor "vim" wissen. Das Nötige fasse ich unten kurz zusammen. Wer ihn kennt, braucht das nicht zu lesen.

Das Verzeichnis erstellen

Zunächst legen wir uns das Verzeichnis auf unserem Mac an, unterhalb dessen nachher unsere Netzwerk-Shares gemountet werden sollen. Der Einfachheit halber gehe ich davon aus, dass für jedes Share genau ein Verzeichnis unterhalb dieses Ordners zu sehen ist.

Wir nehmen also das Verzeichnis "/shares" direkt im Wurzelverzeichnis. Damit es hier nicht zu kompliziert wird, geben wir es für alle User mit Vollzugriff frei. Wer das nicht möchte, muss ein wenig tiefer in die UNIX-Rechteverwaltung einsteigen, was hier erstmal zu weit führt.

Als allererstes brauchen wir eine Terminalkonsole. Die öffnen wir im Launchpad unter "Utilities" > "Terminal". In der Deutschen MacOS-Variante ist das dann glaube ich "Andere" > "Terminal".

Dort geben wir dann folgendes ein, um unser Verzeichnis zu erstellen.

Code:
> sudo mkdir /shares
> sudo chmod 777 /shares

Für den Zugriff auf das Wurzelverzeichnis benötigen wir Root-Rechte (Administratorrechte), daher benutzen wir fast immer das Präfix "sudo". Bei der ersten Verwendung wird uns die Konsole daher nach dem Passwort fragen. Dies ist dasjenige unseres lokalen Mac-Benutzers.

Das Verzeichnis für die Shares definieren

Jetzt müssen wir unserem Mac sagen, dass er beim Systemstart unser Share-Verzeichnis befüllen muss, in der UNIX-Welt nennt man das "mounten" (dt. "montieren", "festhängen", "einhängen").
Hierzu gibt es eine wichtige Konfigurationsdatei. UNIX-Systeme haben für Config-Dateien ein Verzeichnis: "/etc". Da dies auch ein Systemverzeichnis ist, brauchen wir auch hier Administratorrechte, um darin Änderungen vorzunehmen.

Wir öffnen mit dem "vim"-Editor die Datei "auto_master", in der angegeben wird, welche Verzeichnisse wie gemountet werden sollen.

Code:
> sudo vim /etc/auto_master

Zu Beginn sieht dieses etwa so aus:
Code:
#
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static

Wir hängen dort die folgende Zeile an:

Code:
/shares /etc/automounts/nas01shares

Das erzählt unserem Mac beim Starten, dass in das Verzeichnis "/shares" alle Shares gemountet werden sollen, die in der Datei "etc/automounts/nas01shares" angegeben sind.

Die Shares definieren

Ich empfehle dringend, hierzu ein eigenes Verzeichnis anzulegen, damit wir nicht die Übersicht verlieren:

Code:
> sudo mkdir /etc/automounts

Jetzt können wir dort unsere Datei "nas01shares" anlegen, auf die wir in der "auto_master"-Konfigurationsdatei verwiesen haben.
Dazu nehmen wir wieder unseren "vim":

Code:
> sudo vim /etc/automounts/nas01shares

Der vim legt die Datei automatisch an und wir schreiben für unsere Shares nun Folgendes hinein:

Ab jetzt gibt es eine Fallunterscheidung, je nachdem ob unser Share als Apple Filing Protocol (AFP) freigegeben ist oder Windows Share - UNIX benutzt hierzu das Samba-Protokoll (SMB).

1. Fall: AFP

Code:
iTunes -fstype=afp,rw afp://shareuser:sharepasswd@nas01:/iTunes

Von links nach rechts bedeutet das
In unserem Ordner "/shares" wird ein Share namens "iTunes" angelegt.
Der Dateisystemtyp ist "afp".
Der Zugriff ist "Read/Write".
Wir sprechen das Share mit dem User "shareuser" und Passwort "sharepasswd" an.
Diese sind wie das Share auf dem Server "nas01" angelegt.
Das Share dort ist definiert als "iTunes".

2. Fall: Windows (SMB/Samba)

Code:
iTunes -fstype=smbfs, rw :/shareuser:sharepasswd:nas01:/iTunes

Von links nach rechts bedeutet das
In unserem Ordner "/shares" wird ein Share namens "iTunes" angelegt.
Der Dateisystemtyp ist "smbfs" (Samba File System).
Der Zugriff ist "Read/Write".
Wir sprechen das Share mit dem User "shareuser" und Passwort "sharepasswd" an.
Diese sind wie das Share auf dem Server "nas01" angelegt.
Das Share dort ist definiert als "iTunes".

Ende der Fallunterscheidung

Allzu sehr unterscheidet sich das also nicht. Im Folgenden werde ich AFP beibehalten. Ich habe die Erfahrung gemacht, dass der Zugriff damit schneller funktioniert und es für Macs mehr Funktionen bietet. Wer Samba nimmt, ändert die Datei entsprechend des obigen Beispiels ab.

Die anderen Shares werden einfach mit je einer Zeile hinzugefügt, sodass unsere "nas01shares"-Datei am Ende so aussieht:

Code:
iTunes -fstype=afp,rw afp://shareuser:sharepasswd@nas01:/iTunes

Documents -fstype=afp,rw
afp://shareuser:sharepasswd@nas01:/Documents

Software -fstype=afp,rw 
afp://shareuser:sharepasswd@nas01:/Software

Änderungen anwenden

Die Frickelarbeit ist vorbei. Beim nächsten Start wird der Mac die Verbindung schon herstellen. Weil wir ihn aber noch nicht neu gestartet haben, müssen wir das für den Moment noch von Hand machen. Dazu folgenden Befehl absetzen.

Code:
> sudo automount -vc

Es folgt eine Liste mit Änderungen, die am Dateisystem hinzugefügt wurden. Für uns ist wichtig, dass unsere gemounteten Shares angezeigt als neu angezeigt werden.

Hinweis: Wir sollten uns nicht im Verzeichnis "/shares" befinden, sonst kann es sein, dass genau unsere Shares übersprungen werden.

Testen

Nun sollte es soweit sein. Aber wie bei jeder Änderung sollten wir nun testen, ob alles funktioniert hat!

Hierzu schauen wir in unser "Software"-Verzeichnis und lassen uns anzeigen, ob dort alle Dateien drin sind, die auch im Share auf dem Server liegen. Erhalten wir eine Fehlermeldung oder ein leeres Verzeichnis, ist irgendwas schief gegangen.

Code:
> cd /shares/Software
> ls

Wird jetzt die Liste mit dem Inhalt ausgegeben, hat auf jeden Fall schonmal das Mounten und der Lesezugriff geklappt. Oft wird aber vergessen, dass der User auf dem Server ("shareuser") auf jeden Fall Schreibrechte auf die Shares haben muss; und zwar serverseitig! Es reicht **nicht** aus, dass wir in der Datei "nas01shares" die "rw"-Option angegeben haben!

Um schnell zu testen, ob wir das richtig gemacht haben, schreiben wir eine Textdatei in das Share. Das machen wir **ohne** "sudo"-Präfix, denn wir wollen ja auch als Normalsterbliche in das Verzeichnis schreiben können!

Code:
> vim /shares/Software/test.txt

Sollten wir da noch Probleme haben, wird der "vim" schon unten "permission denied" anzeigen, oder spätestens beim Speichern "could not open file 'test.txt' for write".
Wenn alles geklappt hat, sollte dort aber stehen: "'test.txt' [New File]".

Nachdem wir ein paar Zeichen in die Datei getipp und gespeichert haben, muss jetzt unsere "test.txt" im Share liegen. Hat das geklappt können wir sie wieder löschen.

Code:
> rm /shares/Software/test.txt

Das war's, jetzt kann man ohne Probleme aus jedem Programm mit den Shares arbeiten, ohne PopUps und ohne das Share jedes Mal aufmachen zu müssen.

Im Finder kommen wir mit Command+Shift+G und dann dem Pfad /shares/ zu unseren Freigaben.

Crashkurs für den "vim"

Als ich seinerzeit anfing, mich mit Linux und Unix zu beschäftigen - das ist schon eine ganze Weile her, war ich noch vom Basteln an "autoexec.bat" und "config.sys" mit dem QBasic-Editor von MS-DOS gewöhnt. (Einige bekommen jetzt vielleicht feuchte Augen! ;) ).

Der "vim" erscheint da zunächst extrem umkomfortabel, wenn man ihn gar nicht kennt. Aber er ist ein absolutes Mini-Leichtgewicht und passt auf jeden noch so niedrig dimensionierten Kleins-Linux/UNIX-Rechner. Wenn man ein Projekt wie Unseres hat, ist es zudem viel umständlicher, zwischen Fenstern und Terminal hin und her zu wechseln, jedenfalls ist das meine Wahrnehmung.

Ich beschränke mich hier auf die drei Dinge, die wir mit dem "vim" tun müssen. Komplette Anleitungen findet man im Netz zuhauf!

Eine Datei öffnet man ganz simpel. Ist sie nicht da, wird sie neu angelegt:

Code:
> vim text.txt

Jetzt wird es etwas tricky (man gewöhnt sich aber wirklich daran!):

Am Anfang ist man im Lesemodus, d.h. man kann noch nicht in der Datei herum schreiben. Der Editor wartet nun darauf, dass wir an die Stelle des Textes gehen, an der wir ändern wollen und danach ein Kommando schicken.

Drücken wir nun die Taste "i", gehen wir in den Einfüge-Modus. In der Statuszeile ganz unten steht dann auch "INSERT". Ich habe ausschließlich mit diesem Modus gearbeitet. Er entspricht dem in den meisten Texteditoren inklusive Word etc..

In diesem Modus können wir mit dem Cursor an jede Stelle hüpfen, Text einfügen oder löschen. Sind wir fertig, drücken wir "ESC".

Jetzt wollen wir natürlich abspeichern. Hierzu gibt man ":wq" (natürlich ohne Anführungszeichen). Das steht für "write and quit". Wie das schon sagt: Speichern und Schließen.

Haben wir irgendwas verschlimmbessert, geben wir ":q!" ein. Das steht für "quit" und mit dem "!" bestätigen wir, dass wir die Änderungen nicht speichern wollen.

Mehr Funktionen sollten wir für unsere Zwecke nicht brauchen!
 
Zuletzt bearbeitet:

Wuchtbrumme

Golden Noble
Registriert
03.05.10
Beiträge
21.524
...der echte Mac-ianer vermeidet dieses Frickelwerk und benutzt ControlPlane. ;)

Trotzdem vielen Dank für Deine Mühe bei der Anleitung!
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Der echte Mac-ianer vermeidet Fremdsoftware und baut sich in AppleScript ein Mountscript, dass abhängig vom verbundenen Netzwerk die richtigen Volumes mountet ;)
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Merci für den Tipp, aber das hatte ich schon versucht.

Zumindest für iTunes und ein paar meiner Entwicklertools brachte das nicht den Erfolg, den ich mir gewünscht hatte. Ich musste immer noch einmal im Finder klicken, damit das Share gemountet wurde und iTunes vernünftig synct.

Nachtrag: ControlPlane bzw. MarcoPolo sind leider nicht mehr supported und funktionieren kaum noch mit dem aktuellen OS/X. Das hab ich gerade auf der Entwicklerseite gesehen. o_O
 

alpha75

Jonagold
Registriert
14.11.12
Beiträge
20
Ich meine ControlPlane ... war nur mit dem posten nicht schnell genug. Meine Frage war auf den Beitrag von Pill bezogen. Ich habe nämlich genau das selbe Problem ... Habe meine Musik und meine IPhoto Bibliothek auf einem NAS und dachte, es gibt vielleicht einen einfacheren als den von dir beschriebenen Weg.
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
ControlPlane ist ein Spin-Off von MarcoPolo.

Wie der Autor selbst schreibt, er kommt leider nicht mehr dazu, es zu warten und viele Funktionen fallen schon ab der vorvorletzten OS/X-Version raus. Bei mir hat es mit MarcoPolo leider nicht funktioniert. Zwar erkennt er mein Heim- und Arbeitsnetzwerk korrekt, zeigt dann auch die richtigen Shares an, aber richtig eingebunden werden sie erst, wenn man einmal mit dem Finder drauf klickt.

Und damit bin ich eigentlich wieder am Anfang gewesen, deshalb hab ich's schließlich sein gelassen und gescriptet. :)
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
In AppleScript mountet man ein Volume so:

mount volume "afp://192.168.1.100/Volume1"

Das ganze dann als Programm speichern und in die Anmeldeobjekte. Ich habe meine iTunes-Bibliothek ebenfalls auf einem NAS un von 10.5 bis heute keine Probleme. Bei iPhoto kann ich leider für nichts garantieren.
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Funktioniert das auch, wenn sich ein anderer User (Nicht-Admin) anmeldet? Zum Mounten braucht man doch Root-Rechte.

Wenn iTunes läuft, müsste auch iPhoto keine Probleme machen.
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Du kannst auch als Gastbenutzer ein Volume mounten, sonst könnte man ja nichtmal einen USB-Stick öffnen. Du brauchst nur die Zugangsdaten für das Volume.
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Danke für den Tipp!

Wohin speichert man denn sinnigsterweise das Skript? Unter /Applications?
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
Das hängt davon ab, wer alles darauf zugreifen dürfen soll. Auf den Programme Ordner kann jeder Benutzer zugreifen, ich habe daher in meinem Benutzerordner einen Ordner "Startobjekte" erstellt, da sind meine Skripte drin, die beim Start ausgeführt werden sollen.
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Okay... es soll ja für alle Benutzer gelten. Ich werde das mal versuchen!
Ich hoffe, es findet sich trotz allem jemand, der mein Tageswerk irgendwann mal brauchen kann. ;)

Eigentlich war ich als Mac-Neuling ganz stolz, mich so tief eingegraben zu haben. *gg*

Seitdem ich die Mounts erstellt habe, bekomme ich zudem ein weiteres Problem...
Wenn ich den "normalen" Weg benutze, also über den Finder das NAS auswähle und das Share anklicke, erscheint die Meldung: "The operation can't be completed because the original item for "Files" can't be found." (Files ist der Name des Shares)

Ich versuchs mal mit einem Neustart.
 

StaticBool

Golden Delicious
Registriert
21.11.11
Beiträge
10
Okay, man lernt nie aus.

Ich hatte natürlich in meinem Eifer das Verzeichnis "/Volumes" als Mountpoint benutzt. Das geht natürlich nicht, ohne das Mac-eigene Mounting zu stören.

Jetzt habe ich meinen eigenen Rat befolgt und ein eigenes Verzeichnis im Root erstellt und voilá, es funktioniert.
 

alpha75

Jonagold
Registriert
14.11.12
Beiträge
20
Wie stellt man es an, dass dieses Script automatisch vor dem Starten von Itunes oder Iphoto ausgeführt wird?
 

Pill

Adams Parmäne
Registriert
07.07.12
Beiträge
1.310
In der Regel reicht es das Skript zu den Anmeldeobjekte hinzuzufügen. Wenn dir das nicht ausreicht, dann kannst du ein Skript schreiben, das anstelle des Programms gestartet wird:

Code:
[COLOR=#012fbe][B]mount volume[/B][/COLOR] "afp://192.168.2.100/Volume1"
[B]repeat[/B] [B]until[/B] (([COLOR=#012fbe][B]list disks[/B][/COLOR]) [B]contains[/B] "Volume1")
    [COLOR=#012fbe][B]delay[/B][/COLOR] 0.2
[B]end[/B] [B]repeat[/B]
[COLOR=#0433FF][COLOR=#000000][B]tell[/B] [/COLOR][I]application[/I][COLOR=#000000] "iTunes" [B]to[/B] [/COLOR][B]activate[/B][/COLOR]