Гучність неможливо викинути, оскільки вона зараз використовується


100

Після роботи із зовнішнім резервним диском USB я хочу чисто відключити накопичувач. При натисканні на кнопку "витягнути" Finder попереджає мене повідомленням:

  • " Гучність неможливо викинути, оскільки вона зараз використовується. "

або

  • " Диск" Diskname "не був вилучений, тому що одна або кілька програм можуть використовувати його. "

або при спробі використовувати термінал: umount /Volumes/Diskname

  • " umount (/ томи / ім'я диска): ресурс зайнятий - спробуйте" diskutil unmount " "

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

Тут lsofможе бути корисна команда терміналу , але особисто я вважаю, що це занадто складно для такої "простої" проблеми, і якщо чесно, я не знаю, як правильно її використовувати.

Моє запитання: Як я можу знати, яка програма використовує мій диск, щоб я міг правильно вийти з програми та вийняти диск?

Гучність неможливо викинути, оскільки вона зараз використовується. Диск "Camel" не був вилучений, оскільки його може використовувати одна чи більше програм. Диск "Mammtoh" не було витягнуто, оскільки одна чи кілька програм ... xkcd


2
"Наскільки мені відомо, я не використовую цей диск, але Finder каже, що я знаю, тому я повинен помилятися". Ви занадто багато довіряєте машинам. ;-) Часто комп'ютери помиляються, а ми люди праві.
Ніколя Барбулеско

Отже, що ви говорите, це я маю рацію? ;)
CousinCocaine


2
І якщо винуватцем є прожектор, збережіть собі повторення: apple.stackexchange.com/a/211616/15417
John2095

Відповіді:


130

lsofце справді найкраща ставка. Найшвидший і найпростіший спосіб був би таким:

sudo lsof /Volumes/myDrive

Запуск може зайняти кілька хвилин, але як тільки він завершиться, він надає вам список відкритих файлів на диску. Вихід буде виглядати приблизно так:

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
mds         89  root   19r   DIR   52,3      432     2 /Volumes/Photos
mds         89  root   23r   DIR   52,3      432     2 /Volumes/Photos
Finder     681 alans   14r   DIR   52,3      432     2 /Volumes/Photos
QuickLook 2158 alans    9r   REG   52,3  1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG  

У цьому випадку QuickLookфайл відкритий. Закриття програми безпосередньо - найкращий спосіб вирішити проблему. Однак це не завжди можливо. Наприклад, QuickLook не відображається як програма, до якої можна потрапити в Доку.

Якщо ви не можете закрити програму вручну, ви можете скористатися killкомандою, щоб закрити її з командного рядка. Для цього використовуйте PIDз другого стовпця як ідентифікатор для вбивства. З наведеного прикладу це було б:

kill 2158

Зауважте, що іноді це не працює, і потрібно використовувати більш агресивну форму kill. Ось серія наростаючої агресивності (на прикладі PID 2158):

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

Ви повинні мати можливість вийняти диск, коли процес / додаток було вбито.

Одне заключне зауваження, lsofможе зайняти хвилину-дві. Він також може зависнути, але ви повинні дати йому принаймні кілька хвилин, перш ніж вирішите, що так сталося.

Крім того, іноді базова команда sudo lsof /Volumes/myDriveнічого не знайде. Якщо це трапиться, спробуйте додати +Dаргумент (тобто sudo lsof +D /Volumes/myDrive). Це зробить сканування диска згори вниз. Це займе більше часу, але він повинен забрати все, що спричиняє неприйнятність диска.

( Підказка на капелюх до посади Алека Джакобсона для додаткових деталей. )


1
Я це також знайшов, але сподівався, що хтось має не термінальне рішення. Якщо ні, ви отримаєте свій плюс один;)
CousinCocaine


3
→ Пол: Я хотів би запропонувати вам поліпшити свою команду , як запропонував:/usr/bin/sudo lsof /Volumes/myDrive
дано

3
О прекрасно, я робив lsof без судо, що дає зовсім інший набір результатів.
Альпер

2
Так, судо, безумовно, потрібен у багатьох випадках. У моєму випадку це виявило, що це було пов'язано з тим, що Spotlight намагався проіндексувати диск, тому рішенням було відключити Spotlight для диска, а потім вручну зупинити / перезапустити Spotlight.
Том

