Восстановление данных из пустого места.

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



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

WinHex:



Опаньки… Все! Все 32 гигабайта «залиты» нулями… Данных нет! Шеф, всё пропало.

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

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

Ок, русские не сдаются. Спаяем микросхему и посмотрим содержимое памяти напрямую, в обход контроллера. В данном случае в одном корпусе два кристалла, Вместе со служебной информацией получается два дампа по 18гб.

В дампе не нули, но это ещё ни о чём не говорит, так как на современных флешках контроллер пишет данные не в явном виде, а через XOR операцию.

Если все блоки одинаковы, то да, накопитель залит одним и тем же. Но нам повезло они разные, а это данные!

Нужно подобрать ксор, и собрать блоки в нужной последовательности по алгоритму контроллера.

Пошаманим ростовским комплексом

И вауля, 26 гигабайт данных, 9000 файлов, битых из них 900.

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

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

Касательно этого случая, флешка умирала и «сигнализировала» об этом косвенным путём, а именно: запускалась проверка диска, результат работы чекдиска — папка FOUND, в восстановленных данных присутствует. Это уже были первые звоночки, что она «сыпется».

Контроллер увидел, что количество плохих ячеек памяти уже огромное и сделал такой «финт ушами» как, отдача в интерфейс нулей.

Нам же пришлось вычитывать битые сектора, многократным чтением, какие-то из них удалось прочитать или восстановить из ECC. Как результат – клиент доволен. А начиналось то всё, с пустого места…

 

Источник: habr.com

RuCoreNET - лучшее для вас!


Поделись статьей с друзьями


377 просмотров


0 0 vote
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments


Do NOT follow this link or you will be banned from the site!
0
Would love your thoughts, please comment.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: