57 votos

¿Cómo expulsar mi unidad externa cuando mi Mac se niega por culpa de 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  ¿Qué me retiene? Esta aplicación es muy bonita. Me dice que el proceso  mds está usando mi disco.

He matado el proceso  mds y varios procesos  mdworker . Estos son para Spotlight. Pero estos procesos se vuelven a reproducir.

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

Tengo Mac OS X 10.6.8.

0 votos

¿Funciona el hecho de esperar a que terminen los procesos? En la práctica, he comprobado que esto funciona para mí.

0 votos

Esto me funcionó... sudo killall mds luego arrastra rápidamente la unidad a la lista de privacidad de Spotlight (en las preferencias de Spotlight).

33voto

matthew k Puntos 11

Puede intentar desmontarlo de la línea de mando:

diskutil unmount /Volumes/MountPoint

o con la 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 sólo aparecen cuando lsof se ejecuta como administrador).


Para desactivar el Foco temporal, corre:

sudo mdutil -a -i off

Luego sudo mdutil -a -i on para volver a habilitarlo.


Otras aplicaciones que pueden ser útiles: Lo que me mantiene .

3 votos

Acabo de descubrir que Spotlight (mds, mds_store, mdworker) no aparece cuando ejecuto lsof como usuario. Sin embargo, sudo lsof | grep Volumes funciona bien. ("Qué me retiene" tiene una casilla de verificación "Como administrador", respectivamente).

0 votos

5 años después lo que me retiene es obsoleto, pero fs_usage ¡funciona muy bien!

32voto

Goldorak84 Puntos 116

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

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

Debe realizar este procedimiento como administrador. Introduzca su contraseña cuando se le pida. Puede ser necesario reiniciar.

Alternativamente, como sugirió Simon White, simplemente apague la máquina y luego desenchufe la unidad. Sin embargo, la advertencia es que la unidad comenzará a indexarse cuando se conecte de nuevo.

5 votos

Basta con detener el proceso. sudo mdutil -i off "/Volumes/Name_of_Drive" ( -E borra y reconstruye el índice). Debería empezar a escanear de nuevo la próxima vez que monte la unidad. para desactivar el escaneo de esa unidad de forma permanente, utilice -d ( sudo mdutil -d "/Volumes/Name_of_Drive" ). Vea todos estos argumentos y más escribiendo mdutil en su línea de comandos.

2 votos

Me gustó el consejo, pero por favor no sugieras salir después del comando... no me di cuenta y perdí el historial de salida que tenía ahí.

0 votos

@njboot - No. El comando "historial" sólo me da el historial de los comandos introducidos, no me devuelve su resultado.

6voto

Colin Puntos 151

A menudo encuentro que son los mds los que me impiden desmontar un volumen.

sudo killall mds

Y luego (rápidamente) trata de expulsar el volumen de nuevo.

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

0 votos

Interesante. Quizá el "rápidamente" sea la clave.

0 votos

Gracias. Esta es la única respuesta que me ha funcionado aparte de forzar la expulsión, cosa que no me gustaría hacer.

2voto

Tetsujin Puntos 23061

Para evitar que Spotlight indexe la unidad, crea un archivo de texto plano en TextEdit sin contenido, sólo el título de .metadata_never_index y guárdalo en el externo. Desmarca el uso de la extensión "txt" ... y dile a TextEdit que sí, que quieres guardarlo con un punto en la parte delantera (lo que lo hará invisible).

No estoy seguro de que eso lo detenga ahora, pero lo evitará en el futuro.

Alternativamente, convertir este Applescript en una aplicación, para forzar la expulsión [con las habituales advertencias 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

0 votos

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.

0 votos

Entonces, pon la bandera de no spotlight y espera a que lo vea y deje de indexar.

0 votos

O bien, puede ejecutar sudo diskutil unmountDisk force /Volumes/Name_of_Volume de la Terminal para hacerlo a la fuerza. Ese script no es necesario.

2voto

Simon White Puntos 164

Si no puedes desconectar un disco por cualquier razón, puedes simplemente apagar el ordenador. Cuando el ordenador está apagado, puede desconectar la unidad de forma segura. A continuación, inicie el ordenador. Esto no sólo le permitirá desenchufar la unidad de forma segura, sino que garantizará que el proceso mds se reinicie en caso de que se cuelgue realmente.

Si has decidido que no quieres usar Spotlight con esa unidad, todo lo que tienes que hacer para evitar que se indexe es añadir la unidad a la pestaña de privacidad del panel Spotlight de las Preferencias del sistema. Spotlight ignorará la unidad.

Alternativamente, si quieres usar Spotlight en ese disco, construir un índice la primera vez que el ordenador vea el disco es un mal necesario. Una vez que se construye el índice, se actualiza con cada cambio en cada archivo, así que no te hará esperar de nuevo. Pero si no ves una barra de progreso en el menú Spotlight, entonces es probable que mds se cuelgue. De nuevo, en ese caso, sólo tienes que apagar el ordenador y desconectar el disco.

1 votos

Seguro que puedo apagar el Mac. Pero esto no es una opción.

0 votos

Me gusta la idea de que Spotlight conozca mi disco. Pero he intentado hacer que Spotlight ignore mi disco por el momento. Utilizando el Spotlight de las Preferencias del Sistema. 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 probé a dejar actuar al tiempo. Me fui a trabajar y dejé que Spotlight indexara el disco durante todo el día. Por la tarde, volví y el problema seguía siendo el mismo.

0 votos

En realidad creo que el problema es que el mds no le dice al sistema que ha terminado con la unidad o no sale después de que haya terminado y al hacerlo, retiene la unidad hasta que el proceso es matado de alguna manera (como un apagado). Si veo el mds no utilizar la CPU mientras se pretende utilizar la unidad, fuerzo la expulsión de la unidad.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X