30

Ви пробували $ diskutil unmount /Volumes/Diskname?

Або $ diskutil unmount force /Volumes/Diskname?

Оскільки сторінка керівництва вказує:

Через складну та переплетену природу Mac OS X, umount може часто виходити з ладу. Рекомендується замість цього використовувати diskutil (1) (як, наприклад, "diskutil unmount / mnt").

Якщо у вашому томі є пробіли в назві, обов'язково уникайте пробілів \, наприклад:

$ diskutil unmount /Volumes/Disk\ Name

Або використовуйте цитати, щоб уникнути плутанини.

$ diskutil unmount "/Volumes/Disk Name"

1
Я вважаю, що я спробував це, і це не вийшло. Але наступного разу я спробую його ще раз і оновлю свою посаду відповідно.
CousinCocaine

У вашому прикладі є цитати, а не апострофи. Що добре.
Ніколя Барбулеско

1
@NicolasBarbulesco: Дякую, що вказав на це, я вніс виправлення у відповідь. Гарний улов!
Джейсон Робінсон,

1
Працювали -> sudo diskutil unmount force / Томи / Назва диска
tgkprog

1
@tgkprog Радий почути це, також дякую за sudoкоманду, яка може допомогти і іншим.
Джейсон Робінсон

15

Можливо, ваша проблема викликана процесом  mds : прожекторний індексація вашого диска.

У мене ця проблема, і я поки не знайшов рішення.


Ось як відключити / ввімкнути індексацію прожектора: iclarified.com/49187/…
rstackhouse

Я також виявив, що сервіс mds використовує його. Я намагався відключити послугу mds для флешки за допомогою "sudo mdutil -i off / Volumes / 16GB", але це також не допомогло. Мені довелося перезапустити Finder, використовуючи "Option + Click" на FInder.
Аруна

6

Ви можете спробувати програму для пожертвування " Що тримає мене? ", Яка показує, який процес / додаток використовує том / папку / файл.

Ця програма сертифікована розробником для Mac OS X 10.6 Snow Leopard, але сторінка RoaringApps для цього додатка перераховує її як відмінну роботу на OS X 10.7 Lion та OS X 10.8 Mountain Lion.

Про те, що мене тримає?

У вас коли-небудь виникала проблема, коли ви не можете випорожнити кошик чи вийняти диск, оскільки щось вам заважає? Зазвичай причина полягає в тому, що в деяких програмах відкритий файл, і таким чином ви не можете позбутися від диска або сміття. Ось чому ми зробили Що тримає мене! Що тримає мене, визначає програму, яка містить елемент відкритим. Потім ви можете скористатись функцією Whats Keeping Me, щоб вийти з проблемної програми (або вбити її за потреби), щоб ви могли виконати своє завдання. Що тримає мене, включає в себе робочий процес Автоматизатора, щоб ви могли здійснювати пошук безпосередньо у Finder!


1
Це виглядає як дійсне програмне забезпечення, але я дуже віддаю перевагу рідним рішенням OS X.
CousinCocaine

Під рідним ти маєш на увазі щось, що Apple пропонує? На фронті GUI нічого подібного немає. Крім того, WKM існує вже кілька років.
МК

Дякуємо за ваше доповнення Рідне - це не правильне слово, я мав на увазі «третьої сторони». WKM - приємне рішення, але особисто я віддаю перевагу lsof.
CousinCocaine

Щойно тестували додаток у Високій Сьєррі, і воно все ще працює. Це також 64-розрядна.
dianeoforegon

4

У мене з’явилося це повідомлення, незважаючи на те, що в томі немає відкритих файлів . Я перевірив це за допомогою інструмента GUI Why Not Unmount , який може вказувати відкриті файли на диску.

У моєму випадку це було ознакою того, що файлова система пошкоджена. Запуск Disk Utility (або, якщо цього було недостатньо, DiskWarrior) вирішив проблему і змусив диск викинути знову.


1
У моєму випадку система не була корумпованою.
CousinCocaine

Здається, малоймовірним. Швидше за все, Spotlight чи якесь інше додаток чи послуга мають блокування на диску.
Том

3

Як рішення командного рядка, так і те, що тримає мене, чудово працюють.

