Nachdem ich mit einer externen USB-Sicherungsfestplatte gearbeitet habe, möchte ich das Laufwerk sauber aushängen. Beim Drücken der „Auswerfen“-Taste warnt mich der Finder mit der Meldung:
oder
oder wenn Sie versuchen, das Terminal zu verwenden:umount /Volumes/Diskname
Soweit mir bekannt ist, verwende ich diese Diskette nicht, aber der Finder sagt, dass ich es tue, also muss ich mich irren. Ich bevorzuge ein sauberes Unmounten des Laufwerks. Da ich gerade mehrere Aufgaben erledige, wird das Ab- und Anmelden nicht bevorzugt, ebenso wie die Installation von Software von Drittanbietern.
Der Terminalbefehl lsof
könnte hier nützlich sein, aber ich persönlich denke, dass dies für ein so "einfaches" Problem zu komplex ist, und um ehrlich zu sein, weiß ich nicht, wie man es richtig anwendet.
Meine Frage: Woher weiß ich, welches Programm mein Laufwerk verwendet, damit ich dieses Programm ordnungsgemäß beenden und mein Laufwerk auswerfen kann?
lsof
ist in der Tat Ihre beste Wahl. Der schnellste und einfachste Weg wäre dieser: -
sudo lsof /Volumes/myDrive
Es kann ein paar Minuten dauern, bis es ausgeführt wird, aber sobald es fertig ist, gibt es Ihnen eine Liste der geöffneten Dateien auf der Festplatte. Die Ausgabe sieht in etwa so aus:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mds 89 root 19r DIR 52,3 432 2 /Volumes/Photos
mds 89 root 23r DIR 52,3 432 2 /Volumes/Photos
Finder 681 alans 14r DIR 52,3 432 2 /Volumes/Photos
QuickLook 2158 alans 9r REG 52,3 1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG
In diesem Fall ist es die QuickLook
Anwendung, die eine Datei geöffnet hat. Das direkte Schließen der Anwendung ist der beste Weg, um das Problem zu beheben. Das ist jedoch nicht immer möglich. Beispielsweise wird QuickLook nicht als eine Anwendung angezeigt, auf die Sie im Dock zugreifen können.
Wenn Sie die Anwendung nicht manuell schließen können, können Sie sie mit dem kill
Befehl von der Befehlszeile aus beenden. Verwenden Sie dazu die PID
aus der zweiten Spalte als zu tötende ID. Aus dem obigen Beispiel wäre es:
kill 2158
Beachten Sie, dass dies manchmal nicht funktioniert und eine aggressivere Form von kill
verwendet werden muss. Hier ist eine Reihe eskalierender Aggressivität (am Beispiel PID 2158):
kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158
Sie sollten in der Lage sein, die Festplatte auszuwerfen, sobald der Prozess/die Anwendung beendet wurde.
Eine letzte Anmerkung, lsof
kann ein oder zwei Minuten dauern. Es kann auch hängen bleiben, aber Sie sollten es mindestens ein paar Minuten warten, bevor Sie entscheiden, dass dies passiert ist.
Außerdem findet der Basisbefehl manchmal sudo lsof /Volumes/myDrive
nichts. Versuchen Sie in diesem Fall, das +D
Argument (z . B. sudo lsof +D /Volumes/myDrive
) hinzuzufügen. Dadurch wird ein Top-Down-Scan der Festplatte durchgeführt. Es dauert länger, aber es sollte alles erkennen, was dazu führt, dass die Diskette nicht ausgeworfen werden kann.
( Hutspitze zu Alec Jacobsons Beitrag für zusätzliche Details. )
/usr/bin/sudo lsof /Volumes/myDrive
sudo lsof /Volumes/drive
ist viel schneller alssudo lsof | grep /Volumes/drive
sudo
. Ohne sie bekam ich nicht genug Informationen. Am Ende stellte sich heraus, dass die Cloud-Backup-Software damit begann, Dateien auf dem Laufwerk zu sichern, als ich es nicht erwartet hatte. Ich habe das Problem gelöst, indem ich die Sicherung angehalten habe. Dann konnte ich das Laufwerk aushängen.TERM
(Standardeinstellung), HUP
, QUIT
, ABRT
, INT
, KILL
(was garantiert funktioniert). Es lohnt sich, nach jedem Vorgang mehrere Sekunden zu warten, da es eine Weile dauern kann, bis ein Prozess heruntergefahren wird, wenn er beim Warten auf IO blockiert ist.Hast du es versucht $ diskutil unmount /Volumes/Diskname
?
Oder $ diskutil unmount force /Volumes/Diskname
?
Wie die Manpage zeigt:
Aufgrund der komplexen und verwobenen Natur von Mac OS X kann umount häufig fehlschlagen. Es wird empfohlen, stattdessen diskutil(1) (wie in „diskutil unmount /mnt“) zu verwenden.
Wenn Ihr Volume Leerzeichen im Namen hat, stellen Sie sicher, dass Sie die Leerzeichen mit Escapezeichen versehen \
, z. B.:
$ diskutil unmount /Volumes/Disk\ Name
Oder verwenden Sie Anführungszeichen, um Verwirrung zu vermeiden.
$ diskutil unmount "/Volumes/Disk Name"
sudo
Befehl, der auch anderen helfen kann.kill
.Ihr Problem wird wahrscheinlich durch den Prozess verursacht mds
: Spotlight indiziert Ihre Festplatte.
Ich habe dieses Problem, und ich habe (noch) keine Lösung gefunden.
Sie könnten die Donationware-Anwendung " What's Keeping me? " ausprobieren, die anzeigt, welcher Prozess/welche Anwendung das Volume/den Ordner/die Datei verwendet.
Dieses Programm ist vom Entwickler für Mac OS X 10.6 Snow Leopard zertifiziert, aber die RoaringApps-Seite für diese Anwendung listet es auf, dass es unter OS X 10.7 Lion und OS X 10.8 Mountain Lion einwandfrei funktioniert.
Über Was hält mich?
Hatten Sie jemals das Problem, dass Sie den Papierkorb nicht leeren oder eine Festplatte auswerfen können, weil Sie etwas daran hindert? Normalerweise liegt der Grund darin, dass eine Anwendung eine Datei geöffnet hat und Sie daher die Festplatte nicht loswerden oder die Datei nicht löschen können. Deshalb haben wir What's Keeping Me! What's Keeping Me identifiziert die Anwendung, die das Element geöffnet hält. Sie können dann What's Keeping Me verwenden, um die problematische Anwendung zu beenden (oder sie bei Bedarf zu beenden), damit Sie Ihre Aufgabe ausführen können. What's Keeping Me enthält einen Automator-Workflow, sodass Sie auch direkt im Finder suchen können!
Versuchen Sie, den Finder neu zu starten. Hier funktioniert es
qlmanage -r
sagte aber, es sei "quicklookd zurücksetzen", aber es hielt die Datei laut lsof +D /path/to/volume
. Ein Neustart des Finders hat es behoben und ich konnte das Volume auswerfen.Ich habe diese Meldung erhalten, obwohl ich mir sicher war, dass es keine offenen Dateien auf dem Volume gibt . Ich habe dies mit Why Not Unmount überprüft , einem GUI-Tool, das geöffnete Dateien auf einer Festplatte anzeigen kann.
In meinem Fall war es ein Zeichen dafür, dass das Dateisystem beschädigt ist. Das Ausführen des Festplatten-Dienstprogramms (oder, wenn das nicht genug war, DiskWarrior) löste das Problem und machte die Festplatte wieder auswerfbar.
HINWEIS: fseventer
funktioniert bis OS X 10.10 Yosemite und die Entwicklerseite http://www.fernlightning.com ist inzwischen offline gegangen. Daher wurden die Produktlinks entfernt. Damit brew cask install fseventer
ist es möglicherweise noch auf älteren macOS-Versionen verfügbar.
Es gibt eine GUI-Alternative zur CLI-App lsof
:
fseventer
ist ein großartiges Dienstprogramm zur Überwachung des Dateisystemzugriffs für verschiedene Zwecke . Es läuft mit Superuser-Rechten ( sudo
), sieht also alle Lese-/Schreibzugriffe aller gemounteten Dateisysteme und präsentiert sie in einer sehr klaren Übersicht.
Meine Erfahrung: Ich hatte ein Volume, das ständig nicht richtig ausgeworfen werden konnte (wie in den Screenshots des OP), und brauchte immer einen "erzwungenen Auswurf", manchmal sogar eine gewaltsame physische Trennung (nicht empfohlen!), die Ihr(e) Dateisystem(e) beschädigen könnte Festplatte) oder ein Herunterfahren des Systems, um diese Brute-Methode zu umgehen.
Meine Lösung: Zusammengefasst: Das Auswurfproblem kann durch beschädigte oder veraltete Dateiinhalte auf diesem Volume verursacht werden. Das Entfernen des problematischen Inhalts kann dies dauerhaft beheben. Im Detail:
Bestimmen Sie, auf welche Datei zugegriffen wird (mit lsof
oder fseventer
). In meinem Fall war es eine klassische Mac OS-Datei mit einem Ressourcenzweig, der offen blieb, wahrscheinlich weil ein Hintergrund-Parsing-Prozess (Spotlight, QuickLook oder ähnliches) daran hing.
Sichern Sie diese beunruhigenden Daten in einem Dateiarchiv (das (klassische) Mac-spezifische Ressourcendaten bewahrt). Ich habe einfach die native "Komprimieren"-Funktion von Finder aus dem Kontextmenü verwendet.
Löschen Sie die problematische Datei/den Ordner.
sudo rm -R /path/to/troublesome/FileOrFolder
. Dies funktionierte schließlich, nachdem die Löschversuche des Finders fehlgeschlagen waren.Versuchen Sie erneut, das Volume zu trennen. Es kann trotzdem fehlschlagen, da sich die fehlgeschlagenen Hintergrundprozesse noch in einem nicht wiederherstellbaren Zustand befinden könnten .
Neustart. Versuchen Sie dann erneut, die Bereitstellung zu deaktivieren. Von da an funktionierte das Volume wieder einwandfrei. Normales Mounten, Unmounten, Lese-/Schreibvorgänge. Nur wenn eine Datei tatsächlich von einem Benutzerprozess geöffnet wurde, wurde das Aushängen verhindert. Wieder ganz normales Verhalten.
Sowohl die Befehlszeilenlösung als auch What's Keeping Me funktionieren hervorragend.
Um es noch einmal zusammenzufassen, die Befehlszeile im Terminal lautet:
sudo lsof | grep /Volumes/myDrive
Die GUI-Anwendung ist What's Keeping Me, ~~erhältlich bei Hamsoft Engineering]~~ Thomas Templeman 1 .
Screenshots von beiden mit derselben Suche.
Ich bevorzuge die Befehlszeile nur geringfügig, da sie immer bei Ihnen ist. Auf der anderen Seite ist What's Keeping Me schneller und einfacher zu verwenden, wenn Sie es installiert haben.
Lösung Stellen Sie sicher, dass alle Programme geschlossen sind. Klicken Sie oben links auf dem Bildschirm auf das Apple-Symbol und dann auf Sofort beenden. Klicken Sie in der Liste auf Finder. Klicken Sie nun auf die Schaltfläche Neustart. Versuchen Sie dann erneut, das Laufwerk auszuwerfen.
sudo lsof…
in der akzeptierten Lösung beschriebene Methode, suchen Sie die Anwendung, die das Problem verursacht, und schließen Sie dann diese spezielle Anwendung.Ich habe meinen Mac neu gestartet und das hat es behoben :-)
Nikolaus Barbulesco
CousinKokain
Nikolaus Barbulesco
John2095
Mikromaschine
Mikromaschine