Mac OS X: Benutzerordner auf anderes Volume verschieben

osx Unter Umständen kann es vorkommen, das man den Benutzerordner verschieben möchte, Dies kann unterschiedliche Beweggründe haben. Sei es Platz auf der Platte oder man hat eine SSD verbaut.
Ich habe mir für mein MacBook Pro eine 512 GB Samsung Evo Pro besorgt und da ich der Festplatte mehr vertraue als der SSD möchte ich meinen Benutzer Ordner nun auf die Festplatte verschieben.


Anwendungsfälle

Wofür kann es sinnvoll sein, den Benutzerordner auszulagern? Im Benutzerordner liegen bei Mac OS X alle Arten von Daten, die man anlegt. Dazu zählen Fotos, Dokumente, Filme, Musik, E-Mails und noch einiges andere mehr. Beispielsweise könnte der Speicherplatz ein guter Grund sein, Dinge auslagern zu wollen. Für Musik könnte man eine externe Festplatte verwenden. Aber auch, wenn man die SSD-Option gewählt hat, bei der neben einer normalen Festplatte eine Solid State Disk im Mac verbaut ist, kann man den Benutzerordner auslagern, um wertvollen Platz zu sparen und die Anzahl der Schreibvorgänge gering zu halten.

Vorereitung

Um die Vorbereitung zu verstehen, müssen wir etwas in die Welt von Mac OS X eintauchen. Im Benutzerordner gibt es neben bewusst selbst angelegten Dateien noch den Library-Ordner. Dieser speichert persönliche Einstellungen, beispielsweise E-Mail-Konten. Wenn wir zur Laufzeit die Daten verschieben würden, riskieren wir Inkonsistenzen, vor allem im Library-Ordner. Deswegen müssen wir uns einen neutralen Administrator anlegen:

  1. Gehe ins Apple-Menü, Systemeinstellungen
  2. Menüpunkt “Benutzer & Gruppen” aufsuchen und mit Klick aufs Schloss die Einstellungen freigeben
  3. Auf das “+”-Symbol klicken und einen neuen Administrator anlegen (beim Dropdown “Neuer Account” “Administrator” auswählen, Namen und Passwörter sind relativ egal)
  4. Benutzer erstellen und abmelden (Apfel-Menü, “<Benutzername> abmelden…”), dann mit dem eben erstellen Administrator anmelden

Außerdem sollten alle Festplatten bereits ihren finalen Namen haben. Wer einen neuen Mac mit SSD und rotierender Festplatte kauft, hat dafür die Namen “Macintosh HD” und “Macintosh HD 2″. Wer dies ändern will, sollte das jetzt gleich tun (für Festplatten außer der Systemfestplatte Rechtsklick auf das Finder-Icon, “Gehe zu Ordner”, “/Volumes” und dort die Festplatte umbenennen). Günstig wäre es, wenn man ohne Leerzeichen im Namen auskommt. Wenn doch Leerzeichen erwünscht sind, müssen die später im Terminal mit einem Backslash (Shift+Alt+7) escaped werden. Deutlich einfacher ist es daher, wenn man mit einem Wort auskommt – in unserem Fall beispielsweise “Daten”.

Benutzerordner verschieben

Nun gehts los. Was wir benötigen ist das „Terminal“ Fenster zu finden über Spotlight.
Wir sollten uns darüber im Klaren sein, wie der Hauptbenutzer heißt und wie die Zielfestplatte. In unserem Fall heißt der Benutzer der Einfachheit halber “Benutzer” und die Zielfestplatte “Daten”. Kopiert wird dann mit Root-Rechten und dem ditto-Befehl, der Berechtigungen und Meta-Daten (Datei-Besitzer, Zugriffsrechte, Datum der letzten Änderung usw.) übernimmt. Der folgende Code ist eine Zeile:

sudo ditto -rsrcFork /Users/Benutzer /Volumes/Daten/Benutzer

Dies wird je nach Füllungsgrad des Benutzerordners eine Weile dauern. Wenn keine Fehler auftreten, folgt eine neue Zeile mit dem Prompt, eine Rückmeldung gibt ditto ansonsten nicht.
Jetzt müssen wir Mac OS X noch sagen, wo der Benutzerordner jetzt zu finden ist. Dafür “verstecken” wir das Original zunächst:

