Як вийняти зовнішній привід, коли мій Mac відмовляється через прожектор?


40

Я підключив зовнішній диск до свого Mac. Тепер я хочу її викинути. Але мій Mac вперто відмовляється і каже, що програма може використовувати диск.

Я не запускав жодної програми, не відкривав жодного файлу з диска.

Я завантажив і встановив додаток  Що тримає мене? Ця програма дуже приємна. Вона каже мені, що процес  mdsвикористовує мій диск.

Я вбив процес  mdsі кілька процесів  mdworker. Вони призначені для Spotlight. Але такі процеси зароджуються знову.

Як я можу отримати мій диск з мого Mac?

У мене Mac OS X 10.6.8.


Чи просто чекати завершення процесів? Я знайшов, що це працює на практиці для мене.
Чогг

Відповіді:


27

Просто вимкніть індексацію накопичувача та видаліть вміст журналу на гучності. Для цього відкрийте Terminal і введіть таку команду:

sudo mdutil -Ei off "/Volumes/Name_of_Drive"

Ви повинні запустити цю процедуру як адміністратор. Введіть свій пароль, коли буде запропоновано. Може знадобитися перезавантаження.

Крім того, як пропонує Саймон Уайт, просто вимкніть машину та відключіть привід. Застереження полягає в тому, що привід почне індексувати, коли знову підключиться.


4
просто зупинити процес достатньо. sudo mdutil -i off "/Volumes/Name_of_Drive"( -Eстирає та відновлює індекс). Він повинен почати сканувати знову наступного разу, коли ви встановите привід. щоб вимкнути сканування, яке постійно накопичується, використовуйте -d( sudo mdutil -d "/Volumes/Name_of_Drive"). Перегляньте всі ці аргументи та інше, ввівши mdutilу свій командний рядок.
Даннід

2
Порада сподобалася, але, будь ласка, не пропонуйте залишати після команди ... Я не помітив і не втратив історію результатів, які у мене були.
ravemir

@njboot - Ні. Команда "історія" просто дає мені історію введених команд, вона не повертає їх результату.
Ніколя Барбулеско

1
Після видачі команди mdutil я все одно не зміг вийняти диск. Тому я також видав "sudo killall mds", і це змусило його працювати.
Томас Темпельман

21

Ви можете спробувати відключити його з командного рядка:

diskutil unmount /Volumes/MountPoint

або з силою:

diskutil unmount force /Volumes/MountPoint

Якщо це все ще не вдається, перевірте, що використовується на диску:

sudo fs_usage -w -f filesys | grep Volumes

Або використовуючи lsof:

sudo lsof | grep Volumes

(Деякі процеси з’являються лише тоді, коли lsof запускається як адміністратор.)


Щоб вимкнути тимчасовий прожектор, запустіть:

sudo mdutil -a -i off

Потім sudo mdutil -a -i onзнову включити.


Інші програми, які можуть бути корисними: Що тримає мене .


2
Щойно я дізнався, що Spotlight (mds, mds_store, mdworker) не буде вказаний, коли я запускаюсь lsofяк користувач. Однак sudo lsof | grep Volumesпрацює чудово. ("Що тримає мене" має відповідне поле "Як адміністратор".)
hans_meine

5

Часто я знаходжу, що мдс заважає відключати гучність.

sudo killall mds

А потім (швидко) спробуйте вийняти гучність ще раз.

У моєму випадку я монтую інший основний об'єм Mac на моєму теперішньому Mac. Я не хочу відключати Spotlight, оскільки я хочу, щоб індексація відновилася, коли зовнішній том повернеться на інший Mac (як його об'єм завантаження).


Цікаво. Можливо, "швидко" є ключовим!
Ніколя Барбулеско

Спасибі! Це єдина відповідь, яка працювала на мене, окрім сили викидання, чого я не хотів би робити.
Аддісон

2

Щоб запобігти індексації Spotlight накопичувача, створіть у текстовому редакторі файл без тексту, без вмісту, лише заголовок .metadata_never_index та збережіть у зовнішньому. Зніміть прапорець у використанні розширення "txt" ... і скажіть TextEdit, що так, ви хочете зберегти його з крапкою в передній частині (що зробить його невидимим.)

Я не впевнений, чи це зупинить це зараз, але це запобіжить це в майбутньому.

Крім того, перетворіть цей Applescript у додаток, щоб змусити його витягнути [зі звичайними застереженнями про викидання сили ...] ... кредит до блогу MacTipper

    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

Або ви можете бігти sudo diskutil unmountDisk force /Volumes/Name_of_Volumeз Терміналу, щоб насильно це зробити. Цей сценарій не потрібен.
njboot

