thumb

После использования внешнего жёсткого диска (дальше просто - диск) Я собирался размонтировать его, но к моему удивлению при нажатии на кнопку ‘eject’ Finder показал мне следующее сообщение об ошибке:

The volume can't be ejected because it's currently in use.
The disk "Elements" wasn't ejected because one or more programs may be using it.

Для постоянных пользователей рекомендую к прочтению другую статью об этой проблеме. Она описывает, как сделать почти то же самое, используя приложение Activity Monitor, вместо использования команд в Terminal. А эта статья предназначена для опытных пользователей (когда причиной не является процесс “QuickLookUI”) и/или для удовольствия кодера :smiley:

После нескольких попыток Я попытался использовать команду umount в приложении Terminal и получил ту же ошибку:

$ umount /Volumes/Elements
umount(/Volumes/Diskname): Resource busy -- try 'diskutil unmount'

И то же самое с командой diskutil unmount которая рекомендуется в предыдущем сообщении об ошибке:

$ diskutil unmount /Volumes/Elements
Volume Elements on disk4s1 failed to unmount: dissented by PID 16314 (/System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuickLookUI.framework/Versions/A/XPCServices/QuickLookUIService.xpc/Contents/MacOS/QuickLookUIService)

Что вызывает эту ошибку

Это сообщение об ошибке говорит само за себя. Оно означает то, что мы пытаемся извлечь диск, который используется в настоящее время. Если у нас есть какой-либо файл хранящийся на диске и открытый в каком-либо приложении то, macOS может помешать нам извлечь диск для того, чтобы мы не потеряли наши данные. Если это происходит то, нам просто нужно закрыть файл и снова попытаться извлечь диск. Но Я уверен в том, что не запустил ни одно приложение и не открыл ни один файл с диска.

В некоторых случаях, macOS даёт нам возможность сделать “force-eject” диска, но мы всё ещё можем потерять данные, поэтому принудительное извлечение не является разумным.

Что я имею:

Как это решить

Сначала Я нашёл эту статью на вебсайте Apple Support, но к сожалению она не помогла. Вкратце, в ней предлагается сделать “logout” (разлогинится), затем “login” (залогиниться) снова и попытаться извлечь диск. А если вы всё ещё не можете извлечь диск, она предлагает выключить компьютер, а затем отсоеденить диск… :confused:

Поскольку я нахожусь в процессе выполнения нескольких разных задач, то выход и вход в систему не является предпочтительным так же, как и установка стороннего программного обеспечения, такого как What’s Keeping Me? или Why not unmount?. Я предпочитаю безопасное размонтирование диска. Поэтому мне нужно найти решение самому.

Насколько Я знаю, Я не использую диск, но Finder сообщает мне о том что Я это делаю, так что возможно Я ошибаюсь. Теперь мне нужно узнать, какое приложение использует мой диск для того, чтобы Я мог правильно закрыть это приложение и извлечь мой диск. Чтобы решить эту проблему, мы будем использовать приложение Terminal и несколько консольных инструментов. Все инструменты встроены в macOS, поэтому нам не нужно ничего скачивать или устанавливать. Давайте начнём!

Запустите приложение Terminal из папки Utilities вашей папки Applications или используйте Spotlight чтобы найти его.

Для начала нам нужно найти правильное имя нашего диска:

ls /Volumes/
Elements  Macintosh HD

“Macintosh HD” это встроенный накопитель MacBook, а “Elements” мой внешний жёсткий диск. Итак, в моем случае название диска - “Elements”. В вашем случае название диска будет другим.

Приведённые ниже команды предполагают то, что это Elements, но замените Elements правильным именем диска, если у вас оно другое.

Теперь давайте выясним, какой системный процесс использует наш диск. Для этого мы используем инструмент lsof.

sudo lsof | grep /Volumes/Elements

Мы должны запустить приведённую выше команду с sudo (как Администратор). Для этого нам нужно ввести наш пароль при появлении запроса.

Примечание! Не забудьте заменить “Elements” на название вашего диска перед нажатием Enter.

Введите пароль после запроса, а затем наблюдайте волшебство…

mds          83               root   21r      DIR               1,15        288          2 /Volumes/Elements
mds          83               root   22r      DIR               1,15        288          2 /Volumes/Elements
mds          83               root   24r      DIR               1,15       2208         21 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35
mds          83               root   25r      DIR               1,15        288          2 /Volumes/Elements
mds          83               root   27u      REG               1,15          0         72 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/journalExclusion
mds_store   252               root  txt       REG               1,15         24        620 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexDates
mds_store   252               root  txt       REG               1,15         10        621 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexGroups
mds_store   252               root  txt       REG               1,15          8        627 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexCompactDirectory
mds_store   252               root  txt       REG               1,15       2056        626 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexDirectory
mds_store   252               root  txt       REG               1,15       8192        588 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexCompactDirectory
mds_store   252               root  txt       REG               1,15      13108        582 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexGroups
mds_store   252               root  txt       REG               1,15      16448        587 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexDirectory
mds_store   252               root  txt       REG               1,15         96        619 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexIds
mds_store   252               root  txt       REG               1,15      32768        581 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexDates
mds_store   252               root  txt       REG               1,15      65536        630 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.directoryStoreFile
mds_store   252               root  txt       REG               1,15      72256        628 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexArrays
mds_store   252               root  txt       REG               1,15     131072         57 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/reverseDirectoryStore
mds_store   252               root  txt       REG               1,15     131072        580 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexIds
mds_store   252               root  txt       REG               1,15     131072        591 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.directoryStoreFile
mds_store   252               root  txt       REG               1,15    2097152        584 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexTermIds
mds_store   252               root  txt       REG               1,15    2097152        586 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexPositionTable
mds_store   252               root  txt       REG               1,15    4194304        589 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexArrays
mds_store   252               root   27r      DIR               1,15       2208         21 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35
mds_store   252               root   42r      REG               1,15      72256        628 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexArrays
mds_store   252               root   44r      DIR               1,15       2208         21 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35
mds_store   252               root   65u      REG               1,15         28         28 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/indexState
mds_store   252               root   66u      REG               1,15     593920         55 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/store.db
mds_store   252               root   67u      REG               1,15     593920         56 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/.store.db
mds_store   252               root   68r      REG               1,15          8        627 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexCompactDirectory
mds_store   252               root   69u      REG               1,15       4096        618 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexHead
mds_store   252               root   70u      REG               1,15         96        619 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexIds
mds_store   252               root   71u      REG               1,15         24        620 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexDates
mds_store   252               root   72r      REG               1,15       1694        622 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexPostings
mds_store   252               root   79r      REG               1,15       2056        626 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.indexDirectory
mds_store   252               root   99u      REG               1,15      65536        630 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/0.directoryStoreFile
mds_store   252               root  103u      REG               1,15       4096        579 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexHead
mds_store   252               root  106u      REG               1,15     131072        580 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexIds
mds_store   252               root  108u      REG               1,15      13108        582 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexGroups
mds_store   252               root  109u      REG               1,15    2097152        583 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexPostings
mds_store   252               root  110u      REG               1,15    2097152        584 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexTermIds
mds_store   252               root  111u      REG               1,15    8388608        585 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexPositions
mds_store   252               root  112u      REG               1,15    2097152        586 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexPositionTable
mds_store   252               root  113u      REG               1,15      16448        587 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexDirectory
mds_store   252               root  114u      REG               1,15       8192        588 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexCompactDirectory
mds_store   252               root  115u      REG               1,15    4194304        589 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.indexArrays
mds_store   252               root  116u      REG               1,15     131072        591 /Volumes/Elements/.Spotlight-V100/Store-V2/C59C29F8-4296-456C-B45B-CBD4AF706C35/live.0.directoryStoreFile
QuickLook 16314             arthur    3r      REG               1,15 2283237221       3207 /Volumes/Elements/PATH/TO/FILE/filename.mov

Вывод команды может показаться сложным в понимании, но это не так. В первом столбце указан запущенный процесс, а в последнем столбце указан файл на нашем диске, который используется в данный момент. В моём случае запущено три процесса: mds, mds_store и QuickLook. А также используется скрытая папка .Spotlight-V100 и файл filename.mov. Итак, теперь Я знаю, что мешает мне извлечь мой диск.

Процессы mds и mds_store связаны с Spotlight. Вы можете узнать больше об этом здесь. Запуск этих процессов означает то, что Spotlight в настоящее время индексирует наш диск. Мы можем оставить диск включенным на некоторое время, чтобы Spotlight мог закончить свою работу, или же мы можем принудительно остановить процесс.

Процесс QuickLook это функция, которая была представлена в Mac OS X 10.5 Leopard. Вы можете узнать больше об этом здесь. Я заметил то, что когда Я использую функцию Quicklook для предпоказа видео в любом формате, то процесс остаётся активным даже кода окно Quicklook было уже закрыто. Если Я предпросмотрю любой другой файл, такой как PDF или JPG, диск может быть извлечён нормально. Почему Quicklook не позволяет мне извлечь мой диск? Я подозреваю то, что это просто ошибка.

Как только мы узнали, какой процесс мешает нам извлечь наш диск, мы можем заставить его остановиться. Для этого мы используем инструмент killall.

sudo killall mds

Мы должны запустить приведённую выше команду с sudo (как Админ). Для этого нам нужно ввести наш пароль при появлении запроса.

Примечание! Не забудьте заменить “mds” на имя процесса, который вы хотите остановить перед нажатием Enter.

Также мы можем сделать это с помощью Activity Monitor.

В заключение выполните следующую команду для того, чтобы размонтировать диск, заменив “Elements” на действительое имя вашего диска.

diskutil unmount /Volumes/Elements
Volume Elements on disk4s1 unmounted

Готово! Теперь наш диск должен быть извлечён безопасно.

Если эта статья помогла вам решить проблему, пожалуйста, оставьте комментарий :smiley:

Спасибо за прочтение!