Безопасное извлечение флешки, зачем это нужно?

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

В этой статье мы попытаемся разобраться зачем нужно безопасное извлечение флешки и действительно ли оно так необходимо. Хотя статья ориентированна более на Linux, но эта задача общая для всех операционных систем, поэтому она будет полезна также пользователям MacOS и Windows.

Безопасное извлечение флешки

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

Но тем не менее, даже если ваша флешка не находится в активном состоянии, ее непредвиденное извлечение может привести к повреждению данных. Это происходит из-за кэширования, которое используется во всех операционных системах. При копировании информация не записывается сразу на диск USB вместо этого для ускорения работы устройства ее часть хранится в оперативной памяти и записывается тогда, когда система будет более свободна или когда вы захотите извлечь флешку.

Система не всегда переносит данные сразу на диск, поэтому если вы неожиданно для системы вытянете флешку из разъема, возможно, не все данные будут правильно записаны. Вероятность такого исхода ниже, чем при активной работе флешки, но она есть.

Почему Linux, MacOS и Windows ведут себя по-разному?

Операционные системы ведут себя почти одинаково при работе с любым диском. Это относится не только к флешкам, но и встроенным в корпус жестким дискам. Данные, которые нужно записать сначала попадают в память и находятся там кое-какое время. Также прочитанные данные кэшируются в оперативной памяти, на случай если они еще раз будут нужны.

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

Безопасное извлечение флешки Linux и MacOS даже больше нужно, чем в Windows при настройках по умолчанию. Почему так? Операционная система Windows не использует кэширование для дисков, которые считает съемными. Такое поведение системы по умолчанию, но его можно изменить в сторону лучшей производительности. Для этого откройте Диспетчер устройств> Дисковые устройства> Название диска> Свойства> Политики:

Безопасное извлечение флешки, зачем это нужно? | Losst

С другой стороны, Linux и Mac используют кэширование для всех дисков по умолчанию, в том числе и съемных. Точно так же себя будет вести Windows если вы выберите вариант Лучшая производительность. Linux дает вам полный контроль над управлением дисками, в том числе вы можете указать нужно ли кэшировать данные. Для этого достаточно создать запись для монтирования флешки в /etc/fstab и добавить опцию монтирования sync. Например:

$ vi /etc/fstab
/dev/sdb1 /run/media/flash users,noatime,sync 0 0

Если вы используете опцию монтирования sync, то все данные, которые будут отправляться на диск будут сразу же записаны. Но обратите внимание, что опция sync не отменяет безопасное извлечение usb устройства. Правильное размонтирование гарантирует, что больше никакое приложение не работает с флешкой и там нет не сохраненных данных.

Если устройство не размонтировано, а файл открыт в какой-либо программе, то неожиданное извлечение может привести к повреждению на уровне файловой системы. Возможно, там остались незавершенные операции перед тем как файл будет закрыт.

Кроме того, опция sync плохо сказывается на сроке службы флешки. Ядро выполняет запись в пакетном режиме, в каждый сектор как только это потребуется. Для дешевых флешек, которые не перераспределяют сервера современная журналируемая файловая система может стать последней и очень быстро убить устройство.

Для файловых систем FAT можно использовать опцию монтирования flush. Она записывает данные как только диск становится неактивным. Это немного улучшает ситуацию.

Всегда используйте безопасное извлечение

Если вы извлечете флешку и перед этим ее не размонтируете, с самой флешкой вряд-ли что случится, она точно не сгорит. Но если в это время что-то записывало на нее данные, то они будут утеряны. Поэтому лучше взять за правило всегда размонтировать флешку linux перед тем, как ее вынуть из компьютера, причем это справедливо не только для Linux, но и Windows.

Тем более, что выполняется все это в пару кликов мышкой. В Ubuntu это можно сделать с помощью проводника. В KDE есть специальный виджет на панели задач, который позволяет безопасно извлечь флешку:

usb

Если вы хотите выполнить это действие через терминал, то все делается тоже ненамного сложнее:

$ sudo umount /dev/sdb1

Здесь sdb1 — имя устройства флешки в вашей системе. После этого флешка будет подготовлена к извлечению. В Windows это нужно делать обязательно, потому что в отличие от Linux, эта система может сама, без вашего ведома начать выполнять какие-либо действия с флешкой, например создать папку System Volume Information с метафайлами.

Здесь достаточно нажать значок на панели и выбрать извлечь устройство:

usb-eject-device-4

Таким образом, всегда используйте безопасное извлечение флешки linux перед тем, как вытянуть ее из компьютера, чтобы точно не повредить данные и выработать у себя привычку делать это.

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x