Как узнать, какой процесс использует диск на Mac

Mac не извлекает диск? Вот как точно определить, какой процесс его блокирует — с помощью Мониторинга системы, Терминала и более быстрого способа в один щелчок.

(Updated )

Когда macOS отказывается извлекать внешний диск, она сообщает, что что-то его использует — и на этом останавливается. Ни имени, ни указателя, ни подсказки. Найти виновника самостоятельно — дело нескольких шагов, но вполне выполнимое. Это руководство проведёт вас по всем способам: от встроенных инструментов Apple до команд Терминала, которые раскрывают то, что скрывает графический интерфейс.

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

Это настоящее раздражение, а не ошибка пользователя. macOS всегда показывала ошибку «диск используется», не называя процесс-нарушитель. Операционная система знает, какой процесс держит открытый дескриптор файла на томе, — она просто не выводит эту информацию в Finder или в диалоге извлечения.

Результат: вы закрываете все видимые приложения, ничего не меняется, а диск по-прежнему не извлекается. Как описано в руководстве по устранению ошибки macOS «Диск используется», блокировщиком часто оказывается фоновый процесс — индексирование Spotlight, генерация эскизов Быстрым просмотром или демон облачной синхронизации, — а не то, что вам пришло бы в голову завершить вручную.

Способ 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 — генерация эскизов Быстрым просмотром
  • 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 перед отключением диска.

Быстрый просмотр (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