DataLife Engine / Как перепрошить флешку

Как перепрошить флешку



Существует множество причин, по которым флешка внезапно перестаёт нормально работать: данные не читаются, накопитель не виден в Проводнике, требует форматирования или даже не опознаётся системой. Самая безобидная из них — возникающие вследствие преждевременного извлечения накопителя ошибки файловой системы, с которыми вполне успешно справляется запущенная с параметрами /f и /r штатная утилита chkdsk. В более сложных случаях — износе памяти применяется ремапинг, когда повреждённые ячейки маркируются как более неиспользуемые. Но даже ремапинг не гарантируют восстановление нормальной работы устройства памяти. Если повреждённой оказывается микропрограмма контроллера флешки, чтобы вернуть переносной диск к жизни, потребуется его перепрошивка.

Как перепрошить флешку


Что такое перепрошивка



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

Признаки повреждения микропрограммы 

Повреждение микропрограммы контроллера может быть вызвано преждевременным извлечением накопителя в процессе активного его использования, сбоем питания и некоторыми другими причинами. На неполадку этого рода чаще всего указывают следующие признаки:

•  Флешка определяется как «Неизвестное устройство».
•  Накопитель доступен только для чтения, запись и удаление с него данных невозможны.


•  Размер флешки в диспетчере устройств и других менеджерах дисков определяется как нулевой.
•  При подключении накопителя выдаётся сообщение «Вставьте диск в дисковод» или «Нет доступа к диску».

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

Предостережение

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

Определяем модель контроллера и Flash ID  
    
Первое, что вам нужно сделать, это определить модель контроллера и идентификатор используемой памяти. Для этих целей можно воспользоваться такой утилитой как Flash Drive Information Extractor. Это бесплатное портативное приложение доступно для скачивания с сайта разработчика www.antspec.com/usbflashinfo. 
Подключите к ПК съёмный накопитель, запустите утилиту и нажмите «Получить информацию о флешке». Для удобства полученные данные лучше скопировать в текстовый файл. В списке характеристик вам нужно запомнить два параметра:

1. Controller: (в нашем примере это Silicon Motion SM3257 ENBA).
2. Flash ID: (у нас это 98DE9493 7657).
Примечание: если вдруг Flash Drive Information Extractor не сможет извлечь данные о флешке, воспользуйтесь альтернативными утилитами ChipGenius или ChipEasy.

Информация о накопителе у вас есть, осталось подобрать соответствующую производственную утилиту. Перейдите на сайт www.usbdev.ru, переключитесь в раздел «Файлы» и прокрутите страницу вниз. 
Здесь вы найдёте длинный список производителей контроллеров, среди которых вам нужно найти свой. У нас это Silicon Motion, у вас производитель может быть иной. 
Перейдя по ссылке, выберите в меню слева пункт «РЕМОНТ С ПОМОЩЬЮ SMI MPTOOL». В итоге вы окажетесь на странице загрузки производственной утилиты, кликните по ссылке SMI MPTool. 
Перед вами предстанет внушительный список запакованных в архив утилит, в которых помимо исполняемого файла находится также и версия прошивки. Как понять, какой именно архив вам нужен? Вот тут как раз вам пригодится маркировка производителя контроллера SM3257 ENBA. Пробел в маркировке обычно не используется, поэтому убираем его и получаем SM3257ENBA, а затем выполняем по нему поиск на странице и находим несколько совпадений. Скачиваем архив с последней версией утилиты и распаковываем его в удобное расположение.

Примечание: перед тем как скачивать утилиту, ознакомьтесь на странице загрузки с рекомендациями. Так, для нашей флешки с контроллером SM3257ENBA рекомендуется использовать не SMI MPTool, а Dyna Mass Storage Production Tool — похожий по функциональности инструмент. Ниже мы покажем, как с ним работать, а пока остановимся на SMI MPTool. 

Сопоставляем Flash ID с данными в файле с прошивкой

