Чому Mac каже «диск використовується», коли нічого не відкрито
Ви закрили всі програми. Жодного вікна Finder не відкрито. Та macOS наполягає, що щось використовує ваш диск. Ось що відбувається насправді.
Ви закрили все. Safari — закрито. Вікна Finder — закрито. Той документ, який ви редагували, — збережено й завершено. Ви натискаєте «витягнути» на зовнішньому диску, а macOS повідомляє, що щось досі його використовує.
Ви перевіряєте ще раз. Нічого видимого не працює. Жодних індикаторів виконання ніде. Диск просто стоїть, нічого не роблячи, наскільки ви можете судити. Але щось, невидиме для вас, вчепилося у ваш диск.
Це одна з найприкріших ситуацій у macOS, бо проблема здається неможливою. Ви зробили все правильно. Ви закрили свою роботу. А система все одно блокує вас із причин, які не хоче пояснювати.
Невидимі процеси
Більшість того, що працює на вашому Mac, невидиме. За програмами, з якими ви взаємодієте, десятки фонових процесів виконують завдання, про які ви ніколи не замислюєтеся: індексують файли для пошуку, генерують мініатюри, синхронізують дані, відстежують зміни.
У цих процесів немає вікон. Вони не з’являються в Dock. Деякі з них навіть не показуються в Моніторингу системи, якщо не знати, де шукати. Але всі вони можуть звертатися до вашого зовнішнього диска, і будь-який із них може завадити витягненню.
Коли macOS каже, що «одна або кілька програм можуть використовувати» ваш диск, він зазвичай не бреше. Щось таки його використовує. Прикро лише те, що macOS відмовляється сказати, що саме.
Звичні підозрювані
Spotlight — найпоширеніший невидимий блокувальник. Щойно ви підключаєте зовнішній диск, Spotlight починає його індексувати. Процеси індексування (mds, mds_stores, mdworker) працюють у фоні без жодних видимих ознак того, що вони щось роблять. Вони можуть тримати файли відкритими хвилинами або годинами залежно від того, скільки вмісту на диску.
QuickLook діє підступніше. Коли ви переглядаєте папку, macOS генерує мініатюри й перегляди. Процеси QuickLook (QuickLookUIService, quicklookd) іноді тримають дескриптори файлів навіть після того, як ви закрили вікно Finder. Ви дивилися на папку десять хвилин тому, але QuickLook досі думає про неї.
Time Machine, якщо її увімкнено, постійно стежить за дисками для резервних копій. Навіть коли жодне резервне копіювання не виконується, процес backupd підтримує з’єднання з томами Time Machine. Він стежить за змінами, готовий розпочати наступне резервне копіювання.
iCloud та інші служби синхронізації можуть звертатися до зовнішніх дисків, якщо ви зберігаєте там синхронізовані папки. Демон синхронізації може перевіряти стан файлів або чекати, щоб вивантажити зміни.
Сам Finder виконує фонові операції, яких ви не бачите. Оновлення метаданих файлів, керування кошиком і розрахунки для бічної панелі відбуваються непомітно. Закриття вікна Finder не обов’язково припиняє стосунки Finder із диском.
Як знайти винуватця
Єдиний надійний спосіб побачити, що блокує ваш диск, — Термінал. Виконайте цю команду, замінивши назву диска на свою:
lsof /Volumes/YourDriveName
Вона виводить кожен процес із відкритими файлами на диску. Вивід технічний, але читабельний. Стовпець COMMAND показує назви процесів, а стовпець NAME — які файли вони тримають відкритими.
Поширене, що ви побачите:
mdsабоmdworker: індексування SpotlightQuickLookUIService: генерування мініатюрFinder: операція Finder або посилання в бічній панеліbackupd: стеження Time Machinebirdабоcloudd: синхронізація iCloud
Якщо список довгий, ви знайшли своїх невидимих користувачів. Якщо він порожній, можливо, проблема вирішилася сама, і ви можете спробувати витягнути диск знову.
Пропустіть усі ручні кроки: Ejecta покаже вам, який саме процес блокує ваш диск, — і дасть завершити його одним кліком прямо з рядка меню. Докладніше →
Як зупинити невидимі процеси
Коли ви знаєте, що блокує диск, у вас є варіанти.
Для Spotlight вимкніть індексування диска:
sudo mdutil -i off /Volumes/YourDriveName
Це наказує Spotlight дати диску спокій. Пізніше ви можете знову увімкнути індексування, якщо захочете шукати вміст диска.
Для QuickLook скиньте його кеш:
qlmanage -r cache
Це очищає те, що тримав QuickLook, і зазвичай вивільняє диск.
Для Finder перезапустіть його: утримуйте Option, клацніть правою кнопкою по піктограмі Finder у Dock і виберіть «Перезапустити». Це скидає всі з’єднання Finder.
Інші процеси можна завершити в Моніторингу системи. Знайдіть назву процесу, виберіть його й натисніть кнопку X. Більшість системних процесів перезапускаються автоматично, але диск має вивільнитися.
Як запобігти проблемі
Якщо вам не потрібно шукати на зовнішньому диску через Spotlight, додайте його до списку конфіденційності в Системних налаштуваннях у розділі «Siri та Spotlight». Диски в цьому списку ніколи не індексуються, що усуває найпоширеніший блокувальник витягнення.
Створіть файл під назвою .metadata_never_index у корені вашого зовнішнього диска. Spotlight перевіряє наявність цього файлу й пропускає індексування будь-якого диска, на якому він є. Це корисно для дисків, які ви переносите між кількома комп’ютерами Mac.
Зважайте на те, що зберігається на ваших зовнішніх дисках. Якщо ви розміщуєте там папки iCloud, синхронізовані папки чи резервні копії Time Machine, очікуйте, що фонові процеси постійно до них звертатимуться.
Кращий підхід
Продиратися крізь вивід Термінала щоразу, коли треба від’єднати диск, швидко набридає. Інформація є, але робочий процес незручний.
Ejecta показує ту саму інформацію в зручнішому вигляді. Натисніть заблокований диск, подивіться, що його блокує, і завершіть цей процес ще одним кліком. Жодних команд, які треба пам’ятати, жодного виводу, який треба розбирати.
Глибинна проблема в тому, що macOS запускає десятки невидимих процесів, які можуть вхопити ваш диск. Знати, що вони існують, — це перший крок. А можливість побачити, який саме з них є проблемою, не перемикаючись на Термінал, — значно приємніший досвід.
Якщо ви не хочете щоразу користуватися Терміналом, Ejecta покаже вам, який саме процес блокує ваш диск, — і дасть завершити його одним кліком прямо з рядка меню.
Купити — $9.99