diskutil eject: Laufwerke über das Mac-Terminal auswerfen

Werfen Sie jedes Mac-Laufwerk über das Terminal mit diskutil aus: einschließlich des erzwungenen Aushängens eines Volumes, das sich nicht auswerfen lässt, und der Suche nach dem Verursacher mit lsof.

(Updated )

Der Finder sagt Ihnen, dass das Laufwerk verwendet wird. Er sagt Ihnen aber nicht, was es verwendet oder was Sie dagegen tun können. Das Terminal kann beides.

Kurze Antwort: Führen Sie diskutil eject /Volumes/YourDriveName aus, um ein Laufwerk über das Terminal auszuwerfen. Schlägt das fehl, verwenden Sie sudo lsof /Volumes/YourDriveName, um zu sehen, was das Auswerfen blockiert, kill <PID>, um den störenden Prozess zu beenden, und werfen dann erneut aus. Als letztes Mittel erzwingt diskutil unmountDisk force /dev/diskN das Aushängen des Laufwerks, aber tun Sie das nur, wenn nichts aktiv schreibt.

Wenn Sie sich auf der Kommandozeile wohlfühlen, ist das Terminal die mächtigste Methode, um hartnäckige Laufwerksauswürfe unter macOS zu bewältigen. Und falls Sie sich noch nicht damit wohlfühlen, sind diese Befehle ein guter Einstieg.

Grundlegendes Auswerfen mit diskutil eject

Der direkteste Weg, ein externes Laufwerk über das Mac-Terminal auszuwerfen:

diskutil eject /Volumes/YourDriveName

Ersetzen Sie YourDriveName durch den tatsächlichen Namen Ihres Laufwerks (genau so, wie er im Finder erscheint). Enthält der Name Leerzeichen, setzen Sie ihn in Anführungszeichen:

diskutil eject "/Volumes/My Drive"

Das bewirkt dasselbe wie ein Klick auf die Auswurftaste im Finder. Wenn es funktioniert, wird das Laufwerk sauber ausgehängt und Sie sind fertig. Schlägt es fehl, erhalten Sie eine aufschlussreichere Fehlermeldung, als der Finder sie je liefert.

Sie können auch aushängen, ohne auszuwerfen (das Laufwerk bleibt im Festplattendienstprogramm sichtbar, ist aber nicht eingehängt):

diskutil unmount /Volumes/YourDriveName

Der Unterschied ist bei Laufwerken mit mehreren Partitionen wichtig. unmount entfernt ein einzelnes Volume. eject entfernt das physische Gerät und alle seine Volumes auf einmal.

Die Kennung Ihres Laufwerks mit diskutil list finden

Bevor Sie fortgeschrittenere Befehle verwenden, benötigen Sie die Kennung Ihres Laufwerks. Listen Sie alle angeschlossenen Datenträger auf:

diskutil list

Die Ausgabe zeigt jeden Datenträger und seine Partitionen. Ihr externes Laufwerk ist so etwas wie disk4 oder disk5. Interne Laufwerke sind meist disk0 und disk1.

Für eine übersichtlichere Darstellung nur der externen Laufwerke:

diskutil list external

Sobald Sie die Datenträgerkennung kennen, können Sie auch über den /dev/-Pfad statt über den Volume-Namen auswerfen:

diskutil eject /dev/disk4

Das ist nützlich, wenn der Volume-Name ungewöhnliche Zeichen enthält oder wenn das Volume nicht eingehängt, der Datenträger aber noch angeschlossen ist.

So werfen Sie alle externen Laufwerke auf einmal aus

Wenn Sie jedes externe Laufwerk mit einem einzigen Befehl auswerfen müssen, gibt es zwei Ansätze.

Mit diskutil alle externen Datenträger finden und auswerfen:

diskutil list external | grep -o 'disk[0-9]*$' | while read disk; do diskutil eject "/dev/$disk"; done

Oder mit AppleScript aus dem Terminal, was das Verhalten des Finders nachbildet:

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

Der AppleScript-Ansatz wirft nur Datenträger aus, die der Finder als auswerfbar betrachtet: er überspringt Ihr Startvolume und Netzwerkvolumes, was in der Regel genau das ist, was Sie wollen.

Erzwungenes Aushängen, wenn diskutil eject fehlschlägt

Wenn ein normaler Auswurf mit einem Fehler wie „couldn’t unmount disk“ fehlschlägt, erzwingen Sie ihn:

diskutil unmount force /Volumes/YourDriveName

Oder hängen Sie alle Volumes eines bestimmten Datenträgers auf einmal aus:

diskutil unmountDisk force /dev/disk4

Erzwungenes Aushängen weist macOS an, das Volume freizugeben, unabhängig davon, was es verwendet. Das ist kontrollierter als das physische Abziehen des Laufwerks (das System schreibt weiterhin die Caches und benachrichtigt die Prozesse), aber es wartet nicht darauf, dass die Prozesse ihre Dateien sauber schließen.

Verwenden Sie das erzwungene Aushängen, wenn Sie wissen, dass nichts Wichtiges geschrieben wird. Es ist das Kommandozeilen-Äquivalent zum erzwungenen Auswerfen im Festplattendienstprogramm. Lesen Sie unseren Leitfaden dazu, wann das erzwungene Auswerfen sicher und wann riskant ist, bevor Sie dies auf einem Laufwerk verwenden, das aktiv genutzt wurde.

Mit lsof herausfinden, was das Auswerfen blockiert

Das ist der Befehl, der das Terminal für Auswurfprobleme unverzichtbar macht:

lsof /Volumes/YourDriveName

lsof steht für „list open files“. Es zeigt jeden Prozess, der eine Datei auf diesem Volume geöffnet hat: den Prozessnamen, die Prozess-ID (PID), den Benutzer, der ihn ausführt, und welche Datei geöffnet ist. (Eine fokussierte Erläuterung der lsof-Optionen und -Muster finden Sie in unserem lsof-Befehlsleitfaden für Mac-Nutzer.)

Für vollständige Ergebnisse (einschließlich Systemprozessen) führen Sie ihn mit sudo aus:

sudo lsof /Volumes/YourDriveName

Ohne sudo sehen Sie nur Prozesse, die Ihrem Benutzerkonto gehören. Systemprozesse wie Spotlights mds oder Time Machines backupd erscheinen nicht. Mit sudo sehen Sie alles, was das Laufwerk tatsächlich geöffnet hält.

Die lsof-Ausgabe lesen

Die Ausgabe sieht ungefähr so aus:

COMMAND   PID   USER   FD   TYPE   DEVICE   SIZE/OFF   NODE   NAME
mds       123   root   12r  REG    1,8      4096       789    /Volumes/MyDrive/.Spotlight-V100/...
Finder    456   aaron  15r  DIR    1,8      1024       2      /Volumes/MyDrive
Dropbox   789   aaron  8u   REG    1,8      8192       345    /Volumes/MyDrive/Projects/.dropbox

Die wichtigsten Spalten:

  • COMMAND: Der Prozessname. Er verrät Ihnen, was das Auswerfen blockiert.
  • PID: Die Prozess-ID. Diese verwenden Sie, um den Prozess bei Bedarf zu beenden.
  • FD: FD beschreibt den Öffnungsmodus: r für Lesen, w für Schreiben, u für beides. Das zeigt keine aktuelle Aktivität und beweist nicht, dass auf dem Volume keine Schreibvorgänge ausstehen.
  • NAME: Die konkret aufgerufene Datei. Sie verrät oft genau, warum der Prozess dort ist.

Häufige Übeltäter: mds (Spotlight-Indizierung), backupd (Time Machine), Dropbox, Google Drive, der Finder selbst. Lesen Sie unsere ausführlichen Beiträge zu Spotlight, das das Auswerfen blockiert und iCloud/Dropbox, die das Auswerfen verhindern für gezielte Lösungen.

Blockierende Prozesse beenden

Beenden Sie unterstützte Apps über die Menüleiste. Systemprozesse werden gesondert behandelt und können Warten oder Herunterfahren erfordern. Sichern Sie Ihre Arbeit, lassen Sie Kopien und Backups abschließen und beenden Sie Apps normal, bevor Sie erneut auswerfen. Erzwungenes Beenden oder Auswerfen kann Datenverlust verursachen; Ejecta bestätigt keine Schreibsicherheit.

kill 789

Dies sendet ein Signal zur ordnungsgemäßen Beendigung. Der Prozess erhält die Gelegenheit, Dateien zu schließen und aufzuräumen. Geben Sie ihm ein paar Sekunden zum Beenden und versuchen Sie dann erneut auszuwerfen.

Wenn er auf eine ordnungsgemäße Beendigung nicht reagiert:

kill -9 789