Распаковав архив, вы найдёте в нём исполняемый файл производственной утилиты и набор каталогов, но не спешите запускать программу. Сначала нужно убедиться, что она действительно поддерживает тип памяти вашего устройства. Для этого как раз и нужен ранее полученный Flash ID (98DE9493 7657). Зайдите в папку UFD_ALL_DBF и найдите в ней по названию файла базы данных формата DBF, соответствующий маркировке контроллера. 
В нашем примере это SM3257ENBA, а если точнее — 3257ENBA, поскольку префикс SM отбрасывается. Открыв этот файл Блокнотом, вы увидите массив данных, в котором вам нужно отыскать всего одну строку — Flash ID, немного её отредактировав. А теперь внимание.
    
• 98DE9493 7657 — так выглядит шестнадцатеричный код Flash ID, полученный утилитой Flash Drive Information Extractor.
• 98 DE 94 93 76 57 — а вот так выглядит тот же Flash ID, только в «правильном» формате, то есть мы просто отделили пробелом байты (каждые два символа) от другого.

Это второе значение нужно забить в поиск Блокнота или другого текстового редактора с открытой в нём базой прошивки. Если строка будет найдена, значит выбранная утилита подходит для перепрошиваемой флешки. 
Убедившись в правильности выбора, запустите утилиту, а затем подключите к компьютеру и саму флешку. На то, что накопитель опознан, укажет отмеченный синим маркером квадратик с буквой флешки, текст «Ready» и прочая служебная информация в поле порта. Чтобы запустить процедуру перепрошивки, нажмите кнопку «Start». Если всё пройдёт благополучно, вы получите такую картину с зелёным статусом «OK». 
К сожалению, для нашей флешки с контроллером SM3257ENBA утилита SMI MPTool не подошла, хотя и прошивка была выбрана правильно. В результате утилита выдала ошибку «FALL». Да, предлагая использовать Dyna Mass Storage для нашей флешки, администраторы ресурса оказались правы. 

Dyna Mass Storage Production Tool

Процедура прошивки в этой утилите очень похожа. Точно так же по названию контроллера вам нужно найти на странице архив с последней версией утилиты, точно так же необходимо отыскать в файле базы данных DBF строку Flash ID, переведённую в корректный шестнадцатеричный код как было показано выше. 
Если совпадение найдено, запустите утилиту и вставьте в порт флешку. Если вдруг накопитель не определиться утилитой, нажмите кнопку «Scan». После того как флешка будет опознана, на что укажут данные в одной из ячеек, нажмите «Setting», а когда появится диалоговое окошко ввода пароля, нажмите «OK» (пароль пустой) и укажите путь к файлу NDefault.INI в папке с исполняемым файлом Dyna Mass Storage. Этот этап (указание пути к INI- файлу) можно пропустить, так как утилита обычно автоматически подхватывает конфигурационный файл, просто убедитесь, что путь к нему указан в заголовке программы. В открывшемся окне параметров выставляем указанные на скриншоте настройки и жмём «Save». 
Единственное, на что вам нужно обратить внимание, это поле «Enable ECC Threshold (Bits)», изменение значения которого может быть недоступным (Auto Set ECC). Это нормально, в противном случае перейдите на страницу www.usbdev.ru/articles/a_smi/ecc-smi и найдите значение ECC для вашего контроллера. Всё готово, жмём кнопку «Start» и ждём завершение операции перепрошивки. Она проходит в несколько этапов, продолжительность зависит от объёма и типа памяти. У нас перепрошивка флешки объёмом 7,5 Гб заняла 30 минут, и на этот раз всё прошло успешно. 
(24-28)

Резюме

Ну вот, теперь вы знаете, как самостоятельно перепрошить флешку, будьте только внимательными и проверяйте каждый свой шаг. Ошибка не означает, что накопитель выйдет из строя окончательно, по крайней мере, повторная прошивка нашей флешки благополучно её реанимировала. И напоследок ещё один важный момент. Наверняка у кого-то из наших читателей возникнет вопрос, а почему мы не использовали для поиска производственный утилиты рекомендуемые на других сайтах PID и VID, разве это не было бы удобнее и быстрее? Быстрее, так это верно, но вероятность допустить ошибку в подборе спецутилиты будет значительно выше. Так что если подходить к решению проблемы, то делать это нужно со всей ответственностью и не побоимся этого слова, педантичностью.
28-12-2020
Вернуться назад