Le volume ne peut pas être éjecté car il est actuellement utilisé.

100

Après avoir utilisé un disque de sauvegarde USB externe, je souhaite démonter proprement le lecteur. Lorsque vous appuyez sur le bouton d'éjection, le Finder m'avertit par le message suivant:

  • " Le volume ne peut pas être éjecté car il est actuellement utilisé. "

ou

  • " Le disque" Nom du disque "n'a pas été éjecté car un ou plusieurs programmes l'utilisent. ".

ou en essayant d'utiliser le terminal: umount /Volumes/Diskname

  • " umount (/ Volumes / Diskname): ressource occupée - essayez 'diskutil unmount' "

Autant que je sache, je n'utilise pas ce disque, mais le Finder dit que je l'utilise, alors je dois me tromper. Je préfère un démontage propre du lecteur. Comme je suis en train d'effectuer plusieurs tâches, la déconnexion et la connexion ne sont pas préférées, de même que l'installation de logiciels tiers.

La commande de terminal lsofpeut être utile ici, mais personnellement, je pense que c'est trop complexe pour un problème aussi simple et, pour être honnête, je ne sais pas comment l'utiliser correctement.

Ma question: Comment savoir quel programme utilise mon lecteur pour pouvoir le quitter correctement et éjecter mon lecteur?

Le volume ne peut pas être éjecté car il est actuellement utilisé. Le disque "Camel" n'a pas été éjecté car un ou plusieurs programmes l'utilisent peut-être. Le disque "Mammtoh" n'a pas été éjecté car un ou plusieurs programmes ... xkcd

Cousin cocaine
la source
2
"Autant que je sache, je n'utilise pas ce disque, mais le Finder dit que je le fais, alors je dois me tromper." Vous faites trop confiance aux machines. ;-) Souvent, les ordinateurs ont tort et nous les humains avons raison.
Nicolas Barbulesco
Donc ce que vous dites, c'est que j'ai raison? ;)
CousinCocaine
2
Et si Spotlight est le coupable, épargnez-vous un peu de répétition: apple.stackexchange.com/a/211616/15417
John2095

Réponses:

130

lsofest en effet votre meilleur pari. Le moyen le plus rapide et le plus simple serait ceci: -

sudo lsof /Volumes/myDrive

L'exécution peut prendre quelques minutes, mais une fois terminée, une liste des fichiers ouverts sur le disque apparaît. La sortie ressemblera à ceci:

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  

Dans ce cas, c'est l' QuickLookapplication qui a un fichier ouvert. Fermer l'application directement est le meilleur moyen de résoudre le problème. Cependant, ce n'est pas toujours possible. Par exemple, QuickLook ne s'affiche pas comme une application accessible dans le Dock.

Si vous ne pouvez pas fermer l'application manuellement, vous pouvez utiliser la killcommande pour la terminer à partir de la ligne de commande. Pour ce faire, utilisez la PIDcolonne de la deuxième colonne comme identifiant à tuer. À partir de l'exemple ci-dessus, ce serait:

kill 2158