Для резюме командний рядок у терміналі:

lsof | grep /Volumes/myDrive

Додаток GUI - Що тримає мене, доступний у Hamsoft Engineering .

Знімки екрана обох із тим самим пошуком.

Виведення командного рядка GUI для того, що мене тримає

Я віддаю перевагу командному рядку лише трохи, так як він завжди є у вас. З іншого боку, те, що тримає мене, швидше та простіше у використанні, якщо ви встановили його.


3

ПРИМІТКА: fseventerпрацює, поки OS X 10.10 Yosemite і сторінка розробника http://www.fernlightning.com тим часом не перейшли в офлайн. Звідси посилання на продукт були видалені. З brew cask install fseventerним він все ще може бути доступний у старих версіях macOS.

Існує альтернатива графічного інтерфейсу додатку CLI lsof:
fseventerце чудова утиліта для моніторингу доступу до файлової системи для різних цілей . Він працює з суперкористувацькими sudoправами доступу ( ), тому він бачить весь доступ для читання / запису всіх змонтованих файлових систем та подає їх у дуже чіткий огляд.

Мій досвід: у мене був том, який постійно не можна було належним чином викинути (як на скріншотах ОП), і завжди потрібен був "викид сили", іноді навіть сильне фізичне відключення (ані рекомендовано! Може пошкодити вашу файлову систему (и) на цьому диск) або відключення системи для обходу цього грубого методу.

Моє виправлення: Підсумовано: Проблема викидання може бути викликана пошкодженим або застарілим вмістом файлу на цьому томі. Видалення проблемного вмісту може назавжди виправити це. Детально:

  1. Визначте, до якого файлу можна отримати доступ (з lsofабо fseventer). У моєму випадку це був класичний файл Mac OS з вилкою ресурсу, який залишався відкритим, швидше за все, на ньому висів якийсь фоновий процес розбору диска (Spotlight, QuickLook тощо).

  2. Створіть резервну копію цих проблемних даних у архіві файлів (який зберігає (класичні) дані щодо конкретних ресурсів Mac). Я просто використовував натиснуту функцію Finder "Compress" у контекстному меню.

  3. Видаліть проблемний файл / папку.

    • З Finder як завжди. Ймовірно, це не вдасться, оскільки це "проблемний файл / папка".
    • За допомогою Finder плюс утримуючи ALT під час спорожнення кошика. Це створює трохи більше сили, але, швидше за все, вона все-таки провалиться.
    • Через термінал с sudo rm -R /path/to/troublesome/FileOrFolder. Це врешті спрацювало після того, як спроби видалення Finder не вдалися.
  4. Спробуйте знову відключити гучність. Це все ще може бути невдалим, оскільки фонові процеси, які провалилися, можуть все ще перебувати у неповоротньому стані .

  5. Перезапустити. Потім спробуйте відключити його знову. З цього моменту Том знову працював чудово. Нормальний режим монтажу, демонтажу, читання / запису. Тільки тоді, коли файл був дійсно відкритий користувальницьким процесом, його неможливо було відключити. Ідеально знову нормальна поведінка.


1

Рішення Переконайтесь, що всі програми закриті. Клацніть піктограму Apple у верхньому лівому куті екрана, а потім натисніть Force Quit. У списку натисніть Finder. Тепер натисніть кнопку Відновити. Потім спробуйте витягнути привід ще раз.


Ви бачили, як це рішення працює?
Ніколя Барбулеско

1

Спробуйте перезапустити Finder. Ось це працює


Не впевнений, чому це було знято; У моєму випадку QuickLook і mds обидва затримали його (незважаючи на відсутність активних вікон пошуку). Я міг би перезапустити mds, але qlmanage -rсказав, що це "скидання Quicklookd", але він все ще тримав файл відкритим відповідно до lsof +D /path/to/volume. Повторний запуск пошуку знайшов його, і я зміг викинути гучність.
AC Capehart

-2

Я перезапустив свій Mac, і це виправили :-)


1
Я віддаю перевагу чистому відключенню накопичувача. Оскільки я в середині виконуючи кілька завдань, вихід із системи та вхід у систему не є кращим, як і встановлення програмного забезпечення сторонніх виробників.
CousinCocaine
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.