sudo mv /Users/Benutzer /Users/Benutzer.backup

Dies hat zwei Vorteile: Erstens findet Mac OS X den alten Benutzerordner nun nicht mehr und zweitens wollen wir ja einen Symlink setzen, der den Namen des alten Benutzerordners trägt. Dies tun wir gleich mal:

sudo ln -s /Volumes/Daten/Benutzer /Users/Benutzer

Die Ausgabe eines Verzeichnislistings von /Users sollte uns nun zeigen, dass unser Vorhaben erfolgreich war:

rechnername:~ testadmin$ ls -l /Users
total 10
drwxrwxrwt 5 root wheel 170 23 Aug 17:54 Shared
lrwxr-xr-x 1 root admin 21 23 Aug 16:10 testadmin
lrwxr-xr-x 1 root admin 21 23 Aug 16:10 Benutzer.backup
lrwxr-xr-x 1 root admin 21 23 Aug 16:10 Benutzer -> /Volumes/Daten/Benutzer
rechnername:~ testadmin$

Vor allem die letzte Zeile ist interessant: Der Ordner “Benutzer” verweist nun auf “/Volumes/Daten/Benutzer”. Zukünftig wird das System die Benutzerdaten also auf der Festplatte “Daten” suchen, genau was wir wollten.

Abschließende Schritte

etzt kann der Mac neu gestartet werden, und zwar gleich mal mit dem Standard-Benutzer (bei uns “Benutzer”). Der Desktop sollte sich exakt so wieder aufbauen, wie er beim Abmelden verlassen wurde und alles sollte funktionieren. Wenn das der Fall ist, kann der zweite Administrator wieder gelöscht werden:

  1. Gehe ins Apple-Menü, Systemeinstellungen
  2. Menüpunkt “Benutzer & Gruppen” aufsuchen und mit Klick aufs Schloss die Einstellungen freigeben
  3. Auf den zweiten Administrator klicken und danach das “-“-Symbol anklicken. Benutzerdaten können gelöscht werden.
  4. Ggf. sollte nun in den Anmeldeoptionen der automatische Login wiederhergestellt werden.

Wenn alles funktioniert hat, kann nun das Backup des alten Benutzerordners wieder gelöscht werden. Dies kann im Finder geschehen oder wieder per Terminal:
sudo rm -r /Users/Benutzer.backup

Hinweise

Natürlich können auch einzelne Ordner verschoben werden. Dafür sind die Schritte mit ditto, mv und ln für alle Ordner zu wiederholen, die weg sollen. Zu beachten ist, dass die Ordner für “Musik”, “Filme”, “Bilder” usw. auf englisch sind – wer nachschauen möchte, wie sie im Original heißen, gibt im Terminal ein:
ls -l /Users/Benutzer/

Es gibt außerdem die Möglichkeit, den Benutzerordner ohne den symbolischen Link zu verschieben. In den Systemeinstellungen bei “Benutzer & Gruppen” kann dafür mit der rechten Maustaste auf den Benutzer geklickt werden und von den erweiterten Optionen Gebrauch gemacht werden. Dies sollte man dennoch als anderer Administrator tun. Allerdings kann es sein, dass dann von Linux portierte Programme, die den Library-Ordner nicht nutzen (beispielsweise Filezilla) durcheinander kommen, weil sie den Home-Ordner dort suchen, wo er normalerweise ist. Ein Symlink verhindert dieses Missverständnis sehr elegant.

Fazit

Mit diesen vergleichsweise einfachen Schritten kann ein Benutzerordner, oder nur Teile davon, von der Systemfestplatte ausgelagert werden. Dies kann Platz sparen und im Falle von SSDs auch deren Leben verlängern. Gearbeitet wird nämlich vor allem im Benutzerordner (z. B. auf dem Desktop), und das würde, wie hier beschrieben, fortan auf der rotierenden Festplatte geschehen, die gegen massenhaft Schreibvorgänge mehr oder weniger resistent ist.
Den Geschwindigkeitsvorteil durch eine SSD frisst diese Aktion im Grunde nicht auf; die Einstellungen, die in der Regel aus dem Library-Ordner gelesen werden, sind schnell gecacht und nicht so groß, als dass man mit spürbaren Verzögerungen rechnen müsste.