Wenn die interne SSD deines Mac vollläuft, liegt ein Gedanke nahe: große Ordner auf ein externes Laufwerk ziehen, fertig. Für ein Fotoarchiv, das du selten öffnest, mag das reichen. Für Arbeitsordner, auf die Xcode, Node, Git oder dein Editor über feste Pfade zugreifen, reicht es nicht. Diese Programme erwarten ihre Daten am gewohnten Ort. Ein sauberer Umzug besteht deshalb aus mehreren Teilen: Du kopierst, prüfst die Kopie, behältst das Original und setzt am alten Ort einen symbolischen Link, der auf die SSD zeigt.

Diese Anleitung zeigt den Ablauf mit Bordmitteln von macOS im Terminal. Sie passt für große Projektordner, Build-Ordner, Archive oder lokale Medienbibliotheken. Sie passt nicht für Daten, die Apple oder ein Werkzeug selbst verwaltet, etwa Simulator-Runtimes oder das Festplattenabbild von Docker Desktop. Dafür gibt es eigene Einstellungen, und ein roher Ordnerumzug kann dort mehr kaputt machen, als er Platz spart.

Bevor du anfängst: drei Warnungen

Terminal-Befehle kennen keinen Papierkorb. Ein vertippter Pfad bei mv oder rm kann Daten an der falschen Stelle verändern oder löschen. Lies jeden Befehl zweimal, bevor du ihn bestätigst, und ersetze die Beispielpfade durch deine eigenen. Wenn du unsicher bist, übe den Ablauf zuerst mit einem kleinen Testordner.

Das Auslagern ersetzt kein Backup. Nach dem Umzug liegen deine Arbeitsdaten auf einem Gerät, das ausfallen, herunterfallen oder verloren gehen kann. Ein aktuelles, unabhängiges Backup brauchst du vorher und nachher. Warum Time Machine ausgelagerte Ordner nicht automatisch mitsichert, erklärt der Beitrag Ausgelagert heißt nicht gesichert.

Die SSD wird Teil deines Setups. Ein Link führt nur dann zu deinen Daten, wenn die SSD angeschlossen ist. Lagere deshalb nur aus, was du unterwegs ohne SSD nicht brauchst, und plane die SSD als festen Bestandteil deines Arbeitsplatzes ein.

Das Beispiel in dieser Anleitung

Als Beispiel dient der Ordner ~/Projekte, der auf eine SSD mit dem Namen Arbeit-SSD umziehen soll. Der Name enthält bewusst kein Leerzeichen, das erspart dir Anführungszeichen im Terminal. Nach dem Umzug liegen die Daten unter /Volumes/Arbeit-SSD/Projekte, und ~/Projekte ist nur noch ein Wegweiser dorthin. Programme, die ~/Projekte öffnen, landen automatisch auf der SSD, ohne dass du Einstellungen ändern musst.

Schritt für Schritt

  1. Größe messen. Ermittle mit du -sh ~/Projekte, wie viel Platz der Ordner belegt, und vergleiche den Wert mit dem freien Speicher der SSD im Finder oder im Festplattendienstprogramm.
  2. Backup aktualisieren. Starte eine Sicherung deines Mac und warte, bis sie vollständig abgeschlossen ist, denn ohne aktuelles Backup gibt es keinen verlässlichen Weg zurück.
  3. SSD vorbereiten. Formatiere eine neue, leere SSD im Festplattendienstprogramm als APFS mit GUID-Partitionstabelle – Achtung, das löscht alles darauf –, gib ihr einen eindeutigen Namen und schließe sie direkt am Mac an.
  4. Programme beenden. Schließe Xcode, Simulator, Docker, deinen Editor sowie laufende Dev-Server, Watcher und Terminal-Sitzungen, die in den Ordner schreiben, denn eine Kopie sich ändernder Dateien ist nicht vollständig.
  5. Kopieren statt verschieben. Kopiere den Ordner mit ditto ~/Projekte /Volumes/Arbeit-SSD/Projekte auf die SSD; das Original bleibt unangetastet, und bricht die Kopie ab, beginnst du mit einem leeren Zielordner von vorn.
  6. Kopie prüfen. Vergleiche beide Ordner mit diff -rq ~/Projekte /Volumes/Arbeit-SSD/Projekte; erscheint keine Ausgabe, stimmen die Dateiinhalte überein, und jede gemeldete Zeile klärst du, bevor du weitermachst.
  7. Original umbenennen. Benenne den internen Ordner mit mv ~/Projekte ~/Projekte-alt um; weil beide Namen auf derselben internen SSD liegen, ändert sich dabei nur der Name, und nichts wird kopiert.
  8. Link anlegen. Setze mit ln -s /Volumes/Arbeit-SSD/Projekte ~/Projekte den symbolischen Link; zuerst steht das Ziel auf der SSD, danach der Ort, an dem der Link entstehen soll.
  9. Link kontrollieren. Prüfe mit ls -l ~/Projekte, ob die Ausgabe mit einem Pfeil auf /Volumes/Arbeit-SSD/Projekte zeigt, öffne danach ein Projekt, baue es und lass die Tests laufen.
  10. Original später freigeben. Arbeite einige Tage mit dem neuen Aufbau und lösche ~/Projekte-alt erst, wenn alles läuft und dein Backup die Daten auf der SSD enthält – erst dann wird der Platz auf der internen SSD frei.

Warum kopieren, prüfen und erst dann umschalten?

