Як дізнатися, який процес використовує диск на Mac

Mac не витягує ваш диск? Ось як з’ясувати, який саме процес його блокує — за допомогою Моніторингу системи, Терміналу та швидшого методу в один клік.

(Updated )

Коли macOS відмовляється витягувати зовнішній диск, вона повідомляє, що щось його використовує, — і на цьому зупиняється. Жодної назви, жодної підказки, жодного натяку. Знайти винуватця самостійно потребує кількох кроків, але це цілком реально. Цей посібник проведе вас усіма методами — від вбудованих інструментів Apple до команд Терміналу, які показують те, що графічний інтерфейс приховує.

Чому macOS просто не каже вам

Це справжнє роздратування, а не помилка користувача. macOS завжди показувала помилку «диск використовується», не називаючи процес-винуватець. Операційна система знає, який процес тримає відкритий дескриптор файлу на томі, — вона просто не показує цю інформацію у Finder чи в діалозі витягнення.

Як наслідок: ви закриваєте всі видимі програми, нічого не змінюється, а диск усе одно не витягується. Як описано в посібнику з усунення помилки «Диск використовується» в macOS, блокувальником часто є фоновий процес — індексування Spotlight, генерація мініатюр QuickLook чи демон хмарної синхронізації — а не щось, що вам спало б на думку завершити вручну.

Метод 1: Моніторинг системи (обмежений, але початок)

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

  1. Відкрийте Моніторинг системи (Програми → Утиліти → Моніторинг системи або пошук через Spotlight).
  2. Натисніть вкладку Диск угорі.
  3. Відсортуйте за Прочитано байтів або Записано байтів, щоб побачити, які процеси активно читають чи записують.

Проблема: Моніторинг системи показує дискову активність по всіх томах, а не лише по вашому зовнішньому диску. Процес угорі списку може записувати дані на ваш внутрішній SSD, а не на USB-диск. Фільтрувати за томом тут не можна.

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

Метод 2: Термінал із lsof (надійний підхід)

lsof означає «list open files» (список відкритих файлів), а в macOS кожен підключений том є шляхом до файлу. Ця команда покаже вам кожен процес із відкритим дескриптором на конкретному диску.

Знайдіть точку монтування диска

Спершу підтвердьте точну назву диска так, як її бачить macOS:

ls /Volumes/

Ця команда виводить усі підключені томи. Тут з’явиться ваш зовнішній диск — занотуйте точну назву, зокрема великі літери та пробіли.

Запустіть lsof для тому

lsof /Volumes/YourDriveName

Замініть YourDriveName на справжню назву тому. У виводі перелічено кожен процес із відкритим файлом на цьому томі, зокрема:

  • COMMAND — назва процесу
  • PID — ідентифікатор процесу
  • USER — який обліковий запис користувача його запускає
  • NAME — конкретний шлях до файлу, до якого здійснюється доступ

Що ви зазвичай побачите

Поширені винуватці, які з’являються у виводі lsof:

  • mds або mds_stores — індексування Spotlight
  • QuickLookUIService — генерація мініатюр QuickLook
  • cloudd, bird або com.apple.iCloudDrive — синхронізація iCloud
  • backupd — Time Machine
  • Finder — відкриті вікна Finder, що вказують на диск
  • Медіапрограми на кшталт Final Cut Pro чи Premiere, у яких відкриті файли проєктів

Порада: Якщо lsof нічого не виводить, спробуйте запустити команду з sudo для підвищених прав: sudo lsof /Volumes/YourDriveName. Деякі системні процеси з’являються лише з доступом root.

Щоб глибше розібратися з можливостями lsof — зокрема з фільтруванням за PID і завершенням процесів безпосередньо з командного рядка — див. Команда lsof у поясненні для користувачів Mac.

Завершіть процес із Терміналу

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

Метод 3: fuser як альтернатива

fuser — ще одна команда Терміналу, яка повідомляє, які процеси використовують файл або файлову систему. Вона менш детальна за lsof, але швидша для читання:

sudo fuser /Volumes/YourDriveName

Виводом є лише список PID. Щоб поряд із ними отримати назви процесів, поєднайте її з ps:

sudo fuser /Volumes/YourDriveName | xargs ps -p

Це корисно, коли вам потрібна швидка відповідь без розбору довгої таблиці lsof.

Поширені процеси, що блокують, і що з ними робити

Spotlight (mds, mds_stores)

Назви процесів Spotlight не доводять доступу лише для читання. Не завершуйте mds або mds_stores примусово заради звільнення диска. Зачекайте, закрийте програми й повторіть звичайне виймання. Ejecta визначає ці процеси, але не пропонує звичайного завершення системних процесів. Якщо диск залишається заблокованим, збережіть усе й повністю вимкніть Mac перед від’єднанням.

QuickLook (QuickLookUIService)

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

iCloud і Dropbox

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

Finder

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

Медіа- та творчі програми

Final Cut Pro, Premiere, Logic і подібні програми тримають файли проєктів відкритими, доки проєкт завантажено. Закрийте проєкт — а не лише вікно програми — перед витягненням. Поради щодо конкретних робочих процесів див. у Використання зовнішніх дисків із Final Cut Pro без проблем із витягненням.

Чому Термінал незручний для регулярного використання

Підхід із lsof працює, але має свої незручності. Вам потрібно:

  1. Відкрити Термінал
  2. Знати точну назву тому
  3. Розібрати незнайомий вивід
  4. Знайти PID і назви процесів
  5. Виконати окрему команду kill
  6. Повернутися до Finder, щоб витягнути диск

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

Попередження: Не висмикуйте диск без витягнення, навіть якщо ви поспішаєте, — це може пошкодити файлову систему, особливо на дисках, відформатованих як exFAT чи NTFS. Ризики цілком реальні й детально описані в Чи може від’єднання зовнішнього диска без витягнення його пошкодити?

Швидший спосіб: побачити процес, що блокує, з першого погляду

Ejecta: Ejecta пропонує безкоштовну діагностику дисків без обмеженого пробного періоду. Платна ліцензія відкриває завершення й виймання для підтримуваних програм, виймання всіх дисків і керування Time Machine. Системні процеси можуть потребувати очікування, авторизації або вимкнення. Спочатку збережіть роботу й завершіть передавання.

Швидкий довідник: який метод обрати

Ситуація Найкращий метод
Ви хочете зрозуміти, що відбувається lsof у Терміналі
Вам потрібна швидка разова відповідь fuser у Терміналі
Ви робите це регулярно й хочете жодних незручностей застосунок Ejecta у рядку меню
Ви розбираєтеся з упертим системним процесом Назви процесів Spotlight не доводять доступу лише для читання. Не завершуйте mds або mds_stores примусово заради звільнення диска. Зачекайте, закрийте програми й повторіть звичайне виймання. Ejecta визначає ці процеси, але не пропонує звичайного завершення системних процесів. Якщо диск залишається заблокованим, збережіть усе й повністю вимкніть Mac перед від’єднанням.

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

Ejecta пропонує безкоштовну діагностику дисків без обмеженого пробного періоду. Платна ліцензія відкриває завершення й виймання для підтримуваних програм, виймання всіх дисків і керування Time Machine. Системні процеси можуть потребувати очікування, авторизації або вимкнення. Спочатку збережіть роботу й завершіть передавання.

Купити - $29 $9.99