Erzwungenes Beenden ist der letzte Ausweg. Dabei können ungesicherte Arbeit oder laufende Schreibvorgänge verloren gehen. Sichern Sie zuerst und warten Sie auf das Ende der Übertragungen. Spotlight-Prozessnamen belegen keinen reinen Lesezugriff. Beenden Sie mds oder mds_stores nicht zwangsweise, um ein Laufwerk freizugeben. Warten Sie, schließen Sie Ihre Apps und versuchen Sie, normal auszuwerfen. Ejecta erkennt diese Prozesse, bietet aber kein gewöhnliches Beenden für Systemprozesse an. Bleibt das Laufwerk blockiert, sichern Sie alles und fahren Sie den Mac vollständig herunter, bevor Sie es trennen.

Sichern Sie Ihre Arbeit, lassen Sie Kopien und Backups abschließen und beenden Sie Apps normal, bevor Sie erneut auswerfen.

Vollständiger Fehlerbehebungs-Workflow

Sichern Sie Ihre Arbeit, lassen Sie Kopien und Backups abschließen und beenden Sie Apps normal, bevor Sie erneut auswerfen.

diskutil eject "/Volumes/YourDriveName"
sudo lsof "/Volumes/YourDriveName"

Spotlight-Prozessnamen belegen keinen reinen Lesezugriff. Beenden Sie mds oder mds_stores nicht zwangsweise, um ein Laufwerk freizugeben. Warten Sie, schließen Sie Ihre Apps und versuchen Sie, normal auszuwerfen. Ejecta erkennt diese Prozesse, bietet aber kein gewöhnliches Beenden für Systemprozesse an. Bleibt das Laufwerk blockiert, sichern Sie alles und fahren Sie den Mac vollständig herunter, bevor Sie es trennen.

Ein Prozessname oder eine Liste geöffneter Dateien beweist nicht, dass keine Schreibvorgänge laufen. Sichern Sie Ihre Arbeit, lassen Sie Kopien und Backups abschließen und beenden Sie Apps normal, bevor Sie erneut auswerfen. Erzwungenes Beenden oder Auswerfen kann Datenverlust verursachen; Ejecta bestätigt keine Schreibsicherheit.

Nützliche Diagnose-Varianten

Prüfen, ob speziell Spotlight Ihr Laufwerk belegt:

lsof /Volumes/YourDriveName | grep mds

Nur die eindeutigen Prozessnamen auflisten, die das Auswerfen blockieren (keine doppelten Zeilen):

lsof /Volumes/YourDriveName | awk '{print $1}' | sort -u

Die Festplatten-E/A in Echtzeit beobachten, um zu sehen, ob etwas aktiv schreibt:

sudo fs_usage -f diskio | grep YourDriveName

Dies läuft fortlaufend und zeigt jeden Festplattenvorgang, sobald er geschieht. Drücken Sie Control-C, um es zu stoppen. Verwenden Sie dies, wenn lsof einen Prozess anzeigt, Sie aber nicht sicher sind, ob er aktiv schreibt oder nur einen veralteten Zugriff offen hält.

Wenn das Terminal mehr Aufwand ist als es wert ist

Diese Befehle sind mächtig, und sobald Sie sie ein paar Mal verwendet haben, gehen sie in Fleisch und Blut über. Aber es gibt echte Kosten beim Kontextwechsel von Ihrer Arbeit zu einem Terminal-Fenster: Diagnosebefehle ausführen, technische Ausgaben auswerten, entscheiden, welche PID sicher beendet werden kann.

Ejecta: Ejecta bietet kostenlose Laufwerksdiagnose ohne zeitlich begrenzte Testphase. Die kostenpflichtige Lizenz schaltet Beenden und Auswerfen für unterstützte Apps, Alle auswerfen und Time-Machine-Steuerung frei. Bei Systemprozessen können Warten, Autorisierung oder Herunterfahren nötig sein. Sichern Sie zuerst und lassen Sie Übertragungen abschließen.

Keine Begrenzung der Computer oder Aktivierungen. Erstattung innerhalb von 30 Tagen anfordern.

Ejecta bietet kostenlose Laufwerksdiagnose ohne zeitlich begrenzte Testphase. Die kostenpflichtige Lizenz schaltet Beenden und Auswerfen für unterstützte Apps, Alle auswerfen und Time-Machine-Steuerung frei. Bei Systemprozessen können Warten, Autorisierung oder Herunterfahren nötig sein. Sichern Sie zuerst und lassen Sie Übertragungen abschließen.

Jetzt kaufen - $29 $9.99