Ошибка «диск используется» в 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: индексирование SpotlightFinder: окно 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 и проверьте, нет ли где-то активного индикатора выполнения.
Быстрый просмотр и превью
macOS генерирует миниатюры и превью для файлов по мере того, как вы их просматриваете. Система Быстрого просмотра (QuickLookUIService, quicklookd) может держать файловые дескрипторы открытыми даже после того, как вы ушли из папки.
Сбросьте Быстрый просмотр. Выполните эту команду, чтобы очистить кэш Быстрого просмотра и перезапустить его:
qlmanage -r cache
Завершите процессы Быстрого просмотра. В Мониторинге системы найдите «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