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

40

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 desde el disco.

He descargado e instalado la aplicación  ¿Qué me mantiene? Esta aplicación es bastante buena. 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.

Nicolas Barbulesco
fuente
¿Solo espera que los procesos terminen de funcionar? He encontrado que esto funciona en la práctica para mí.
Chogg

Respuestas:

27

Simplemente apague la indexación de la unidad y borre el contenido del diario en el volumen. Para hacerlo, abra 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. Puede ser necesario reiniciar.

Alternativamente, como lo sugiere Simon White, simplemente apague la máquina y luego desconecte la unidad. Sin embargo, la advertencia es que la unidad comenzará a indexarse ​​cuando se vuelva a conectar.

njboot
fuente
44
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 escaneo de esa unidad de forma permanente, use -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Vea todos estos argumentos y más escribiendo mdutilen su línea de comando.
Dannid
2
Me gustó la sugerencia, pero no sugiera salir después del comando ... No me di cuenta y perdí el historial de resultados que tenía allí.
ravemir
@njboot - No. El comando "historial" solo me da el historial de los comandos ingresados, no me devuelve su resultado.
Nicolas Barbulesco
1
Después de emitir el comando mdutil, aún no podía expulsar el disco. Así que también publiqué "sudo killall mds", y eso lo hizo funcionar.
Thomas Tempelmann
21

Puede intentar desmontarlo desde la línea de comandos:

diskutil unmount /Volumes/MountPoint

o con fuerza:

diskutil unmount force /Volumes/MountPoint

Si todavía falla, verifique qué está usando su 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 .

kenorb
fuente
2
Me acabo de enterar de que Spotlight (mds, mds_store, mdworker) no aparecerá en la lista cuando me ejecute lsofcomo usuario. Sin embargo, sudo lsof | grep Volumesfunciona bien. ("Whats Keeping Me" tiene una casilla de verificación "Como administrador", respectivamente.)
hans_meine
5

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).

Colin
fuente
Interesante. Tal vez el "rápido" es la clave!
Nicolas Barbulesco
¡Gracias! Esta es la única respuesta que funcionó para mí además de la expulsión forzada, que no quisiera hacer.
addison
2

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 externo. Desmarque el uso de la extensión "txt" ... y dígale a TextEdit que sí, que desea guardarlo con un punto en el frente (lo que lo hará invisible).

No estoy seguro de si eso lo detendrá en este momento, 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 para 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
Tetsujin
fuente
Gracias. Pero ... "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.
Nicolas Barbulesco
A continuación, configure la bandera sin foco y espere a que la vea y deje de indexar.
Tetsujin
O bien, puede ejecutar sudo diskutil unmountDisk force /Volumes/Name_of_Volumedesde la Terminal para hacerlo por la fuerza. Ese guión no es necesario.
njboot
@NicolasBarbulesco Estos no son lo mismo. Desmontar a la fuerza un volumen no es lo mismo que tirar del enchufe. En el último caso, está eliminando físicamente la alimentación del dispositivo de forma repentina, lo que, como se imagina, puede dañar un disco magnético que gira a varias K rpm. En el primero, simplemente está obligando al dispositivo a desmontar el volumen. Luego, el disco gira hacia abajo correctamente y desconecta el enchufe como lo haría normalmente. Es mucho más seguro
njboot
@njboot: no probé tu diskutilcomando. Pero probé el equivalente con Disk Utility, pero fue en vano.
Nicolas Barbulesco
2

Puedes intentar forzar el cierre de Finder, esto funcionó para mí. Finder estaba colgado en la unidad USB, por lo que el cierre forzado y el relanzamiento liberaron lo que fue el bloqueo.

usuario128242
fuente
¿Cómo haría uno eso? forzar la salida del buscador?
Ruskes
Opción + Comando + ESC!
sdive
Pero, ¿puede funcionar esto en el caso de Spotlight de mi pregunta?
Nicolas Barbulesco
1

Si por alguna razón no puede desconectar una unidad, simplemente apague la computadora. Cuando la computadora está apagada, puede desconectar la unidad de forma segura. Luego enciende la computadora. Esto no solo le permitirá desconectar la unidad de forma segura, sino que también garantizará que el proceso mds se reinicie en caso de que realmente se bloquee.

Si ha decidido que no desea 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 de Spotlight de Preferencias del Sistema. Spotlight ignorará la unidad.

Alternativamente, si desea utilizar Spotlight en esa unidad, entonces crear un índice la primera vez que la computadora ve que 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 lo hará esperar nuevamente. Pero si no ve una barra de progreso en el menú de Spotlight, es probable que se cuelgue mds. Nuevamente, simplemente apague la computadora en ese caso y desconecte la unidad.

Simon White
fuente
1
Seguramente puedo apagar la Mac. Pero esto no es una opción.
Nicolas Barbulesco
Me gusta la idea de que Spotlight conozca mi disco. Pero intenté 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. La noche regresé y el problema seguía siendo el mismo.
Nicolas Barbulesco
De hecho, creo que el problema es que mdso bien no le dice al sistema que terminó con la unidad o no se cierra después de hacerlo, y al hacerlo, mantiene la unidad hasta que el proceso se interrumpe de alguna manera (como un apagado). Si veo que mdsno usa la CPU mientras afirmo usar la unidad, fuerzo a expulsar la unidad.
bauerMusic
@bauerMusic - ¿Cómo "forzar la expulsión del disco"?
Nicolas Barbulesco
@NicolasBarbulesco El 'Drive de expulsión forzada' es una opción que el sistema ofrece después de un tiempo. Si intenta expulsar, debería decir 'Intentando expulsar su unidad' (o similar) y después de un minuto más o menos (de no tener éxito), muestre otra ventana emergente que tenga la opción de forzar la expulsión.
bauerMusic
1

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

Tim Undheim
fuente
¿Leíste los comentarios en la respuesta de Tetsujin? Disk Utility no ofrece la opción "forzar"
klanomath
Solo inténtalo. Una simple expulsión a través de Disk Utilities siempre funciona para mí cuando una unidad externa de cualquier tipo no se expulsa porque está "en uso".
Tim Undheim
Intenté expulsar el disco con la Utilidad de Discos. Pero esto no funciono.
Nicolas Barbulesco
1
Lamento escuchar eso. Disk Utility expulsa discos "en uso" que no se pueden montar bien en mi unidad que funciona con 10.7.5. Podrías mirar DiskWarrior.
Tim Undheim
1
Por alguna razón, el uso del comando de desmontaje de la Utilidad de Discos funcionó para mí en un disco con problemas.
MiB
0

Puede decirle a Spotlight que nunca debe indexar esa unidad y luego 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 expulsarlo. Ahora no comenzará a indexar el disco la próxima vez que se conecte, por lo que no tendrá el problema nuevamente en el futuro.

David K. Storrs
fuente
Lo intenté Eso no funcionó. Vea mi comentario aquí: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco