Чи може від’єднання зовнішнього диска без витягнення пошкодити його?
Кожен хоч раз висмикував USB-диск, не витягнувши його. Ось що насправді стається з вашими даними й диском, коли ви пропускаєте крок витягнення.
Ви поспішаєте. Диск не витягується. Ви все одно висмикуєте кабель. Усі так робили.
Можливо, нічого не сталося. Можливо, ви отримали те дратівливе сповіщення «Диск вийнято неправильно», але потім усе виглядало нормально. Тож ви починаєте сумніватися, чи витягнення справді необхідне, чи це просто одна з тих обережних звичок, що на практиці нічого не значать.
Воно має значення. Але не завжди так, як ви могли б очікувати.
Що насправді робить витягнення
Коли ви витягуєте диск на macOS, система виконує три дії по черзі.
Спершу вона скидає кеш запису. macOS тримає нещодавно записані дані в пам’яті, перш ніж зафіксувати їх на диску. Це покращує швидкодію, але означає, що дані, які ви «зберегли», можуть ще фактично не бути на диску. Витягнення змушує записати всі закешовані дані.
По-друге, вона закриває всі дескриптори файлів. Кожен процес, що тримає на диску відкритий файл, отримує сповіщення про необхідність його вивільнити. Це дає програмам шанс завершити те, що вони роблять, і акуратно закрити файли.
По-третє, вона відмонтовує том. Диск видаляється з дерева файлової системи, а операційна система перестає визнавати його існування. Лише після цього кроку фізично безпечно його від’єднати.
Коли ви пропускаєте витягнення й просто висмикуєте кабель, ви пропускаєте всі три кроки одночасно.
Справжній ризик: кешування запису
Кеш запису — ось де ховається небезпека. Сучасні операційні системи, зокрема macOS, не записують дані на зовнішні диски одразу. Вони групують записи разом і періодично скидають їх із міркувань швидкодії.
Якщо ви скопіювали файл і індикатор виконання дійшов до кінця, це не гарантує, що дані на диску. Система могла підтвердити копіювання з власного кешу, тоді як фактичний запис ще в черзі. Від’єднайте в цей момент — і файл на диску може виявитися неповним, пошкодженим або взагалі відсутнім.
Вікно ризику різниться. Після копіювання невеликого файлу це може бути секунда-дві. Після великої передачі — десять секунд чи й більше. Немає жодного візуального індикатора, який підказав би, коли кеш повністю скинуто.
А як щодо дисків, з яких ви лише читаєте?
Якщо ви підключили диск, відкрили кілька файлів і нічого на нього не зберігали, ризик від’єднання істотно знижується. Немає записів — немає кешу запису для скидання й немає файлів посеред передачі.
Але «нічого на нього не зберігали» гарантувати важче, ніж може здатися. macOS записує файли .DS_Store до будь-якої папки, яку ви гортаєте у Finder. Spotlight записує дані індексування. Деякі програми створюють тимчасові файли чи файли блокування на томах, до яких звертаються.
Можливо, ви нічого не зберігали явно, але macOS, найімовірніше, щось таки записала.
Пошкодження файлової системи
Окрім втрати окремих файлів, є ширший ризик пошкодження файлової системи.
Файлові системи підтримують внутрішні структури: каталоги, таблиці розподілу, записи журналу. Ці структури описують, де на диску живе кожен файл і як розподілено простір. Коли ви записуєте файл, файлова система оновлює ці структури. Якщо ви від’єднаєтеся посеред оновлення, структури можуть лишитися в неузгодженому стані.
HFS+ використовує журналювання, яке фіксує заплановані зміни перед їх внесенням. Якщо від’єднання перерве процес, файлова система може відтворити журнал, щоб відновитися до узгодженого стану. APFS застосовує цілком інший підхід, використовуючи копіювання при записі замість журналювання. Нові дані завжди спочатку записуються у вільний простір, а вказівники оновлюються лише після завершення запису. Якщо від’єднання перерве процес, старі дані лишаються цілими на своєму початковому місці. За будь-якої з цих файлових систем ви можете втратити файл, що записувався, але сама файлова система лишається цілою.
exFAT і FAT32 журналу не мають. Від’єднання під час оновлення структури може лишити всю файлову систему в зламаному стані. Файли можуть зникнути, папки можуть стати нечитабельними, або диск може взагалі відмовитися монтуватися.
Якщо ваш диск відформатовано в exFAT (поширено для дисків, спільних для Mac і Windows), правильне витягнення ще важливіше.
Фізичне пошкодження диска
Сучасні диски досить непогано переносять раптове від’єднання на апаратному рівні. SSD не мають рухомих частин, тож ризику зіткнення голівок немає. Жорсткі диски автоматично паркують свої головки читання-запису, коли зникає живлення.
Більше фізичне занепокоєння викликає роз’єм. Повторне висмикування USB-кабелів може зношувати порт і на диску, і на вашому Mac. Роз’єми USB-C довговічніші за старіші USB-A, але й вони не застраховані від зносу.
Повторні неочікувані від’єднання можуть також впливати на прошивку SSD. Контролер диска має виконувати операції відновлення після кожного некоректного завершення роботи, що додає циклів запису й ускладнює роботу.
Накопичувальний ефект
Одне незаплановане від’єднання навряд чи спричинить катастрофічне пошкодження. Журналювання сучасних файлових систем із цим справляється, а диски збудовані так, щоб це витримувати.
Проблема виникає, коли це стає звичкою. Щоразу, пропускаючи витягнення, ви кидаєте кості: чи порожній кеш запису, чи оновлювалася файлова система і чи буде все узгодженим, коли ви знову підключитеся.
Протягом десятків чи сотень неправильних від’єднань шанси, що щось піде не так, зростають. Дрібні неузгодженості накопичуються. У файлах розвивається приховане пошкодження, яке не дає про себе знати, доки ви не спробуєте відкрити їх за кілька тижнів.
Просто витягуйте диск
Безпечний шлях очевидний: завжди витягуйте. Але люди пропускають це не через лінощі. Річ у тім, що витягнення на macOS так часто дає збій. Ви намагаєтеся витягнути, вам кажуть, що диск «використовується», і ви не знаєте чому й що з цим робити.
Ejecta усуває саму причину, через яку люди пропускають витягнення. Коли ваш диск не витягується, вона точно каже, який процес його блокує, і дозволяє завершити цей процес одним кліком. Уся справа займає кілька секунд, а не перетворюється на ціле дослідження.
Правильне витягнення диска — одна з тих дрібних звичок, що запобігають рідкісній, але болісній втраті даних. Зробіть правильний вибір легким — і ви робитимете його щоразу.
Якщо ви не хочете щоразу користуватися Терміналом, Ejecta покаже вам, який саме процес блокує ваш диск, — і дасть завершити його одним кліком прямо з рядка меню.
Купити — $9.99