Почему Mac требует извлечения USB-диска, а Windows и Linux - нет? Происходит ли umount на mac? ... если так, то почему linux не нуждается в umount? ... и если да, то какой windows эквивалентен umount?

Также кажется, что Mac предупреждает о "потере данных", как будто он всегда передает данные ... почему это так?

Каков худший возможный сценарий отключения флешки без ее монтирования на Mac, и почему это не происходит в Linux?

Какой наихудший сценарий отключения флэш-накопителя во время копирования файлов (во всех перечисленных операционных системах).

1 ответ1

4

Windows и Linux требуют извлечения, даже если они имеют определенные средства защиты. Они просто не обязательно так добросовестны в обучении пользователей. (Т.е. предупреждаю вас об этом). Размонтирование / "извлечение" позволяет ОС гарантировать, что она больше не "передает данные".

Возможно, ваше приложение копирования не вернется, пока все данные не будут записаны на устройство. (Насколько вы доверяете своему пониманию приложения для копирования?) Однако один из примеров этого сценария заключается в том, что ваш файловый менеджер отображает миниатюры изображений и начинает записывать кэш миниатюр на устройстве без вашего ведома.

Удаление устройства во время записи повредит файловую систему. Я не знаю, как другие ОС обрабатывают нечисто размонтированные файловые системы FAT на съемных устройствах, но Linux их вообще не обнаруживает. Поэтому следующее монтирование не приведет к восстановлению файловой системы, и файловая система останется поврежденной.

Насколько вероятно, что поврежденный FAT приведет к потере данных с течением времени, я не уверен. Вероятно, есть разумные попытки защититься от этого на хорошо развитых ядрах, таких как Windows и Linux, из-за того, как часто люди делают это. (Аналогичным образом, у linux есть опция монтирования, которая пытается соответствовать поведению Windows FAT при съемном FAT ... она выполняет fsync () для close () или что-то в этом роде).

Однако, это хорошая гигиена, чтобы не допустить повреждения ваших файловых систем. Если ничего другого, это означает, что если вы вынуждены отключаться нечистым образом (например, из-за сбоя питания), то вы можете впоследствии проверить файловую систему на наличие повреждений, и вы столкнетесь только с тем, что произошло недавно.

Что касается худшего случая? Ваше USB-устройство очень дешевый SSD. Дорогие твердотельные накопители выходят из строя, когда теряют энергию, включая потерю всех данных на устройстве. Спи спокойно и ухаживай за своими резервными копиями. https://www.usenix.org/conference/fast13/understanding-robustness-ssds-under-power-fault

Даже если вам повезет, вы можете потерять данные на целом 2-мегабайтном блоке стирания - когда вы записываете только 512-байтовый файл на этом EB. При использовании флэш-памяти устройство должно стереть все 2 МБ ЭБ, прежде чем оно сможет перезаписать данные. Кроме того, устройство переназначит сектора по нескольким причинам, поэтому 2 МБ потерянных данных могут быть из нескольких мест в любой части файловой системы. Моя ссылка здесь была бы беда разработчика ядра Pavel Machek, понимая, что файловые системы linux ext (даже с журналированием) не защищают его данные от этого известного режима сбоя. (Жир на самом деле не лучше).

[Здесь я не очень хороший пример, потому что у меня есть ноутбук с SD-картой, я часто позволяю ему разряжаться, и он накапливает ошибки до такой степени, что fsck.vfat не всегда может их исправить. OTOH нет ничего на карте, что у меня нет копии в другом месте :). В прошлом у меня было 3 неожиданных отказа оборудования SD-карты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .