4991

Скрытый монолит или Seagate Seatools – убийца флешек.

С новым годом мои дорогие подписчики и все остальные Пикабушники! С Вами опять Кот.


Новогодние подарки подарены, салаты съедены, а на работу ещё рано! Значит, есть время рассказать об интересных случаях из будней DR, благо неопубликованного материала накоплено прилично. Буду потихоньку публиковать. Пишу по памяти, часть фотографий сделаны на тапок, по этому не обижайтесь, могу чего-то и позабыть.


Летом написал мне один пикабушник (пожелал остаться анонимным), с проблемой. Запустил он утилиту «Seagate Seatools» для проверки своего диска, при этом забыл вынуть флешку. Флешка после такого неуважения взяла, да и приказала долго жить. А там…. да как обычно, вся жизнь и ещё половинка чужой.


Сначала сам не поверил в такие странности, с чего бы утилите для проверки дисков убивать флешку? Понимаю ещё, при неправильном использовании, можно потереть содержимое, но убить флешку… Чудеса, да и только, либо что-то недоговаривают.


Оказывается, чудеса случаются, и случаи такие не единичны, есть даже темы на «профильных» форумах flashboot.ru/forum/index.php?topic=61036.0 и www.usbdev.ru/f/index.php?topic=787.0 (Не знаю, можно ли тут публиковать ссылки на сторонние ресурсы, если не прав – дорогие модераторы, прошу меня простить и удалить ссылки.)

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


Вот какой мне показали новопреставленную флешку + бонусом лапку кота пикабушника:

Пока флешка ещё хоть как-то определялась, но с нулевым объёмом, с неё успели снять идентификаторы через программу «Chip Genius»:


Description: [W:]Запоминающее устройство для USB(USB MEMORY BAR)

Device Type: Mass Storage Device


Protocal Version: USB 2.00

Current Speed: High Speed

Max Current: 100mA


USB Device ID: VID = 090C PID = 3000


Device Vendor: Silicon Motion,Inc.

Device Name: SM3255AA MEMORY BAR

Device Revision: 0100


Product Model: USB MEMORY BAR

Product Revision: 1000


Controller Vendor: SMI

Controller Part-Number: SM3257ENAA - ISP NONE

Flash ID code: ECD798CE - Samsung K9ABGD8U0B - 1CE/Single Channel [TLC-8K] -> Total Capacity = 4GB

Ну, в принципе, ничего страшного и смертельного. Флешка по фотографии не монолит. Внутри SM3257EN + одна микросхема памяти. Хотя память и TLC, но умерла флешка не из-за износа ячеек памяти, поэтому особых проблем с вычитыванием битовых ошибок не должно быть. Да и лапа котейки на фотке красивая. Как тут можно отказать? В общем, договорились о пересылке трупика мне.


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

Вот таким он предстал передо мной:

«Гм, обычная рекламная флешка, сейчас мы её раздербаним», - подумал я.

«А вот @#$%& тебе!» - подумал остывший трупик флешки.

Поддеваем пластик со стороны usb-порта, а там:

Упс! Внутри затаился страшный зверь - монолит.

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


Дальше всё по накатанной. Гладим пузико трупа наждачкой, располагаем его на «операционном столе», распаиваем проводами питание. На этот раз используем новый «операционный стол» под названием «Spider board» из комплекта комплекса «PC-3000 Flash»:

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

Расставляем иглы на монолит под микроскопом и подключаем адаптер к основному блоку комплекса:

После подключаем к компьютеру, запускаем комплекс, назначаем иглам определённые сигналы, пытаемся читать идентификатор микросхемы памяти. И получаем неизвестный идентификатор. Гхм… Попробуем пошевелить иголки, возможно не все хорошо контактируют. Шевелим пинцетом под микроскопом, снова подключаем и читаем идентификатор. Ура, идентификатор прочитан правильно. Читаем содержимое микросхемы памяти:

Дальше корректируем по ECC содержимое, перечитываем страницы с нескорректированными битовыми ошибками. Как и ожидалось, ошибок было немного и все они удачно скорректировались\перечитались.


