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:

Дякую за прочитання!