Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 0

Для чего нужно безопасное извлечение устройства?

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

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

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

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

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

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

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

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

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

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

usb-eject-device-3.png

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

/dev/sdb1 /run/media/flash users,noatime,sync 0 0

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

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

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

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

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

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

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

usb.png

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

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

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

usb-eject-device-4.jpg

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

На завершение видео о принципе работы флешки:

safely-remove-hardware_small.jpgБытует мнение, что USB-накопители можно вынимать из порта только после того, как устройство было безопасно извлечено средствами операционной системы, иначе могут сгореть и флешка, и порт. Так ли это на самом деле? Зачем нужно безопасное извлечение устройства?

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

При включенном кэшировании данные не записываются напрямую на диск, а сначала попадают в кэш (промежуточный буфер в одном из блоков оперативной памяти). Это позволяет ускорить работу с данными, ведь процессор быстрее получает доступ к оперативной памяти, чем к памяти внешнего накопителя. А запись на съемный накопитель осуществляется уже потом (так называемая отложенная запись).

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

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

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

Чтобы флешка сгорела, нужен сильный перепад или выброс напряжения или короткое замыкание. Понятно, что простое выдергивание флешки из порта без безопасного извлечения такой «катаклизм» устроить неспособно. Обычно вина лежит на неисправном блоке питания, «раздолбанном» разъеме, застрявшем в порту токопроводящем мусоре или проскочившем разряде статического электричества, а безопасное извлечение устройства тут ни при чем.

Подтверждением этому факту может служить то, что в последних версиях Windows при безопасном извлечении флешки питание, подаваемое на устройство, не отключается. Оно отключалось в Windows XP, но в Windows Vista и Windows 7 отключение питания происходит только при выдергивании устройства из порта — безопасное извлечение на питание не влияет никоим образом. В данном случае абсолютно неважно, каким образом устройство лишится питания, с ним все равно ничего не случится.

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

Чтобы отключить кэширование, вставьте флешку в порт, зайдите в Панель управления (Пуск — Панель управления) и выберите пункт Диспетчер устройств. Кликните по треугольничку возле надписи Дисковые устройства, найдите вашу флешку и кликните по ней два раза.

В открывшемся окне нужно перейти на вкладку Политика. Выберите параметр Быстрое удаление и нажмите ОК. На самом деле, при быстром удалении кэширование не отключается совсем — Windows использует так называемое сквозное кэширование, оно позволяет устройству работать с командами записи так, как будто кэш отсутствует.

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

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

<center>safely-remove-hardware_big.jpg</center><theq>Кристина Яшкинамай 2016.46197<theq><theq>Технологии<theq>Компьютеры</theq></theq></theq><theq>Ответить<theq>Ответить<theq>4Комментировать<theq> Подписаться5</theq></theq></theq></theq></theq>12 ответов<theq><theq>Alexander Ovcharenko4 года назадПрограммист<qml>

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

Когда вы нажимаете «безопасное извлечение», вы сообщаете системе, что собираетесь отсоединить это устройство. Система завершает работу устройства, закрывает всё открытое и больше не беспокоит устройство, ожидая пока вы его извлечёте.

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

Если вы извлекли устройство не дожидаясь сообщения «теперь вы можете безопасно извлечь устройство» или же, тем более, если вы вообще не нажимали на «безопасное извлечение», система ни за что не отвечает и никак не способна гарантировать вам сохранность ваших данных. Чаще всего ничего плохого не случается, но если всё-таки случится — пеняйте на себя.

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

</qml><theq>149</theq></theq></theq><theq><theq>Mikhail Ryzhov4 года назадПрограммист, интересуюсь физикой, математикой.<qml>

Безопасное извлечение устройства нужно, чтобы безопасно извлекать устройства. Дело в том, что когда вы работаете с носителями информации, операционная система не дожидается конца операций, а сохраняет данные файлов в оперативной памяти, по другому «кэширует». Когда вы копируете файл на USB Drive и окно с индикатором прогресса пропало, файл может быть еще не записан. Более того, окончательно он будет записан только после появления сообщения о том, что устройство можно безопасно извлечь. Это не столь актуально для Windows, но в UNIX-подобных системах пока устройство не размонтировано на нем могут оставаться старые данные.

Если коротко, то необходимо пользоваться безопасным извлечением устройства, а кто так не делает сам себе Злобный Буратино.

</qml><theq>15-2</theq></theq></theq><theq><theq>Виктор Пак4 года назадПользователь TheQuestion<qml>

Я, кстати, таким образом испортил внешний жёсткий диск на 500 гб. Так что всем рекомендую безопасно извлекать устройства.

Развёрнутого ответа не получилось, каюсь.

</qml><theq>9-1</theq></theq></theq><theq><theq>Филипп Дегтярев3 года назадкурьезная личность, идущий против системы<qml>

Ага, после того как я переписывал диплом 2 раза. Пользуюсь этой функцией постоянно и каждый твердит что она нафиг не нужна и ржет. Но *** когда ты будешь переписывать диплом по-новой, то РЖАТЬ буду уже я (мой ответ).

</qml><theq>4</theq></theq></theq><theq><theq>Дмитрий Полхович3 года назадПрограммист<qml>

Опишу самый распространённый случай: запись на устройства хранения данных может быть буферизированной. То есть система отводит некоторую область в оперативной памяти или даже в самом устройстве, называет её буфером и складывает туда кусочки того, что нужно записать на устройство. Такое решение ощутимо ускоряет работу с устройством. Но есть у этого и обратная сторона – вполне возможна ситуация, когда этот буфер заполнен частично и потому не отправляется на запись. Если при этом «небезопасно» извлечь устройство, то кусок какого-нибудь файла, а то и нескольких, которые остались ждать в этом буфере, так и не будут записаны. 

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

</qml><theq>4</theq></theq></theq><theq>Читать ещё 7 ответов</theq><theq>Ответить</theq>Рейтинг вопросов за день<theq>1Что за цветные пятна я вижу, когда закрываю глаза?<theq>2Как поддерживают рентабельность дорогие магазины, где вечно никого нет?<theq>3Кто в метро убирает останки человека с рельсов?<theq>4Как поддерживают рентабельность эти дорогие магазины, где вечно никого нет?<theq>5Объясните по-простому, куда идут взносы на капитальный ремонт дома?</theq></theq></theq></theq></theq>© 2020 TheQuestionПравилаПомощьРекламаИспользуемые источники:

  • https://losst.ru/bezopasnoe-izvlechenie-fleshki-zachem-eto-nuzhno
  • https://strana-sovetov.com/computers/4688-safely-remove-hardware.html
  • https://thequestion.ru/questions/115185/answer-anchor/answer/151723

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации