Безопасное извлечение USB-устройств. Почему и зачем?

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

USB и Plug-and-Play

Один из неоспоримых плюсов USB — легкость его монтирования в операционную систему. Принцип Plug-and-Play (вставил и работай) реализован давно, и для разных устройств, но все же наиболее полно он оказался открыт для USB-устройств. Подключая к компьютеру USB-флешку, смартфон, камеру, мышку или любое другое устройство с этим интерфейсом, мы получаем это устройство работающим практически незамедлительно после подключения. Поддержка устройств USB давно стала общемировым стандартом практически для всех операционных систем.

Современный внешний твердотельный накопитель на базе шины USB 3.1 (тип коннектора USB-C)

Не многие помнят, как это было в Windows 95, Windows 98 и других операционных системах того времени. Для того, чтобы подключить USB-флешку, требовалось сначала установить ее драйвер: или с дискеты, или с CD-ROM. Только после установки драйвера флешка начинала распознаваться в системе и с ней можно было работать. Соответственно, для того, чтобы перенести данные с одного компьютера на другой на этой самой флешке, требовалось нести с собой и диск с драйверами — в противном случае перенос был невозможен.

Скорости USB. Быстрее, выше, сильнее!

Надо ли говорить о том, что скорость работы первых устройств USB, ограниченная интерфейсом USB первого поколения, была весьма и весьма скромной?

Настоящий прорыв наступил с разработкой стандарта USB 2.0 в 2000 году и последовавшим за ним выходом в 2001 году Windows XP. Эта операционная система уже широко поддерживала огромный спектр USB-устройств, для их использования уже не требовалось установки каких-то особых драйверов (лишь в редких случаях, для устройств, для которых Windows XP не имел встроенного драйвера: некоторые сканеры, принтеры и т.п.; устройства хранения информации на базе интерфейса USB требовали установки особого драйвера крайне редко). Стандарт USB 2.0 обеспечивал неплохую скорость, и шина из Useless Serial Bus (бесполезная последовательная шина; так USB в шутку называли на заре его возникновения, поскольку устройств с его поддержкой было очень мало) революционными темпами превратилась в Universal Serial Bus (универсальная последовательная шина).

Однако скоростей USB 2.0 очень быстро перестало хватать, и разработчики стандарта предложили USB 3.0 — стандарт, скорости которого были максимально приближены к SATA. За короткое время были разработаны три стандарта: 3.0, 3.1 и 3.2; в итоге производители решили, что для третьего поколения USB стандартов как-то многовато, и объединили их все под крылом USB 3.2.

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

Безопасное извлечение USB-устройства. Как это работает?

Ну а теперь можно поговорить и о том, о чем, собственно, написана эта статья. Что такое безопасное извлечение USB-устройства?

Впервые эта функция появилась в операционной системе Windows XP, и была реализована на уровне драйверов системы. Конкретно за безопасное извлечение устройств в Windows отвечает драйвер hotplug.dll.

Меню безопасного извлечения устройств в трее Windows 8.1

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

При активации безопасного извлечения устройства происходят следующие акции:

  1. Если в очереди записи/чтения на устройство имелись задачи, им ставится наивысший приоритет и производится их выполнение и финализация.
  2. Производится очистка системных областей буферной памяти, имеющих отношение к отключаемому устройству.
  3. Закрываются окна, имеющие отношение к отключаемому устройству (работает не во всех версиях операционных систем).
  4. Производится отмена любых операций внутренней активности устройства с их завершением.
  5. Отключается питание с порта USB, где будет извлекаться устройство, или этот порт переводится в режим ожидания.

Почему так важно безопасно извлекать устройство?

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

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

Другими словами, то, что вы отправили на устройство какие-то файлы, при небезопасном извлечении устройства вовсе не гарантирует того, что эти файлы будут на вашей флешке.

Это первая опасность.

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

Третья опасность — возможный выход из строя микропрограммы устройства. Любой USB-накопитель, кроме микросхем, в которых хранятся данные (NAND-микросхемы), имеет контроллер. Этим контроллером и управляется устройство. Для функционирования устройства имеется микропрограмма, одной из важных частей которой является трянслятор.

Транслятор — это часть микропрограммы, которая соединяет физиескую адресацию пространства внутри флешки с логической адресацией пространства для операционной системы. Грубо говоря, физические адреса секторов переводятся в LBA, понятные операционной системе. При этом физически первый сектор для Windows во флешке может быть где-то в середине или в конце (совпадение физической и логической адресаций нынче скорее исключение, чем правило).

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

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

Пятая опасность — выход из строя самого разъема USB. Это возможно по тем же причинам, которые характерны для второй опасности.

Как обычно. Пара практических советов в конце =)

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

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

КАК ДЕЛАЮТ ФЛЕШКИ ИЗ ХЛАМА

КАК ДЕЛАЮТ ФЛЕШКИ ИЗ ХЛАМА

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

Итак, флешка на фотографиях ниже. Казалось бы, все, как обычно: плата, распаянные на ней SMD-компоненты, USB-разъем, чип контроллера и чип памяти. Постойте-ка, чип памяти выглядит довольно необычно. Что это за странная конструкция? Отчётливо видим, что чип расположен на текстолитовой подложке, правда, более тонкой, чем та, которая используется для распайки электронных компонентов в этой флешке. Также видим, что пайка довольно обильная, что не совсем обычно для производства таких накопителей (производитель экономит на всем, включая припой, для повышения прибыли). Что же это такое?

Секрет прост. Именно так выглядят чипы памяти во многих дешевых SD и SDHC-картах. Дядюшка Ляо в одном из подвалов Нанкина (или любого другого китайского города, и любой другой дядюшка), имея доступ к отбраковке одного из заводов, производящих такие карты, использует его для своего собственного производства. Скорее всего, доступ имеется даже не к складу отбраковки, а к свалке, куда ее свозят. Он забирает оттуда не прошедшие выходной контроль карты (а может, и карты, которые вернулись на завод по гарантии – кто знает?), выпиливает оттуда чипы, тестирует их и использует в своих собственных «продуктах».

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

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

Вот так и поступают на наш рынок кустарные поделки китайских мастеров: переделанные флеш-карты, собранные из отбракованных компонентов. Приведенный в этой статье гибрид дешевой SD и обычного pen-drive – лишь один из многих примеров, которыми буквально засыпан рынок азиатских городов. Любопытно, что иногда такие поделки проникают и в серьезные компании, казалось бы, защищенные от использования некачественного оборудования использованием только серьезных брендов. Как? Изготовленная подделка не отличается от продукции серьезного бренда – например, Kingston – ничем. Количество моделей флешек у того же Kingston настолько велико, что уследить за изменениями этих моделей нереально. Естественно, закупочный отдел компании будет искать наиболее выгодное предложение от этого бренда, и если дядюшка Ляо сможет предложить Kingston на 1 – 2 доллара дешевле, чем другие магазины, то отдел закупок купит продукцию дядюшки Ляо. И потом, в течение очень короткого времени, будет проклинать все на свете за купленный геморрой.

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

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

Станислав Корб, ©2018



Мы принимаем к оплате | We accept payments


Мы стажировались и работали в странах | We worked or practiced in following countries