Может ли отключение внешнего диска без извлечения повредить его?
Каждый хоть раз выдёргивал USB-накопитель, не извлекая его. Разбираемся, что на самом деле происходит с вашими данными и диском, когда вы пропускаете извлечение.
Вы спешите. Диск не извлекается. И вы всё равно выдёргиваете кабель. Так делали все.
Может, ничего и не случилось. Может, вы получили то самое назойливое уведомление «Диск извлечён неправильно», и потом всё вроде бы работало нормально. И вы начинаете задумываться: а действительно ли нужно извлекать диск, или это просто перестраховка, которая на практике ни на что не влияет?
Влияет. Но не всегда так, как вы ожидаете.
Что на самом деле делает извлечение
Когда вы извлекаете диск в macOS, система выполняет три действия по порядку.
Во-первых, она сбрасывает кэш записи. macOS держит недавно записанные данные в памяти, прежде чем окончательно перенести их на диск. Это повышает производительность, но означает, что «сохранённые» данные могут ещё фактически не оказаться на диске. Извлечение принудительно записывает все данные из кэша.
Во-вторых, она закрывает все файловые дескрипторы. Каждый процесс, у которого открыт файл на диске, получает уведомление освободить его. Это даёт приложениям возможность завершить начатое и корректно закрыть файлы.
В-третьих, она размонтирует том. Диск удаляется из дерева файловой системы, и операционная система перестаёт учитывать его существование. Только после этого шага диск физически безопасно отключать.
Когда вы пропускаете извлечение и просто выдёргиваете кабель, вы пропускаете все три шага одновременно.
Главный риск: кэширование записи
Именно в кэше записи кроется опасность. Современные операционные системы, включая macOS, не записывают данные на внешние диски сразу. Они объединяют записи в пакеты и периодически сбрасывают их на диск ради производительности.
Если вы копируете файл и индикатор выполнения дошёл до конца — это ещё не гарантирует, что данные уже на диске. Система могла подтвердить копирование из собственного кэша, в то время как фактическая запись ещё стоит в очереди. Отключите диск в этот момент — и файл на нём может оказаться неполным, повреждённым или вовсе отсутствовать.
Окно риска бывает разным. После копирования небольшого файла это секунда-две. После большой передачи — десять секунд и больше. И нет никакого визуального индикатора, который сообщил бы, что кэш полностью сброшен.
А если вы только читали с диска?
Если вы подключили диск, открыли несколько файлов и ничего на него не сохраняли, риск при отключении значительно снижается. Нет записи — нет кэша для сброса и нет файлов «в процессе передачи».
Но «ничего не сохранял» гарантировать сложнее, чем кажется. macOS записывает файлы .DS_Store в любую папку, которую вы просматриваете в Finder. Spotlight записывает данные индексации. Некоторые приложения создают временные файлы или файлы блокировки на томах, к которым обращаются.
Возможно, вы и не сохраняли ничего явно, но macOS, скорее всего, что-нибудь записала.
Повреждение файловой системы
Помимо потери отдельных файлов, есть более широкий риск — повреждение самой файловой системы.
Файловые системы хранят внутренние структуры: каталоги, таблицы распределения, записи журнала. Эти структуры описывают, где на диске находится каждый файл и как распределено пространство. Когда вы записываете файл, файловая система обновляет эти структуры. Если отключить диск в середине обновления, структуры могут остаться в несогласованном состоянии.
HFS+ использует журналирование, которое фиксирует запланированные изменения до их внесения. Если отключение прерывает процесс, файловая система может «проиграть» журнал и вернуться в согласованное состояние. APFS подходит к делу совершенно иначе, используя copy-on-write вместо журналирования. Новые данные всегда сначала записываются в свободное место, а указатели обновляются только после завершения записи. Если отключение прерывает процесс, старые данные остаются нетронутыми на исходном месте. В обоих случаях вы можете потерять записываемый файл, но сама файловая система останется в целости.
У exFAT и FAT32 журнала нет. Отключение во время обновления структуры может оставить всю файловую систему в неисправном состоянии. Файлы могут исчезнуть, папки — стать нечитаемыми, а диск может вовсе отказаться подключаться.
Если ваш диск отформатирован в exFAT (что характерно для дисков, используемых совместно на Mac и Windows), корректное извлечение становится ещё важнее.
Физическое повреждение диска
Современные диски достаточно неплохо переносят внезапное отключение на аппаратном уровне. У SSD нет движущихся частей, поэтому риска удара головки нет. Жёсткие диски автоматически паркуют головки чтения/записи при потере питания.
Бо́льшая физическая забота — это разъём. Регулярное выдёргивание USB-кабелей изнашивает порт и на диске, и на вашем Mac. Разъёмы USB-C долговечнее старых USB-A, но и они не застрахованы от износа.
Повторяющиеся внезапные отключения могут также сказываться на прошивке SSD. Контроллеру диска приходится выполнять операции восстановления после каждого некорректного завершения работы, а это добавляет циклов записи и усложняет работу.
Накопительный эффект
Одно непредвиденное отключение вряд ли приведёт к катастрофическим последствиям. Журналирование в современных файловых системах справляется с этим, а диски рассчитаны на такое.
Проблема в том, когда это входит в привычку. Каждый раз, пропуская извлечение, вы играете в рулетку: пуст ли кэш записи, обновлялась ли файловая система и будет ли всё согласовано при следующем подключении.
За десятки или сотни некорректных отключений шансы, что что-то пойдёт не так, растут. Мелкие несогласованности накапливаются. В файлах появляются едва заметные повреждения, которые проявятся, только когда вы попробуете открыть их через несколько недель.
Просто извлекайте диск
Безопасный путь очевиден: всегда извлекайте диск. Но люди пропускают этот шаг не из-за лени. А из-за того, что извлечение в macOS так часто срывается. Вы пытаетесь извлечь диск, вам говорят, что он «используется», и вы не понимаете почему и что с этим делать.
Ejecta убирает саму причину, по которой люди пропускают извлечение. Когда диск не извлекается, программа точно сообщает, какой процесс его блокирует, и позволяет завершить этот процесс в один клик. Всё занимает несколько секунд вместо того, чтобы превращаться в целое расследование.
Корректное извлечение диска — одна из тех маленьких привычек, что предотвращают редкую, но болезненную потерю данных. Сделайте правильный выбор простым — и вы будете поступать так каждый раз.
Если вам не хочется каждый раз обращаться к Терминалу, Ejecta точно покажет, какой процесс блокирует ваш диск, — и позволит завершить его одним кликом прямо из строки меню.
Купить — $9.99