QuickLook тримає ваш диск у заручниках

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

Ви скопіювали кілька файлів на зовнішній диск. Закрили вікно Finder. Натискаєте «Витягнути» — і macOS відмовляє. Ви не торкалися диска вже п’ять хвилин. То що ж його використовує?

Перевірте в Моніторингу системи процес QuickLookUIService. Велика ймовірність, що винуватець саме він.

Що робить QuickLook

QuickLook — це система, яка забезпечує попередній перегляд файлів у macOS. Натисніть пробіл на файлі у Finder — і ви отримаєте вікно перегляду. Гортайте файли в режимі стовпців — і побачите мініатюри. Відкрийте діалог збереження — і ось вони, ті самі попередні перегляди. QuickLook усюди.

Коли ви гортаєте папку, QuickLook починає генерувати попередні перегляди для файлів, які, на його думку, ви можете захотіти переглянути. Він читає файли, видобуває мініатюри й кешує їх для швидшого доступу згодом. Для зображень, PDF, відео та документів це означає відкриття файлу й обробку його вмісту.

Проблема в тому, що QuickLook буває повільним у вивільненні файлів після того, як завершив роботу з ними. Ви вже перейшли до іншої папки. Ви взагалі закрили вікно Finder. Але QuickLookUIService досі тримає відкриті дескриптори файлів на вашому зовнішньому диску.

Чому це блокує витягнення

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

На цьому етапі QuickLook не читає й не записує нічого важливого. Він просто тримається за дескриптори файлів, які йому вже не потрібні. Але macOS не розрізняє «активно використовує файл» і «забув закрити файл». Дескриптор є дескриптор.

У підсумку ви не можете витягнути диск через попередні перегляди, на які мигцем глянули п’ять хвилин тому.

Як це виправити

Швидке рішення — завершити QuickLookUIService. Відкрийте Термінал і виконайте:

killall QuickLookUIService

Ця команда негайно завершує процес. macOS автоматично перезапустить його, щойно вам знадобиться попередній перегляд. Тепер диск має витягнутися нормально.

Якщо хочете діяти точніше, можна спершу підтвердити, що проблема саме в QuickLook:

sudo lsof /Volumes/YourDriveName | grep -i quicklook

Якщо у виводі є QuickLookUIService — це ваш блокувальник.

Ви також можете скинути кеш QuickLook, що іноді допомагає з постійними проблемами:

qlmanage -r cache

Ця команда очищає кеш мініатюр і перезапускає систему QuickLook.

Чому відео — найбільший порушник

QuickLook особливо настирливо тримається за відеофайли. Коли ви переглядаєте відео, QuickLook відкриває файл і тримає його відкритим на випадок, якщо ви захочете прокрутити чи подивитися далі. Навіть після того, як ви закрили вікно перегляду, дескриптор файлу часто лишається.

Якщо на зовнішньому диску є відеофайли і ви переглядали хоч один із них (навмисно чи випадково під час гортання в режимі стовпців), велика ймовірність, що саме QuickLook блокує витягнення.

Та сама проблема стосується великих зображень і PDF, хоч і меншою мірою. По суті, будь-якого типу файлів, де QuickLook виконує реальну роботу для створення попереднього перегляду.

Як запобігти проблемі

Повністю вимкнути QuickLook без втрати значної частини функціональності macOS навряд чи вдасться. Але можна звести до мінімуму те, наскільки він заважає роботі із зовнішніми дисками.

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

Уникайте натискання пробілу для перегляду файлів на зовнішніх дисках. Якщо потрібно перевірити файл, відкривайте його напряму, а не через QuickLook.

Дайте йому хвилинку після перегляду. QuickLook зрештою сам вивільнить дескриптори файлів. Якщо ви щойно завершили гортати файли на зовнішньому диску, зачекайте 30 секунд, перш ніж намагатися витягнути його.

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

Жодне з цих рішень не є чудовим. Це лише обхідні шляхи для системного процесу, який не вміє належно прибирати за собою.

Справжнє рішення

Найбільше дратує в блокуванні витягнення через QuickLook те, що ви ніяк не можете дізнатися, що це відбувається. macOS каже, що диск використовує «щось». Ви закриваєте все, що тільки спадає на думку. Диск однаково не витягується.

Від вас очікують, що ви або вгадаєте, який невидимий фоновий процес винен, або почнете виконувати команди в Терміналі, щоб розібратися. Для такої буденної дії, як від’єднання диска, це абсурд.

Ejecta показує вам точно, що блокує витягнення. Коли проблема в QuickLookUIService, ви бачите це одразу. Один клік завершує процес і вивільняє ваш диск. Жодних здогадок, жодного Терміналу, жодних сумнівів, чи не зламаєте ви щось.

QuickLook — корисна функція, яка час від часу створює зайві проблеми. Вам не має потреби ставати детективом Unix, щоб упоратися з його невмінням вивільняти дескриптори файлів.

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

Купити — $9.99