Помилка «Диск використовується» в macOS: посібник з усунення

Вичерпний посібник з усунення помилки «диск використовується» на Mac. Усі причини й рішення в одному місці.

Ви натискаєте «витягнути» на зовнішньому диску, а macOS відмовляє. «Диск не вийнято, оскільки одна чи кілька програм можуть його використовувати». Ви закрили все, над чим працювали. Нічого очевидного не запущено. Що ж насправді використовує ваш диск?

Цей посібник охоплює кожну поширену причину помилки «диск використовується» і те, як виправити кожну з них. Почнімо зі швидких рішень і поступово перейдімо до складніших.

Швидкі рішення, які варто спробувати першими

Перш ніж заглиблюватися в усунення проблеми, спробуйте таке:

Закрийте всі вікна Finder, де показано диск. Це найчастіший винуватець. Якщо будь-яке вікно Finder відкрите на папці на диску чи навіть просто має диск вибраним у бічній панелі, Finder утримує його заблокованим. Закрийте ці вікна або перейдіть у них кудись інде.

Зачекайте кілька секунд і спробуйте ще раз. Іноді процес просто завершує свою роботу. Spotlight може закінчувати індексування, а програма — зберігати файл кешу. Дайте 30 секунд і спробуйте витягнути знову.

Спробуйте витягнути з бічної панелі, а не з робочого столу. Натисніть значок витягнення поруч із назвою диска в бічній панелі Finder. Деякі користувачі повідомляють, що це спрацьовує, коли клацання правою кнопкою по значку на робочому столі — ні.

Якщо це не допомагає, час з’ясувати, що насправді утримує диск відкритим.

Як знайти процес, що блокує

macOS не скаже, яка саме програма використовує диск, а от Термінал скаже. Відкрийте Термінал і виконайте:

sudo lsof /Volumes/YourDriveName

Замініть «YourDriveName» на справжню назву вашого диска. Якщо вона містить пробіли, візьміть шлях у лапки: sudo lsof "/Volumes/My Drive"

Потрібно буде ввести пароль. У виводі показано кожен процес із відкритими файлами на цьому диску. Подивіться на стовпець COMMAND, щоб побачити назви процесів.

Поширені процеси, які ви побачите:

  • mds, mds_stores, mdworker: індексування Spotlight
  • Finder: вікно Finder або файлова операція
  • QuickLookUIService: створення мініатюр чи попереднього перегляду
  • backupd: триває резервне копіювання Time Machine
  • fsevents: відстеження змін у файловій системі
  • bash чи zsh: оболонка Термінала, поточна тека якої розташована на диску

Індексування Spotlight

Spotlight — найчастіша причина проблем із витягненням. Коли ви підключаєте зовнішній диск, macOS одразу починає його індексувати, щоб ви могли шукати в його вмісті. Задіяні процеси (mds, mds_stores, mdworker) тримають файли відкритими, поки працюють.

Зачекайте, поки індексування завершиться. На новому чи зміненому диску індексування може тривати від кількох хвилин до кількох годин залежно від кількості файлів на ньому. Якщо індексування активне, ви побачите індикатор виконання в результатах пошуку Spotlight.

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

sudo mdutil -i off /Volumes/YourDriveName

Ця команда наказує Spotlight ігнорувати диск. Після її виконання спробуйте витягнути знову.

Додайте диск до списку приватності Spotlight. Для постійного рішення відкрийте Системні налаштування, перейдіть до «Siri та Spotlight», прокрутіть до «Приватність Spotlight» і додайте свій диск. Його більше не індексуватимуть, доки ви не приберете його з цього списку.

Завершіть процеси Spotlight. У крайньому разі можна примусово завершити процеси mds у Моніторингу системи. Знайдіть «mds», виберіть кожен процес, що звертається до вашого диска, і натисніть кнопку X, щоб примусово завершити. Spotlight перезапуститься автоматично, але ваш диск має звільнитися.

Finder і перегляд файлів

Finder може утримувати диски не зовсім очевидним чином.

Закрийте всі вікна Finder. Навіть якщо жодне вікно явно не показує ваш диск, Finder може тримати його відкритим у фоновій вкладці або як типове розташування для вікна.

Перезапустіть Finder. Утримуючи Option, клацніть правою кнопкою по значку Finder у Dock, а потім виберіть «Перезапустити». Це закриє всі вікна Finder і вивільнить усі блокування, які Finder утримував.

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

QuickLook і попередні перегляди

macOS створює мініатюри та попередні перегляди файлів у міру того, як ви їх переглядаєте. Система QuickLook (QuickLookUIService, quicklookd) може тримати файлові дескриптори відкритими навіть після того, як ви пішли з папки.

Скиньте QuickLook. Виконайте цю команду, щоб очистити кеш QuickLook і перезапустити його:

qlmanage -r cache

Завершіть процеси QuickLook. У Моніторингу системи знайдіть «QuickLook» і примусово завершіть усі процеси, що звертаються до вашого диска.

Термінал і сеанси оболонки

Якщо ви використовували Термінал, щоб перейти на свій зовнішній диск, цей сеанс оболонки тримає диск зайнятим. Назва процесу відображатиметься як bash, zsh чи яка там у вас оболонка.

Перевірте поточну теку. У кожному вікні Термінала виконайте pwd, щоб побачити, де ви перебуваєте. Якщо показано шлях на вашому зовнішньому диску, виконайте cd ~, щоб повернутися до домашньої папки.

Закрийте вікна Термінала. Якщо у вас кілька вікон чи вкладок Термінала, закрийте їх або перейдіть у кожному з них кудись подалі від диска.

Програми з нещодавніми файлами

Багато програм зберігають посилання на нещодавно відкриті файли. Навіть після того, як ви закрили документ, програма може й далі підтримувати з ним зв’язок.

Завершіть програми, які зверталися до файлів на диску. Подумайте, які документи ви відкривали з диска, і повністю завершіть ці програми (Command+Q), а не просто закрийте їхні вікна.

Перевірте «Недавні об’єкти». Деякі програми перелічують нещодавно відкриті файли в меню. Відкриття цього меню може заново встановити зв’язок із файлами. Якщо здається, що винуватець — якась програма, але її завершення не допомагає, спробуйте прибрати її з Dock, потім завершити, а потім запустити заново.

Time Machine

Якщо ваш диск — це диск резервних копій Time Machine, процес backupd керує копіюванням і може утримувати диск під час та після операцій резервного копіювання.

Зачекайте, поки резервне копіювання завершиться. Перевірте значок Time Machine у рядку меню, щоб побачити, чи триває копіювання. Зачекайте, поки воно завершиться, перш ніж намагатися витягнути диск.

Пропустіть поточне резервне копіювання. Натисніть значок Time Machine і виберіть «Пропустити це резервне копіювання», щоб скасувати копіювання, що триває. Зачекайте хвилину на завершення процесів, а потім спробуйте витягнути диск.

Тимчасово вимкніть Time Machine. Перейдіть до Системних налаштувань, натисніть «Time Machine» і вимкніть її. За мить диск має звільнитися.

Системні процеси та служби

Деякі процеси системного рівня стежать за змінами на підключених томах. Серед них fsevents, fseventsd і різні завдання ядра.

Зазвичай вони самі по собі не заважають витягненню, але можуть накладатися на інші проблеми. Якщо ви усунули все інше, а в виводі lsof усе ще бачите системні процеси, спробуйте:

Вийдіть із системи й увійдіть знову. Це перезапускає більшість процесів рівня користувача й може зняти вперті блокування.

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

Коли варто витягати примусово

Примусове витягнення наказує macOS відмонтувати диск незалежно від того, що до нього звертається. Це можна зробити, утримуючи Option і клацнувши правою кнопкою по диску, а потім вибравши «Примусово витягти».

Зазвичай це безпечно, якщо процес, що блокує, лише читав із диска. Це ризикованіше, якщо щось активно записувало. Якщо ви не впевнені, спершу спробуйте визначити й завершити процес, що блокує.

Ніколи не витягайте примусово (і не від’єднуйте фізично) диск під час видимої операції копіювання чи збереження. Саме так виникають пошкоджені файли.

Як запобігти проблемам у майбутньому

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

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

Користуйтеся кнопкою витягнення в бічній панелі. Призвичайтеся використовувати бічну панель Finder, а не значок на робочому столі. Деякі користувачі вважають це надійнішим.

Тримайте Термінал у порядку. Якщо ви користуєтеся Терміналом, стежте за тим, у якій теці перебуваєте. Не залишайте оболонки в теках на зовнішніх дисках.

Кращий робочий процес

Діагностика проблем із витягненням вимагає розуміння процесів Unix, запам’ятовування команд Термінала, а іноді й вгадування, що могло піти не так. Для дії, яка мала б бути такою ж простою, як від’єднання диска, це чимало зайвого тертя.

Ejecta усуває це тертя. Вона живе у вашому рядку меню, показує, які диски готові до витягнення, а які заблоковані, точно визначає, що їх блокує, і дає змогу вирішити проблему одним кліком. Жодного Термінала, жодного Моніторингу системи, жодних здогадок.

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

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

Купити — $9.99