Notez que parfois cela ne fonctionne pas et qu'une forme plus agressive killdoit être utilisée. Voici une série d'agressivité croissante (en utilisant l'exemple de PID de 2158):

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

Vous devriez pouvoir éjecter le disque une fois que le processus / l'application a été tué.

Une dernière note lsofpeut prendre une minute ou deux. Cela peut également être suspendu, mais vous devez le laisser au moins quelques minutes avant de décider que c'est ce qui s'est passé.

De plus, parfois, la commande de base sudo lsof /Volumes/myDrivene trouve rien. Si cela se produit, essayez d'ajouter l' +Dargument (c'est-à-dire sudo lsof +D /Volumes/myDrive). Cela fera une analyse descendante du disque. Cela prendra plus de temps, mais tout ce qui pourrait empêcher le disque d’être éjecté doit être récupéré.

( Pointe du chapeau au message d'Alec Jacobson pour plus de détails. )

Paul Gilfedder
la source
1
J'ai trouvé cela aussi, mais j'espérais que quelqu'un a une solution non-terminale. Sinon, vous aurez votre plus un;)
CousinCocaine
3
→ Paul: Je vous suggère d'améliorer votre commande Suggéré comme:/usr/bin/sudo lsof /Volumes/myDrive
dan
3
Oh excellent, j'ai fait lsof sans sudo, ce qui donne des résultats totalement différents.
Alper
2
Oui, le sudo est certainement nécessaire dans de nombreux cas. Dans mon cas, cela a révélé que Spotlight avait tenté d'indexer le disque. La solution consistait donc à désactiver Spotlight pour le disque, puis à arrêter / redémarrer manuellement Spotlight.
Tom
30

Avez-vous essayé $ diskutil unmount /Volumes/Diskname?

Ou $ diskutil unmount force /Volumes/Diskname?

Comme l'indique la page de manuel :

En raison de la nature complexe et imbriquée de Mac OS X, umount peut échouer souvent. Il est recommandé d'utiliser diskutil (1) (comme dans "diskutil unmount / mnt") à la place.

Si votre nom contient des espaces, veillez à les échapper avec \, par exemple:

$ diskutil unmount /Volumes/Disk\ Name

Ou utilisez des guillemets pour éviter toute confusion.

$ diskutil unmount "/Volumes/Disk Name"
Jason Robinson
la source
1
Je crois que j'ai essayé cela et cela n'a pas fonctionné. Mais la prochaine fois, je réessayerai et mettrai à jour mon message en conséquence.
CousinCocaine
Votre exemple contient des citations, pas des apostrophes. Ce qui est une bonne chose.
Nicolas Barbulesco
1
@ NicolasBarbulesco: Merci de l'avoir signalé, j'ai apporté des corrections à la réponse. Bonne prise!
Jason Robinson
1
A travaillé -> sudo diskutil unmount force / Volumes / Nom du disque
tgkprog
1
@tgkprog Heureux de l'entendre, merci également pour le sudocommandement, cela peut aider les autres.
Jason Robinson
15

Votre problème est probablement dû au processus suivant  mds : Spotlight indexe votre disque.

J'ai ce problème et je n'ai pas encore trouvé de solution.

Nicolas Barbulesco
la source
Voici comment désactiver / réactiver l'indexation Spotlight: iclarified.com/49187/…
rstackhouse
J'ai aussi trouvé que mds service l'utilisait. J'ai essayé de désactiver le service mds pour lecteur flash en utilisant "sudo mdutil -i off / Volumes / 16 Go", mais cela ne m'a pas aidé. J'ai dû relancer le Finder en utilisant "Option + Clic" sur FInder.
Aruna
6

Vous pouvez essayer l'application donationware " Qu'est-ce qui me garde? " Qui indique quel processus / quelle application utilise le volume / dossier / fichier.

Ce programme est certifié par le développeur pour Mac OS X 10.6 Snow Leopard, mais la page RoaringApps de cette application indique qu'il fonctionne correctement sous OS X 10.7 Lion et OS X 10.8 Mountain Lion.

Qu'est-ce qui me retient?

Avez-vous déjà eu le problème où vous ne pouvez pas vider la Corbeille ou éjecter un disque car quelque chose vous empêche? Généralement, la raison en est que certaines applications ont un fichier ouvert et que, par conséquent, vous ne pouvez pas vous débarrasser du disque ou supprimer le fichier. C'est pourquoi nous avons créé Ce qui me retient! What's Keeping Me identifiera l'application qui maintient l'élément ouvert. Vous pouvez ensuite utiliser What's Keeping Me pour quitter l'application posant problème (ou la tuer si nécessaire) pour pouvoir effectuer votre tâche. What's Keeping Me inclut un flux de travail Automator qui vous permet également d'effectuer des recherches directement à partir du Finder!

MK
la source
1
Cela ressemble à un logiciel valide, mais je préfère vraiment les solutions natives OS X.
CousinCocaine
Par natif, vous voulez dire quelque chose d’Apple? Il n'y a rien de tel sur l'interface graphique. De plus, WKM existe depuis plusieurs années.
MK
Merci pour ton ajout. Natif n'est pas le mot correct, ce que je voulais dire était «non-tiers». WKM est une bonne solution, mais personnellement, je préfère lsof.
CousinCocaine
Je viens de tester l'application dans High Sierra et cela fonctionne toujours. C'est aussi 64 bits.
dianeoforegon
4

J'ai reçu ce message malgré la certitude qu'il n'y a aucun fichier ouvert sur le volume . J'ai vérifié cela avec Why Not Unmount , un outil graphique pouvant indiquer les fichiers ouverts sur un disque.

Dans mon cas, c'était un signe que le système de fichiers est corrompu. L'exécution de l'Utilitaire de disque (ou si cela ne suffisait pas, DiskWarrior) a résolu le problème et rendu le disque éjectable à nouveau.

Hobbes
la source
1
Dans mon cas, le système n'était pas corrompu.
CousinCocaine
Cela semble peu probable. Plus probablement Spotlight, ou une autre application ou service a un verrou sur le disque.
Tom
3

La solution en ligne de commande et What's Keeping Me fonctionnent parfaitement.

Pour récapituler, la ligne de commande dans le terminal est la suivante:

lsof | grep /Volumes/myDrive

L’application graphique «What's Keeping Me» est disponible chez Hamsoft Engineering .

Captures d'écran des deux avec la même recherche en cours.

Sortie de ligne de commande Interface graphique pour ce qui me garde

Je préfère légèrement la ligne de commande, car elle est toujours là pour vous. D'autre part, What's Keeping Me est plus rapide et plus facile à utiliser si vous l'avez installé.

Foliovision
la source
3

REMARQUE: fseventerfonctionne jusqu'à ce que OS X 10.10 Yosemite et la page du développeur http://www.fernlightning.com soient entre-temps déconnectés. Par conséquent, les liens de produits ont été supprimés. Avec brew cask install fseventeril peut encore être disponible sur les anciennes versions de macOS.

Il existe une alternative graphique à l’application CLI lsof:
fseventerc’est un excellent utilitaire de surveillance de l’accès au système de fichiers à diverses fins . Il fonctionne avec les autorisations de super utilisateur ( sudo), de sorte qu'il voit tous les accès en lecture / écriture de tous les systèmes de fichiers montés et les présente de manière très claire.

Mon expérience: j’avais un volume qui ne pouvait pas toujours être éjecté correctement (comme dans les captures d’écran du PO), et qui nécessitait toujours une "éjection forcée", parfois même une déconnexion physique forcée (ni même recommandé! Pouvant endommager votre (s) système (s) de fichiers à ce moment. disque) ou un arrêt du système pour contourner cette méthode brute.

Mon correctif: Résumé: le problème d'éjection peut être dû à un contenu de fichier corrompu ou hérité sur ce volume. Supprimer le contenu problématique peut résoudre ce problème de façon permanente. En détail:

  1. Déterminez quel fichier est utilisé (avec lsofou fseventer). Dans mon cas, c’était un fichier Mac OS classique avec une fourchette de ressources qui restait ouverte, probablement en raison du processus d’analyse de disque en arrière-plan (Spotlight, QuickLook ou similaire).

  2. Sauvegardez ces données troublantes dans une archive de fichier (qui conserve les données de ressources spécifiques du Mac (Classic)). J'ai simplement utilisé la fonction native "Compress" de Finder à partir de son menu contextuel.

  3. Supprimer le fichier / dossier en difficulté.

    • Avec Finder comme d'habitude. Cela va probablement échouer car il s'agit d'un "fichier / dossier en difficulté".
    • Avec Finder plus, maintenez la touche ALT enfoncée tout en vidant la corbeille. Cela crée un peu plus de force, mais cela échouera probablement.
    • À travers le terminal avec sudo rm -R /path/to/troublesome/FileOrFolder. Cela a finalement fonctionné après l'échec des tentatives de suppression de Finder.
  4. Essayez de démonter à nouveau le volume. Il peut toujours échouer, car les processus en arrière-plan, qui ont échoué, peuvent toujours être dans un état irrécupérable .

  5. Redémarrer. Ensuite, essayez de démonter à nouveau. A partir de là, le volume fonctionna à nouveau correctement. Opérations normales de montage, démontage, lecture / écriture. Ce n'est que lorsqu'un fichier est effectivement ouvert par un processus utilisateur que le démontage est empêché. Comportement parfaitement normal à nouveau.

porg
la source
1

Solution Assurez-vous que tous les programmes sont fermés. Cliquez sur l'icône Apple en haut à gauche de l'écran, puis sur Forcer à quitter. Dans la liste, cliquez sur Finder. Cliquez maintenant sur le bouton Relancer. Ensuite, essayez à nouveau d'éjecter le lecteur.

moqueur
la source
Avez-vous vu cette solution fonctionner?
Nicolas Barbulesco
1

Essayez de relancer le Finder. Ici ça marche

Alain
la source
Je ne sais pas pourquoi cela a été voté; Dans mon cas, QuickLook et mds étaient tous les deux en attente (malgré l'absence de fenêtre de recherche active ouverte). Je pouvais redémarrer mds, mais j'ai qlmanage -rdit qu'il s'agissait d'une "réinitialisation de quicklookd", mais le fichier était toujours ouvert conformément à lsof +D /path/to/volume. Un relancement du viseur l'a éclairci et j'ai pu éjecter le volume.
AC Capehart
-2

J'ai redémarré mon Mac et cela a été corrigé :-)

Génie
la source
1
Je préfère un démontage propre du lecteur. Comme je suis en train d'effectuer plusieurs tâches, la déconnexion et la connexion ne sont pas préférées, de même que l'installation de logiciels tiers.
CousinCocaine