Der naheliegende Kurzweg wäre, den Ordner mit mv direkt auf die SSD zu schieben und danach den Link zu setzen. Über Laufwerksgrenzen hinweg ist mv aber kein einzelner, unteilbarer Schritt: Der Befehl kopiert und löscht danach die Quelle. Wird er unterbrochen, etwa weil der Mac einschläft, das Kabel wackelt oder die SSD vollläuft, bleibt ein Zustand zurück, in dem du erst herausfinden musst, welche Dateien wo liegen. Die Reihenfolge dieser Anleitung vermeidet das. Solange du nicht umgeschaltet hast, ist das Original vollständig und unverändert, und bis zum achten Schritt kannst du jederzeit abbrechen.

Nutzt du eine SSD, auf der bereits Daten liegen, überspringst du das Formatieren in Schritt 3. Prüfe dann nur, ob sie als APFS formatiert ist und genug freien Platz hat. Das Format zeigt dir das Festplattendienstprogramm in der Übersicht des Laufwerks an.

Was die einfache Prüfung nicht abdeckt

diff -rq vergleicht Dateiinhalte und meldet fehlende oder abweichende Dateien. Ob Dateirechte, erweiterte Attribute, Hardlinks und die Ziele symbolischer Links innerhalb des Ordners übereinstimmen, zeigt der Befehl nicht. Für viele Projektordner reicht der Inhaltsvergleich aus. Bei Build-Ordnern, Paketspeichern oder Medienbibliotheken können gerade diese Details zählen, zum Beispiel ein verlorenes Ausführungsrecht bei einem Skript. Wie du gründlicher vorgehst und ein Prüfsummen-Protokoll anlegst, zeigt die Seite Kopierte Ordner per Prüfsumme prüfen.

Der Rückweg, falls etwas nicht passt

Solange ~/Projekte-alt existiert, ist der Rückweg kurz. Entferne den Link mit rm ~/Projekte, und zwar ohne -r und ohne Schrägstrich am Ende. So verschwindet nur der Link und nicht der Inhalt auf der SSD. Danach benennst du den alten Ordner mit mv ~/Projekte-alt ~/Projekte zurück. Beachte dabei: Alles, was du seit dem Umschalten auf der SSD geändert hast, fehlt im alten Ordner. Solche Änderungen musst du gezielt zurückkopieren, bevor du den Ordner auf der SSD aufgibst.

Typische Stolpersteine

Existiert am Ort des Links noch ein Ordner, legt ln -s den Link nicht an seiner Stelle an, sondern darin. Du erkennst das an einem zusätzlichen Eintrag wie ~/Projekte/Projekte. Deshalb kommt das Umbenennen in Schritt 7 vor dem Link.

Enthält ein Pfad Leerzeichen, setzt du ihn in Anführungszeichen, zum Beispiel "/Volumes/Meine SSD/Projekte". Einfacher ist ein Laufwerksname ohne Leerzeichen, den du nach dem Umzug nicht mehr änderst. Benennst du die SSD später um, zeigt jeder Link weiterhin auf den alten Namen und damit ins Leere.

Ein Alias aus dem Finder ist kein Ersatz für einen symbolischen Link. Der Finder kann einem Alias folgen, Terminal, Compiler und Paketmanager sehen darin aber nur eine Datei.

Manche Werkzeuge lösen einen Link auf und zeigen anschließend den echten Pfad auf der SSD an. Das ist normal. Wichtig ist, dass du nach dem Umzug einmal deinen üblichen Arbeitsablauf durchspielst: öffnen, bauen, testen, committen.

Welche Schritte DevSpace Manager übernimmt

DevSpace Manager ist eine macOS-App von BRUNIQO, die diesen Ablauf mit zusätzlichen Sicherungen abbildet. DevSpace Manager ist für den Mac App Store vorgesehen und derzeit noch nicht veröffentlicht. Die folgende Übersicht zeigt, wie sich die Handarbeit auf die App überträgt.

HandarbeitIn DevSpace Manager
Größe messen, SSD prüfenDer Plan prüft Quelltyp, lokales externes Laufwerk, getrennte Volumes und freien Speicher.
Programme beendenDer Plan prüft, ob Prozesse von Xcode, Simulator oder Docker laufen.
KopierenDie Kopie entsteht in einem Staging-Bereich auf der SSD und wird vollständig synchronisiert.
Kopie prüfenEin Manifest vergleicht relativen Pfad, Typ, Größe, SHA-256, Symlink-Ziel, POSIX-Rechte, Hardlink-Gruppe und erweiterte Attribute.
Umbenennen und Link setzenEin vorbereiteter Link ersetzt den alten Ort, die Quelle wird atomar in eine interne Quarantäne umbenannt, danach folgt eine letzte Konsistenzprüfung.
Original löschenDie Freigabe braucht eine eigene Bestätigung und prüft vorher erneut die Daten auf der SSD.

Jede Phase wird in einem per fsync gesicherten Transaktionsjournal festgehalten. Wird der Vorgang durch Stromausfall, Absturz oder eine abgezogene SSD unterbrochen, kann die App ihn fortsetzen oder bricht fail-closed ab; sie ist darauf ausgelegt, dabei keine Daten zu verlieren. Fehlt die SSD oder ist eine falsche angeschlossen, blockiert eine Prüfung der Volume-Identität alle Änderungen. Auch hier gilt: Die Auslagerung ersetzt kein unabhängiges Backup. Mehr zum Funktionsumfang findest du in der Übersicht zu DevSpace Manager.

DevSpace Manager

Große Arbeitsordner auf eine dauerhaft angeschlossene SSD auslagern: mit Dateiprüfung, Transaktionsjournal und aufbewahrtem Original für einen möglichen Rollback.

Zur App ↗