@NicolasBarbulesco Це не те саме. Примусове вимкнення гучності - це не те саме, що витягувати вилку. В останньому випадку ви фізично виймаєте живлення з пристрою раптово, що, як можна уявити, може призвести до пошкодження магнітного диска, що обертається з декількома К об / хв. У першому ваше просто змусило пристрій відключити гучність. Потім диск спрацьовує належним чином, і ви витягуєте вилку, як зазвичай. Це набагато безпечніше.
njboot

@njboot - я не пробував твою diskutilкоманду. Але я спробував еквівалент Disk Utility - безрезультатно.
Ніколя Барбулеско

2

Ви можете спробувати заставити Finder, це працювало для мене. Finder висів на USB-накопичувачі, тому вимкнення та повторний запуск випустили все, що було.


як би це зробити? змусити шукати пошук?
Рускес

Варіант + Command + ESC!
sdive

Але чи може це працювати у випадку прожектора мого запитання?
Ніколя Барбулеско

1

Якщо ви не можете відключити диск з будь-якої причини, ви можете просто вимкнути комп'ютер. Коли комп'ютер вимкнений, ви можете спокійно відключити накопичувач. Потім запустіть комп’ютер. Це не тільки дозволить вам безпечно відключити шнур живлення, але й забезпечить перезапуск програми mds на випадок, коли він справді висів.

Якщо ви вирішили, що не хочете використовувати Spotlight з цим накопичувачем, все, що вам потрібно зробити, щоб не допустити його індексації, - це додати диск на вкладку конфіденційності на панелі прожекторів системних налаштувань. Прожектор проігнорує привід.

Крім того, якщо ви хочете використовувати Spotlight на цьому диску, тоді створення індексу, коли перший раз комп'ютер бачить накопичувач, є необхідним злом. Після створення індексу він оновлюється із кожною зміною кожного файлу, тому він не змусить вас знову чекати. Але якщо ви не бачите смужку прогресу в меню Spotlight, ймовірно, що mds повішено. Знову ж таки, просто вимкніть комп’ютер у такому випадку та відключіть привід.


1
Звичайно, я можу вимкнути Mac. Але це не варіант.
Ніколя Барбулеско

Мені подобається ідея, щоб Spotlight знав мій диск. Але я спробував змусити Spotlight на даний момент проігнорувати свій диск. За допомогою системних налаштувань → Прожектор. Це не спрацювало: "Неможливо через невідому помилку". Велике повідомлення про помилку! Apple, мабуть, найняла дефект з Micro $ oft! Я також спробував допустити час діяти. Я пішов на роботу і нехай Spotlight цілий день індексує диск. Увечері я повернувся, і проблема була все та ж.
Ніколя Барбулеско

Я насправді думаю, що проблема полягає в mdsтому, що або не повідомляє системі, що вона закінчилася з накопичувачем, або не виходить з ладу після того, як це зроблено, і тим самим утримує диск, поки процес якось не вбивається (як відключення). Якщо я бачу, що mdsне використовує процесор, вимагаючи використовувати накопичувач, я примушу вийняти накопичувач.
bauerMusic

@bauerMusic - Як ви "примушуєте витягнути привід"?
Ніколя Барбулеско,

@NicolasBarbulesco "Примусовий витяг приводу" - це варіант, який система пропонує через деякий час. Якщо ви намагаєтеся вийняти, слід сказати "Спроба вийняти диск" (або подібне), і через хвилину або близько того (невдало) покажіть інше спливаюче вікно, яке має можливість примусити витягнути.
bauerMusic

1

Ще один простий варіант - вийняти його через Disk Utilities.


Чи читали ви коментарі у відповіді Тецуджіна? Disk Utility не пропонує опцію «сила»
кланомат

Просто спробуйте. Просте витягнення через Disk Utilities завжди працює для мене, коли зовнішній накопичувач будь-якого типу не виймається, оскільки він "використовується".
Тім Ундхайм

Я намагався витягнути накопичувач за допомогою утиліти Disk. Але це не вийшло.
Ніколя Барбулеско

1
Вибачте, що почули про це. Disk Utility викидає незмінний диск "у користуванні" на моєму пристрої, який працює 10.7.5. Ви можете заглянути в DiskWarrior.
Тім Ундхайм

1
З будь-якої причини використання команди Disk Utility unmount працювало для мене на проблемному диску.
МіБ

0

Ви можете сказати Spotlight, що він ніколи не повинен індексувати цей привід, і тоді вам не доведеться турбуватися про це.

У системних налаштуваннях 10.11 є запис "Прожектор", який має вкладку "Конфіденційність". Натисніть "+", виберіть свій привід, і все закінчиться. Просто закрийте Налаштування системи, зачекайте кілька секунд, щоб система помітила оновлення, і ви зможете вийняти її. Тепер він не почне індексувати диск при наступному підключенні, тож у вас більше не виникне проблеми в майбутньому.


Я спробував це. Це не вийшло. Дивіться мій коментар тут: apple.stackexchange.com/questions/142459/…
Nicolas Barbulesco
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.