Кто из коллег имел дело с «PC-3000 Flash», тот знает, что построение правильного графа преобразований и транслятора в нём частенько не такая уже и тривиальная задача. Поэтому, для начала, грузанём считанный образ микросхемы памяти в комплекс «Flash-Extractor». Благо там есть хорошо работающий мастер для сборки флешек на контроллерах SM3257:

Комплекс ругается на несоответствие объёма подсунутого образа и записей в его внутренней базе, но отрабатывает корректно:

ECC зелёное, микс собран, сборщик настроен. Давайте взглянем на то, как собралась флешка:

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


Переходим обратно в ПС-3000 и начинаем колдовать с графом преобразований. Пару-тройку часов колдовства над графом Дракулой и получаем вот такого кровопийцу:

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

Теперь посмотрим на то, что у нас собралось:

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

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

На этом восстановление можно считать завершённым.


Засим разрешите откланяться. В следующий раз расскажу историю про восстановление длиною в полтора года.


Если кому-то понадоблюсь – всегда welcome ко мне в вк odinokij_kot или в телегу @Odinokij_Kot

Сообщество Ремонтёров

8.1K поста44.1K подписчиков

Правила сообщества

ЕСЛИ НЕ ХОТИТЕ, ЧТОБЫ ВАС ЗАМИНУСИЛИ НЕ ПУБЛИКУЙТЕ В ЭТОМ СООБЩЕСТВЕ ПРОСЬБЫ О ПОМОЩИ В РЕМОНТЕ, ДЛЯ ЭТОГО ЕСТЬ ВТОРОЕ СООБЩЕСТВО:


Посты с просьбами о помощи в ремонте создаются в дочернем сообществе: https://pikabu.ru/community/HelpRemont

К публикации допускаются только тематические статьи с тегом "Ремонт техники".

В сообществе строго запрещено и карается баном всего две вещи:

1. Оскорбления.

2. Реклама.

В остальном действуют базовые правила Пикабу.

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

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

Одна ГиперХ ДДР3-1866, 8ГБ из парного набора при проверке мемтестом сходу вываливает подряд 120 ошибок.

Что с ней можно сделать (погреть, охладить, ёбом токнуть), чтобы со словами "Я сделал, что мог" спокойно выкинуть?

раскрыть ветку (7)
0
Автор поста оценил этот комментарий
Найти сбойную микросхему памяти и заменить на исправную. Но проще сдать по гарантии.
раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Со всеми гарантиями я в пролете, толковых мастеров попытаюсь найти, но вряд ли. Видимо, будет дальше валяться в ящике.

раскрыть ветку (5)
1
Автор поста оценил этот комментарий
Перепаять не проблема, проблема найти какой именно из чипов сбойный и потом найти точно такой же чип на замену.

А попробуй увеличить тайминги памяти. Вдруг на более щадящих она запустится и нормально заработает?

У меня были случаи с материнками от Гнилобайта и различной "геймерской" памятью. В расширенных профилях в spd в них были записаны "быстрые" тайминги под разгон, их мать подцепляла, но забывала выставить правильно напряжение питания. Оставляла стандартные для ддр2 1,8в, а памяти при таких таймингах нужно было минимум 2.1в. При поднятии питания или ручной установки таймингов из стандартного профиля spd всё нормализовалось.

Хотя азусы эту память корректно цепляли, ставили правильно не только тайминги, то на напряжение питания.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

материнками от Гнилобайта и различной "геймерской" памятью

Вот это прямо мой случай.


Значит, тайминги и питание. Спасибо, сегодня попробую.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Через cpu-z посмотри тайминги и перепиши их на бумажку. Потом в биосе выключи все опции по автоматическому разгону всего, чего только можно, всё в нормал или в мануал ставь. Дальше иди в настройки таймингов, там выставляй всё, что записал, если каких-то параметров нет - то оставляй на авто. После этого обязательно сохранить все настройки в отдельный профиль, что бы было чего потом загрузить при очередном сбросе в дефолт (гагабайт любит это при каждом чихе и нестарте делать).
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

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

Видимо, плашка сильно мертвая.

В общем, спасибо за советы. Попытаюсь поискать мастеров с паяльником.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ну видимо не судьба.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку