Comment éjecter mon disque externe lorsque mon Mac refuse à cause de Spotlight?

40

J'ai branché un disque externe sur mon Mac. Maintenant, je veux l'éjecter. Mais mon Mac refuse obstinément et dit qu’une application peut utiliser le disque.

Je n'ai lancé aucune application ni ouvert aucun fichier du disque.

J'ai téléchargé et installé l'application  Qu'est-ce qui me garde? Cette application est assez sympa. Elle me dit que le processus  mdsutilise mon disque.

J'ai tué le processus  mdset plusieurs processus  mdworker. Ce sont pour Spotlight. Mais de tels processus sont à nouveau engendrés.

Comment éjecter mon disque de mon Mac?

J'ai Mac OS X 10.6.8.

Nicolas Barbulesco
la source
Est-ce qu'attendre que les processus se terminent? J'ai trouvé cela fonctionne dans la pratique pour moi.
Chogg

Réponses:

27

Désactivez simplement l'indexation du lecteur et effacez le contenu du journal sur le volume. Pour ce faire, ouvrez Terminal et entrez la commande suivante:

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

Vous devez exécuter cette procédure en tant qu'administrateur. Entrez votre mot de passe lorsque vous y êtes invité. Un redémarrage peut être nécessaire.

Comme le suggère Simon White, vous pouvez également éteindre la machine, puis débrancher le lecteur. La mise en garde est que le lecteur va commencer à indexer lorsqu'il est connecté à nouveau, cependant.

njboot
la source
4
il suffit d’arrêter le processus. sudo mdutil -i off "/Volumes/Name_of_Drive"( -Eefface et reconstruit l'index). Il devrait recommencer à analyser la prochaine fois que vous montez le lecteur. pour désactiver l’analyse permanente de ce lecteur, utilisez -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Voir tous ces arguments et plus en tapant mdutildans votre ligne de commande.
Dannid
2
J'ai aimé le conseil, mais s'il vous plaît, ne proposez pas de quitter après la commande ... Je n'ai pas remarqué et j'ai perdu l'historique de sortie que j'avais là-bas.
Ravemir
@njboot - Non. La commande "history" me donne simplement l'historique des commandes entrées, elle ne me rend pas leur résultat.
Nicolas Barbulesco
1
Après avoir émis la commande mdutil, je ne pouvais toujours pas éjecter le disque. Alors j'ai aussi publié "sudo killall mds", et ça a fonctionné.
Thomas Tempelmann
21

Vous pouvez essayer de le démonter de la ligne de commande:

diskutil unmount /Volumes/MountPoint

ou avec force:

diskutil unmount force /Volumes/MountPoint

Si le problème persiste, vérifiez ce qui utilise votre disque:

sudo fs_usage -w -f filesys | grep Volumes

Ou en utilisant lsof:

sudo lsof | grep Volumes

(Certains processus n'interviennent que lorsque lsof est exécuté en tant qu'administrateur.)


Pour désactiver Spotlight temporaire, exécutez:

sudo mdutil -a -i off

Puis sudo mdutil -a -i onréactiver.


Autres applications qui peuvent être utiles: Whats Keeping Me .

Kenorb
la source
2
Je viens de découvrir que Spotlight (mds, mds_store, mdworker) ne sera pas répertorié lors de l'exécution en lsoftant qu'utilisateur. Cependant, sudo lsof | grep Volumesfonctionne bien. ("Ce qui me garde" a une case "En tant qu'administrateur", respectivement.)
hans_meine
5

Souvent, je trouve que c’est mds qui m’empêche de démonter un volume.

sudo killall mds

Et ensuite (rapidement) essayez d’éjecter à nouveau le volume.

Dans mon cas, je monte le volume principal d'un autre Mac sur mon Mac actuel. Je ne veux pas désactiver Spotlight car je veux que l'indexation reprenne lorsque le volume externe est renvoyé à l'autre Mac (en tant que volume de démarrage).

Colin
la source
Intéressant. Peut-être que le "rapidement" est la clé!
Nicolas Barbulesco
Merci! C’est la seule réponse qui a fonctionné pour moi autre que l’éjection de force, ce que je ne voudrais pas faire.
addison
2

Pour empêcher Spotlight d’indexer le lecteur, créez un fichier texte en clair dans TextEdit, sans le contenu, uniquement le titre de .metadata_never_index, puis enregistrez-le sur l’extérieur. Décochez la case Utiliser l'extension "txt" ... et dites à TextEdit qu'oui, vous souhaitez l'enregistrer avec un point à l'avant (ce qui la rend invisible).

Je ne sais pas si cela va l'arrêter maintenant, mais cela l'empêchera à l'avenir.

Vous pouvez également transformer cet Applescript en une application, pour forcer l'éjection [avec les mises en garde habituelles relatives à l'éjection forcée ...] ... crédit au MacTipper Blog.

    property show_credits : true

