20 июня 2012 г.

Восстановление флешки на примере Transcend JetFlash 300 8Gb

Transcend JetFlash 300


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

Сегодня мы рассмотрим вопрос восстановления работоспособности флешки на примере Transcend JetFlash 300 8Gb, которая «зависла» во время записи данных и после извлечения не определялась как накопитель.

При подключении флешки к ПК она моргала диодом с плавным затуханием, как бы сообщая нам: «Ooops! есть проблема». В диспетчере устройств наблюдалась следующая картина:

Запоминающее устройство для USB
В свойствах устройства было видно, что флешка определяется, VID и PID соответствуют модели, но как диск она не отображалась и в диспетчере дисков отсутствовала.

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

У любой флешки внутри есть контроллер (управляющая микросхема) и одна или несколько микросхем памяти. Из-за сбоев, проблем с питанием или других причин контроллер может блокироваться, а в памяти, как и у жестких дисков, могут появляться «плохие» сектора.

В случае программного сбоя, который имеет место в нашем случае, алгоритм реанимации флешки следующий:
  1. Определяем производителя контроллера. 
  2. Находим сервисную утилиту производителя. 
  3. Переводим контроллер в тестовый режим, если требуется. 
  4. Восстанавливаем. 
И так, начнем с определения производителя контроллера. Лучший способ точно определить какой контроллер используется — разобрать флешку и посмотреть. Потому, как одна и та же модель USB-Flash накопителя в разное время может выпускаться на разных контроллерах, с разной памятью.

Учитывая тот факт, что гарантия на нашу Transcend JetFlash 300 8Gb давно вышла, то мы не постесняемся и разберем её:

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

Осторожно подеваем ножом край наклейки со стороны крышки, приподнимаем её. Под наклейкой видим зуб защелки:

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

Надавливаем чем-то тонким на зуб защелки и тянем разъем вперед. Можно использовать тонкую отвертку, вставленную между корпусом и цветной заглушкой:

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000
Корпус отделяется достаточно легко:

Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

И вот у нас в руках полностью разобранная флешка Transcend JetFlash 300 8 Gb:
Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000

Смотрим, что за чип контроллера? — SM3255Q AB.
Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000 SMI 3255Q AB

С обратной стороны находим микросхему памяти — Samsung K9BCG08U1A-MCB0
Transcend JetFlash 300 8 Gb Vid 8564 Pid 1000 Samsung K9BCG08U1A-MCB0

С исходными данными определились. Теперь начинаем поиск утилиты с чудесного сайта flashboot.ru

У нас чип от SMI, а значит ищем сервисную утилиту, которая умеет работать с контроллером SM3255AB. Методом проб и ошибок утилита была найдена - SMI MPTool V2.03.20 v2 J0324. Обратите внимание, что версий данной утилиты великое множество, но нашу флешку увидела только эта версия (v2 с J0324 в конце).

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

Что бы перевести контроллер в тестовый режим, нужно замкнуть у него две ножки. Но не какие-нибудь, а специальные! Но, к сожалению, не всегда можно найти datasheet (документацию) на контроллер, и велика вероятность замкнуть не те ножки и совсем спалить управляющую микросхему. По этому обычно идут другим путем, а именно ищут datasheet на микросхему памяти, и замыкают ножки на ней. Шина данных микросхемы памяти и контроллера, обычно, соединена напрямую.

Если имеем datasheet на нашу микросхему, то в схеме ищем выводы, подписанные как F0D0, F0D1 и т.д., это и есть шина данных. Замыкаем их попарно с помощью тонкой отвертки или пинцета, перед тем как подключить флешку (удобно использовать USB удлинитель), и пытаемся определить в утилите (F5). Для микросхемы памяти Samsung K9BCG08U1A-MCB0 искомыми ножками оказались 19-20. Ножки считают от ключа (точка в углу микросхемы) в направлении ножек против/по часовой стрелке, в зависимости от корпуса. В нашем случае выводы расположены по часовой стрелке.

Transcend Jetflash 300
В нашем случае флешка определялась системой, потому заводской драйвер устанавливался без необходимости переводить контроллер в тестовый режим. Находится драйвер в папке с утилитой, по пути ..\UFD_MP\FactoryDriver\WinXP\SMIInfUpdate.exe

Хотя сам драйвер и предназначен для XP, но он успешно установился на 7-ке.

SMI Factory Driver Update
Здесь мы вписываем VID и PID своей флешки и жмем кнопку SMI Factory Driver, после чего установка драйвера завершится. Переподключаем флешку к ПК. Теперь в диспетчере устройств должно быть так:

SMI Factory Driver

Затем можно запустить утилиту и открыть настройки (выбрав файл default.ini). Вписываем VID и PID флешки и сохраняем настройки в отдельный файл, например 1.ini В дальнейшем будем открывать именно его:
SMI Mass Production Tool Settings

После установки заводского драйвера в главном окне утилиты необходимо поставить галку «Factory Driver and HUB».

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

При успешном поиске флешка отобразится в утилите:

SMI Mass Production Tool

Жмем Start (пробел) и утилита начнет диагностику и форматирование флешки. Учтите, что все данные на флешке будут уничтожены!

В нашем случае при нажатии кнопки Start появлялась ошибка «bad block over setting(11)» после чего в настройках на закладке «Capacity settings» увеличили количество bad блоков и флешка успешно форматнулась. После этого поставили галку на «Data Block» (не меняя значение) и еще раз форматнули, получив таким образом максимально возможный объем.

SMI Mass Production Tool

Успешно завершенная операция восстановления будет выглядеть так:
SMI Mass Production Tool
Осталось вернуть обратно драйвер. Снова запускаем SMIInfUpdate.exe и жмем кнопку Mass Storage Driver:

SMI Factory Driver Update
Переподключаем флешку. It's ALIVE!!!