Почему Mac пишет «диск используется», хотя ничего не открыто

Вы закрыли все приложения. Ни одного окна Finder. А macOS упорно твердит, что что-то использует ваш диск. Разбираемся, что происходит на самом деле.

Вы закрыли всё. Safari — закрыт. Окна Finder — закрыты. Документ, который вы редактировали, — сохранён, и приложение закрыто. Вы нажимаете «извлечь» на внешнем диске, а macOS сообщает, что его что-то всё ещё использует.

Вы проверяете снова. Ничего видимого не запущено. Нигде нет индикаторов прогресса. Диск просто стоит на месте и, насколько вы можете судить, ничего не делает. Но что-то невидимое вцепилось в ваш диск.

Это одно из самых раздражающих переживаний в macOS, потому что проблема кажется невозможной. Вы всё сделали правильно. Вы закрыли свою работу. А система всё равно вас блокирует по причинам, которые отказывается объяснить.

Невидимые процессы

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

У этих процессов нет окон. Их нет в Dock. Некоторые из них даже не отображаются в Мониторинге системы, если не знать, куда смотреть. Но все они могут обращаться к вашему внешнему диску, и любой из них может помешать извлечению.

Когда macOS говорит, что диск «могут использовать одна или несколько программ», обычно она не врёт. Что-то его действительно использует. Бесполезно тут то, что macOS отказывается сообщать, что именно.

Обычные подозреваемые

Spotlight — самый частый невидимый блокировщик. В момент подключения внешнего диска Spotlight начинает его индексировать. Процессы индексирования (mds, mds_stores, mdworker) работают в фоне без всяких видимых признаков того, что они заняты. Они могут держать файлы открытыми минутами или часами — в зависимости от того, сколько данных на диске.

Быстрый просмотр действует хитрее. Когда вы открываете папку, macOS создаёт миниатюры и предпросмотры. Процессы Быстрого просмотра (QuickLookUIService, quicklookd) порой удерживают дескрипторы файлов даже после того, как вы закрыли окно Finder. Вы заглянули в папку десять минут назад, а Быстрый просмотр всё ещё о ней думает.

Time Machine, если она включена, постоянно отслеживает резервные диски. Даже когда копирование не выполняется, процесс backupd поддерживает связь с томами Time Machine. Он следит за изменениями, готовый запустить следующее копирование.

iCloud и другие службы синхронизации могут обращаться к внешним дискам, если вы храните там синхронизируемые папки. Демон синхронизации может проверять состояние файлов или ждать момента, чтобы выгрузить изменения.

Сам Finder выполняет фоновые операции, которых вы не видите. Обновление метаданных файлов, управление корзиной и подсчёты для боковой панели — всё это происходит незаметно. Закрытие окна Finder не обязательно прерывает связь Finder с диском.

Поиск виновника

Единственный надёжный способ увидеть, что блокирует диск, — Терминал. Выполните эту команду, заменив имя диска на своё:

lsof /Volumes/YourDriveName

Она выводит каждый процесс с открытыми файлами на диске. Вывод технический, но читаемый. В столбце COMMAND указаны имена процессов, а в столбце NAME — какие файлы у них открыты.

Что вы обычно увидите:

  • mds или mdworker: индексирование Spotlight
  • QuickLookUIService: создание миниатюр
  • Finder: операция Finder или ссылка из боковой панели
  • backupd: отслеживание Time Machine
  • bird или cloudd: синхронизация iCloud

Если список длинный — вот они, ваши невидимые пользователи. Если он пуст, возможно, проблема разрешилась сама, и можно попробовать извлечь диск снова.

Пропустите ручные шаги: Ejecta точно покажет, какой процесс блокирует ваш диск, — и позволит завершить его одним кликом прямо из строки меню. Подробнее →

Как остановить невидимые процессы

Когда вы знаете, что блокирует диск, у вас появляются варианты.

Для Spotlight отключите индексирование диска:

sudo mdutil -i off /Volumes/YourDriveName

Это велит Spotlight оставить диск в покое. Позже индексирование можно включить обратно, если захотите искать по содержимому диска.

Для Быстрого просмотра сбросьте его кэш:

qlmanage -r cache

Это очищает всё, что удерживал Быстрый просмотр, и обычно освобождает диск.

Для Finder перезапустите его: удерживая Option, нажмите правой кнопкой на значок Finder в Dock и выберите «Перезапустить». Это сбрасывает все связи Finder.

Остальные процессы можно завершить из Мониторинга системы. Найдите имя процесса, выберите его и нажмите кнопку X. Большинство системных процессов перезапускаются автоматически, а диск при этом должен освободиться.

Как предотвратить проблему

Если вам не нужно искать по внешнему диску через Spotlight, добавьте его в список конфиденциальности в Системных настройках, в разделе Siri и Spotlight. Диски из этого списка никогда не индексируются, что устраняет самый частый блокировщик извлечения.

Создайте в корне внешнего диска файл с именем .metadata_never_index. Spotlight проверяет наличие этого файла и пропускает индексирование любого диска, на котором он есть. Это удобно для дисков, которые вы переносите между несколькими Mac.

Помните о том, что хранится на ваших внешних дисках. Если вы держите там папки iCloud, синхронизируемые папки или резервные копии Time Machine, будьте готовы к тому, что фоновые процессы будут обращаться к ним постоянно.

Подход получше

Копаться в выводе Терминала каждый раз, когда нужно отключить диск, быстро надоедает. Информация есть, но работать с ней неудобно.

Ejecta показывает ту же информацию в более понятном виде. Нажмите на заблокированный диск, посмотрите, что его блокирует, и закройте этот процесс ещё одним кликом. Никаких команд, которые надо запоминать, и никакого вывода, который надо разбирать.

Корень проблемы в том, что macOS запускает десятки невидимых процессов, способных захватить ваш диск. Знать об их существовании — первый шаг. А возможность увидеть, какой именно из них виноват, не переключаясь в Терминал, — это куда более приятный опыт.

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

Купить — $9.99