set the_volumes to do shell script "ls /Volumes/"
tell application "Finder" to set the_HD to path to home folder as string

set ejectable_volumes to {}
repeat with i in (every paragraph of the_volumes)
    if the_HD does not start with i then
        set end of ejectable_volumes to (i as string)
    end if
end repeat
if (count of items of ejectable_volumes) is 0 then
    tell me to activate
    display dialog "Sorry, but there are no ejectable volumes."
else if (count of items of ejectable_volumes) is 1 then
    tell me to activate
    set the_result to item 1 of ejectable_volumes as string
    display dialog ("Eject \"" & the_result & "\"?") buttons {"No", "Yes"} default button 2 cancel button "No"
    set the_path to quoted form of ("/Volumes/" & the_result as string)
    do shell script "hdiutil eject -force " & the_path
else
    tell me to activate
    set the_result to choose from list ejectable_volumes with prompt "Please choose a volume to eject (You can select multiple items):" with multiple selections allowed
    if the_result is not false then
        repeat with j in the_result
            set the_path to quoted form of ("/Volumes/" & j as string)
            do shell script "hdiutil eject -force " & the_path
        end repeat
    end if
end if

if show_credits is true then
    tell me to activate
    set the_credits to button returned of (display dialog "This applescript brought to you by The MacTipper Blog.\n\nhttp://mactipper.com" buttons {"Don't Show Again", "Visit TMB", "OK"} default button 3) as string
    if the_credits is "Don't Show Again" then
        set show_credits to false
    else if the_credits is "Visit TMB" then
        open location "http://mactipper.com"
    end if
end if
Tetsujin
la source
Merci. Mais ... "pour éjecter de force [avec les mises en garde habituelles sur l'éjection de force ...]" C'est inquiétant. Si j'acceptais de prendre le risque de corrompre le disque, je le débrancherais simplement.
Nicolas Barbulesco
Ensuite, activez l’indicateur no spotlight et attendez qu’il le voie et arrêtez l’indexation.
Tetsujin
Ou, vous pouvez courir sudo diskutil unmountDisk force /Volumes/Name_of_Volumedu terminal pour le faire de force. Ce script n'est pas nécessaire.
njboot
@NicolasBarbulesco Ce ne sont pas les mêmes. Le démontage forcé d'un volume n'est pas la même chose que de tirer la fiche. Dans ce dernier cas, vous retirez physiquement l’alimentation de l’appareil de façon soudaine, ce qui, comme on peut l’imaginer, peut endommager un disque magnétique tournant à plusieurs K / min. Dans le premier cas, vous obligez simplement le périphérique à démonter le volume. Le disque tourne ensuite correctement et vous tirez comme d'habitude. C'est beaucoup plus sûr.
njboot
@ njboot - Je n'ai pas essayé votre diskutilcommande. Mais j'ai essayé l'équivalent avec Utilitaire de disque - en vain.
Nicolas Barbulesco
2

Vous pouvez essayer de forcer le Finder, cela a fonctionné pour moi. Le Finder était suspendu à la clé USB. Il a donc fallu forcer le redémarrage et le redémarrage pour libérer le blocage.

utilisateur128242
la source
comment ferait-on cela? forcer quitter chercheur?
Ruskes
Option + Commande + ESC!
Sdive
Mais cela peut-il fonctionner dans le cas Spotlight de ma question?
Nicolas Barbulesco
1

Si vous ne pouvez pas déconnecter un lecteur pour une raison quelconque, vous pouvez simplement éteindre l'ordinateur. Lorsque l'ordinateur est éteint, vous pouvez déconnecter le lecteur en toute sécurité. Puis démarrez l'ordinateur. Cela vous permettra non seulement de débrancher le lecteur en toute sécurité, mais garantira également le redémarrage du processus mds au cas où il serait bloqué.

Si vous avez décidé de ne pas utiliser Spotlight avec ce lecteur, il vous suffit de l'ajouter à l'onglet Confidentialité de la sous-fenêtre Spotlight des Préférences Système. Spotlight va ignorer le lecteur.

Si vous souhaitez utiliser Spotlight sur ce lecteur, vous pouvez également créer un index la première fois que l'ordinateur voit que le lecteur est un mal nécessaire. Une fois que l'index est créé, il est mis à jour à chaque modification apportée à chaque fichier, de sorte qu'il ne vous fera plus attendre. Mais si vous ne voyez pas de barre de progression dans le menu Spotlight, il est probable que mds soit bloqué. Encore une fois, éteignez simplement l'ordinateur dans ce cas et déconnectez votre lecteur.

Simon White
la source
1
Je peux sûrement éteindre le Mac. Mais ce n'est pas une option.
Nicolas Barbulesco
J'aime l'idée que Spotlight connaisse mon disque. Mais j'ai essayé de faire en sorte que Spotlight ignore mon disque pour le moment. En utilisant Préférences Système → Spotlight. Cela n'a pas fonctionné: "Impossible à cause d'une erreur inconnue." Grand message d'erreur! Apple doit avoir embauché un transfuge chez Micro $ oft! J'ai aussi essayé de laisser le temps agir. Je suis allé travailler et j'ai laissé Spotlight indexer le disque pendant toute la journée. Le soir, je suis revenu et le problème était toujours le même.
Nicolas Barbulesco
En fait, je pense que le problème est qu’il mdsne dit pas au système qu’il a fini avec le lecteur ou ne s’arrête pas après cela, ce faisant, maintient le lecteur jusqu’à ce que le processus soit tué d’une manière ou d’une autre (comme un arrêt). Si je vois mdsne pas utiliser le processeur tout en prétendant utiliser le lecteur, je force l'éjection du lecteur.
bauerMusic
@bauerMusic - Comment "éjectez-vous de force le lecteur"?
Nicolas Barbulesco
@NicolasBarbulesco Le «lecteur d'éjection forcée» est une option offerte par le système après un certain temps. Si vous essayez d’éjecter, le message «Essayer d’éjecter votre disque» doit apparaître (ou similaire) et après une minute environ (en cas d’échec), affichez une autre fenêtre contextuelle avec une option permettant de forcer l’éjection.
bauerMusic
1

Une autre option simple consiste à l'éjecter via les utilitaires de disque.

Tim Undheim
la source
Avez-vous lu les commentaires dans la réponse de Tetsujin? Utilitaire de disque n'offre pas l'option "force"
klanomath
Juste l'essayer. Une simple éjection via Disk Utilities fonctionne toujours pour moi lorsqu'un disque externe, quel qu'il soit, ne sera pas éjecté car il est "en cours d'utilisation".
Tim Undheim
J'ai essayé d'éjecter le lecteur avec Utilitaire de disque. Mais cela n'a pas fonctionné.
Nicolas Barbulesco
1
Désolé, d'entendre celà. Utilitaire de disque éjecte les disques «en cours d’utilisation» non montables sur mon unité fonctionnant sous 10.7.5. Vous pourriez regarder dans DiskWarrior.
Tim Undheim
1
Pour une raison quelconque, l’utilisation de la commande d’usage de disque de l’utilitaire de disque a fonctionné pour moi sur un disque posant problème.
MiB
0

Vous pouvez dire à Spotlight qu'il ne doit jamais indexer ce lecteur et que vous n'aurez pas à vous en préoccuper.

Dans les Préférences Système 10.11, il y a une entrée pour «Spotlight», qui a un onglet appelé «Confidentialité». Cliquez sur '+', sélectionnez votre lecteur et vous avez terminé. Fermez simplement les Préférences Système, attendez quelques secondes pour que le système remarque la mise à jour et vous devriez pouvoir l'éjecter. Désormais, le disque ne sera pas indexé lors de votre prochaine connexion, vous ne rencontrerez donc plus le problème.

David K. Storrs
la source
J'ai essayé ça. Cela n'a pas fonctionné. Voir mon commentaire ici: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco le