¿Cómo expulsar mi disco externo cuando mi Mac se niega debido a Spotlight?

He conectado un disco externo a mi Mac. Ahora, quiero expulsarlo. Pero mi Mac se niega obstinadamente y dice que una aplicación puede estar usando el disco.

No he lanzado ninguna aplicación ni abierto ningún archivo del disco.

He descargado e instalado la aplicación  What's Keeping Me? Esta aplicación es bastante agradable. Ella me dice que el proceso  mdsestá usando mi disco.

He matado el proceso  mdsy varios procesos  mdworker. Estos son para Spotlight. Pero tales procesos se generan nuevamente.

¿Cómo puedo expulsar mi disco de mi Mac?

Tengo Mac OS X 10.6.8.

¿Solo esperar a que terminen los procesos funciona? He encontrado que esto funciona en la práctica para mí.
Esto funcionó para mí ... sudo killall mdsluego arrastre rápidamente el disco a la lista de privacidad de Spotlight (en las preferencias de Spotlight).

Respuestas (10)

Puede intentar desmontarlo desde la línea de comando:

diskutil unmount /Volumes/MountPoint

o con fuerza:

diskutil unmount force /Volumes/MountPoint

Si sigue fallando, comprueba qué está usando tu disco:

sudo fs_usage -w -f filesys | grep Volumes

O usando lsof:

sudo lsof | grep Volumes

(Algunos procesos solo aparecen cuando lsof se ejecuta como administrador).


Para deshabilitar Spotlight temporal, ejecute:

sudo mdutil -a -i off

Luego sudo mdutil -a -i onpara volver a habilitar.


Otras aplicaciones que pueden ser útiles: Whats Keeping Me .

Acabo de enterarme de que Spotlight (mds, mds_store, mdworker) no aparecerá en la lista cuando lo ejecute lsofcomo usuario. Sin embargo, sudo lsof | grep Volumesfunciona bien. ("Whats Keeping Me" tiene una casilla de verificación "Como administrador", respectivamente).
5 años después , lo que me mantiene está obsoleto, ¡pero fs_usagefunciona muy bien!
Simple diskutil unmount forcefuncionó bien en mi caso, ¡gracias!

Simplemente desactive la indexación de la unidad y borre el contenido del diario en el volumen. Para hacerlo, abra la Terminal e ingrese el siguiente comando:

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

Debe ejecutar este procedimiento como administrador. Introduzca su contraseña cuando se le solicite. Es posible que sea necesario reiniciar.

Alternativamente, como sugirió Simon White, simplemente apague la máquina y luego desconecte la unidad. Sin embargo, la advertencia es que la unidad comenzará a indexar cuando se vuelva a conectar.

simplemente detener el proceso es suficiente. sudo mdutil -i off "/Volumes/Name_of_Drive"( -Eborra y reconstruye el índice). Debería comenzar a escanear nuevamente la próxima vez que monte la unidad. para deshabilitar el análisis de esa unidad de forma permanente, utilice -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Vea todos estos argumentos y más escribiendo mdutilen su línea de comando.
Me gustó la sugerencia, pero no sugiera salir después del comando... No me di cuenta y perdí el historial de salida que tenía allí.
@njboot - No. El comando "historial" solo me da el historial de los comandos ingresados, no me devuelve su resultado.
Después de emitir el comando mdutil, aún no podía expulsar el disco. Así que también emití "sudo killall mds", y eso hizo que funcionara.
"Simplemente"? ¿Quién es tu audiencia? Tal vez escribir un comando aleatorio en una terminal no sea simple. * nix ofusca cada herramienta en un montón de caracteres sin sentido. ¿Qué tal "Simplemente 'man mdutil', oh, wow: "El comando mdutil es útil para administrar los almacenes de metadatos para volúmenes montados". Oh, ahora metadatos de Google... No hay nada simple en esto.
@iJames la gente quiere respuestas. Di una respuesta. Mi respuesta funciona. Si quieren aprender más sobre lo que hace, son libres de hacerlo. No entiendo el punto de tu comentario.
@njboot Gracias por preguntar. Soy reacio al uso de "simplemente" básicamente en cualquier soporte de software o discusión de documentación. Solo menosprecia al lector que no tiene una base sólida. Es peor que una línea de comando con un montón de interruptores haga algo potencialmente inseguro, permanente y difícil de deshacer. Por lo tanto, se debe considerar una respuesta más completa con más claridad sobre el riesgo. Los carteles deben asumir que el solicitante sabe muy poco. Espero que eso aclare lo que estaba tratando de decir arriba. Regla general: si crees que es simple, no lo es...
Esta respuesta es peligrosa porque accidentalmente podría convencer a alguien de BORRAR el disco, no simplemente expulsarlo. -1.
Hola, @user1258361, este comando no borra un disco, pero elimina las bases de datos de Spotlight guardadas. Esos se pueden regenerar fácilmente, ya que eso sucede cada vez que un nuevo sistema operativo o una actualización desencadenan una reconstrucción de la base de datos.

A menudo encuentro que es mds lo que me impide desmontar un volumen.

sudo killall mds

Y luego (rápidamente) intente expulsar el volumen nuevamente.

En mi caso, estoy montando el volumen principal de otra Mac en mi Mac actual. No quiero deshabilitar Spotlight porque quiero que la indexación se reanude cuando el volumen externo se devuelva a la otra Mac (como su volumen de arranque).

Interesante. ¡Quizás el "rápido" sea la clave!
¡Gracias! Esta es la única respuesta que funcionó para mí además de la expulsión forzada, que no me gustaría hacer.

Puede intentar forzar la salida de Finder, esto funcionó para mí. Finder estaba colgado de la unidad USB, por lo que forzar el cierre y el reinicio liberaron lo que fuera el bloqueo.

¿cómo se haría eso? forzar la salida del buscador?
Opción+Comando+ESC !
Pero, ¿puede esto funcionar en el caso de Spotlight de mi pregunta?
Esto funcionó para mí en Catalina.

Para evitar que Spotlight indexe la unidad, cree un archivo de texto sin formato en TextEdit sin contenido, solo el título de .metadata_never_index y guárdelo en el archivo externo. Desmarque usar la extensión "txt"... y dígale a TextEdit que sí, desea guardarlo con un punto al frente (que lo hará invisible).

No estoy seguro de si eso lo detendrá ahora, pero lo evitará en el futuro.

Alternativamente, convierta este Applescript en una aplicación, para forzar la expulsión [con las advertencias habituales sobre la expulsión forzada...]... crédito a The 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
Gracias. Pero... "para forzar la expulsión [con las advertencias habituales sobre la expulsión forzada...]" Esto es preocupante. Si aceptara correr el riesgo de corromper el disco, simplemente lo desconectaría.
Luego configure el indicador sin foco y espere a que lo vea y deje de indexar.
O bien, puede ejecutar sudo diskutil unmountDisk force /Volumes/Name_of_Volumedesde la Terminal para hacerlo a la fuerza. Ese guión no es necesario.
@NicolasBarbulesco Estos no son lo mismo. Desmontar a la fuerza un volumen no es lo mismo que desconectarlo. En este último caso, estás quitando energía físicamente al dispositivo de forma repentina, lo que, como es de imaginar, puede dañar un disco magnético que gira a varios K rpm. En el primero, simplemente obligas al dispositivo a desmontar el volumen. Luego, el disco gira correctamente y usted tira del enchufe como lo haría normalmente. Es mucho más seguro.
@njboot: no probé tu diskutilcomando. Pero probé el equivalente con Disk Utility, sin éxito.
@NicolasBarbulesco Disk Utility no ofrece la opción "forzar", solo su contraparte de línea de comando. En cualquier caso, sugiero probar el comando enumerado en mi respuesta anterior antes de continuar. Salud.
@njboot - Esto es interesante. ¿Cuáles son los riesgos de expulsar a la fuerza con su comando?

Si no puede desconectar una unidad por algún motivo, simplemente puede apagar la computadora. Cuando la computadora está apagada, puede desconectar la unidad de manera segura. Luego inicie la computadora. Esto no solo le permitirá desconectar la unidad de manera segura, sino que también garantizará que el proceso mds se reinicie en caso de que realmente se cuelgue.

Si ha decidido que no quiere usar Spotlight con esa unidad, todo lo que tiene que hacer para evitar que se indexe es agregar la unidad a la pestaña Privacidad del panel Spotlight de Preferencias del sistema. Spotlight ignorará la unidad.

Alternativamente, si desea usar Spotlight en esa unidad, crear un índice la primera vez que la computadora ve la unidad es un mal necesario. Una vez que se crea el índice, se actualiza con cada cambio en cada archivo, por lo que no tendrá que volver a esperar. Pero si no ve una barra de progreso en el menú Spotlight, es probable que mds esté bloqueado. Nuevamente, simplemente apague la computadora en ese caso y desconecte su unidad.

Seguramente puedo apagar la Mac. Pero esto no es una opción.
Me gusta la idea de que Spotlight reconozca mi disco. Pero traté de hacer que Spotlight ignorara mi disco por el momento. Mediante el uso de Preferencias del sistema → Spotlight. Esto no funcionó: "Imposible debido a un error desconocido". Gran mensaje de error! ¡Apple debe haber contratado a un desertor de Micro$oft! También intenté dejar que el tiempo actuara. Fui a trabajar y dejé que Spotlight indexara el disco durante todo el día. Por la noche volví y el problema seguía siendo el mismo.
De hecho, creo que el problema es que mdsno le dice al sistema que terminó con la unidad o no se cierra después de que terminó y, al hacerlo, retiene la unidad hasta que el proceso finaliza de alguna manera (como un apagado). Si veo que mdsno usa la CPU mientras afirmo usar la unidad, fuerzo la expulsión de la unidad.
@bauerMusic - ¿Cómo "forzar la expulsión del disco"?
@NicolasBarbulesco La 'unidad de expulsión forzada' es una opción que ofrece el sistema después de un tiempo. Si intenta expulsar, debería decir 'Intentando expulsar su disco' (o similar) y después de un minuto más o menos (de no tener éxito), mostrar otra ventana emergente que tiene una opción para forzar la expulsión.

Este problema ha resurgido en Catalina y ninguno de estos funcionó. Por ahora, forzaré la expulsión y sacaré la unidad de todos modos si se resiste.

Es una solución horrible, pero no veo cómo reduce el riesgo o ahorra tiempo en lugar de eliminar el proceso que está atascado y posiblemente leer o escribir datos.

Otra opción simple es expulsarlo a través de Disk Utilities.

¿Leíste los comentarios en la respuesta de Tetsujin? Disk Utility no ofrece la opción "forzar"
Solo inténtalo. Una simple expulsión a través de Disk Utilities siempre me funciona cuando una unidad externa de cualquier tipo no se expulsa porque está "en uso".
Intenté expulsar la unidad con Disk Utility. Pero esto no funciono.
Lamento escuchar eso. Disk Utility expulsa los discos "en uso" que no se pueden montar muy bien en mi unidad que se ejecuta en 10.7.5. Puede buscar en DiskWarrior.
Por alguna razón, usar el comando de desmontaje de Disk Utility funcionó para mí en un disco problemático.
Disk Utility ofrece la opción de forzar.Usage: diskutil u[n]mount [force] MountPoint
Aunque hoy solo usar "Expulsar" en la Utilidad de Discos no lo expulsó, me dio una pista muy útil. Mientras pensaba que Spotlight estaba indexando el disco, Disk Utility me dijo que no se pudo expulsar el "disco 3 de Time Machine" porque actualmente está en uso por "1Password mini" .

Puede decirle a Spotlight que nunca debe indexar esa unidad y entonces no tendrá que preocuparse por eso.

En las Preferencias del sistema 10.11 hay una entrada para 'Spotlight', que tiene una pestaña llamada 'Privacidad'. Haga clic en '+', seleccione su unidad y listo. Simplemente cierre las Preferencias del sistema, espere unos segundos para que el sistema note la actualización y debería poder expulsar. Ahora no comenzará a indexar el disco la próxima vez que se conecte, por lo que no volverá a tener el problema en el futuro.

Intenté eso. Eso no funcionó. Vea mi comentario aquí: apple.stackexchange.com/questions/142459/…

Estaba limpiando los miles de CD y DVD que se han acumulado durante décadas y uno se atascó en el "Superdrive" externo de Mac Apple. Intenté todos los trucos para expulsarlo, incluido el reinicio. Entonces el sistema operativo ni siquiera mostraría que la unidad externa existía. Había muchas sugerencias en línea sobre cómo expulsar el DVD y probé la mayoría de ellas, dejando las más extremas para el final, que consistían en abrir la carcasa con un destornillador de cabeza plana.

Mi solución fue desconectar el USB de la unidad de la Mac y conectarlo a una computadora portátil con Windows 7. La computadora portátil encontró el controlador correcto y expulsó automáticamente el disco. Publiqué esta solución en el foro de soporte de Mac, pero la eliminaron porque "la publicación no era una pregunta técnica".

Creo que la ironía de que Windows 7 arreglara un "Superdrive" fue demasiado para ellos.