Восстановление данных с карты памяти Compact Flash

admin Восстановление данных, Карты памяти

Сегодня я расскажу вам историю о восстановлении данных с неисправной карты памяти CF, поступившей к нам в сервис одной из первых. Случай оказался довольно интересным и, как оказалось, одним из самых трудоемких в нашей практике. Хозяйка достала карту памяти Compact Flash из фотоаппарата и вставила в неисправный USB порт, после чего флешка стала некорректно определяться. Программные методы не дали результата и карта, побывав в нескольких компьютерных мастерских, оказалась у нас. 32 гигабайта которые она вмещала и сегодня не покажутся маленькими, а на момент поломки её объем выглядел гигантским. Разобрав, обнаружил внутри контроллер Silicon Motion SM2234H и четыре стековых микросхемы NAND памяти, давших 8 дампов по четыре гигабайта каждый. Дампы с выпаянных микросхем пришлось долгими часами вычитывать на программаторе, затем корректировать их по ECC, многократно перечитывать плохие сектора для получения результата с минимальным количеством мусора и битовых ошибок. Используя мощный компьютер с SSD диском удалось справиться с этим всего за пару недель. И вот на руках 8 дампов памяти, которые не содержат ничего похожего на пользовательские данные.

Структура страницы

Структура страницы

Сегодня известно, что для контроллера SM2234H в такой конфигурации характерно объединение по байтам, в результате которого в секторе под номером 16384 оказывается содержимое как на верхней картинке, и теперь подбор нужной последовательности дампов занимает минуты. А без этого знания приходилось сутками комбинировать дампы, в надежде получить что-то отличное от мусора. Этот процесс осложняется тем, что информация может быть представлена в инвертированном виде, разделена на блоки или отXORена неизвестным паттерном. После подбора нужного порядка дампов и инвертирования данных стали встречаться фрагменты файлов небольшого размера. С их помощью удалось разобраться в структуре сектора и отделить области с данными от участков со служебной информацией. Страницы размером 34560 байт состоят из чередующихся 2048 байт данных и 104 байт служебной информации. После первых 2048 байт перед стандартными 104 байтами служебки идут 8 байт служебной информации с данными используемыми транслятором. Последние 120 байт не используются. Данные разделены на части по 512 байт, чтобы использовать их в комплексе PC3000 (это стандартный размер страниц для него). 104 байта служебки использовались для коррекции ошибок, а 8 байт по смещению 2048 присоединены к каждой странице, чтобы можно было восстановить транслятор.
Для устранения микса поделил дампы на равные блоки по 64 сектора и объединил их, чередуя блоки из разных дампов. После этого стали встречаться фрагменты файлов сопоставимые по размеру с блоком. Воспользовавшись 8 байтами восстановил транслятор, собрал образ и получил доступ к данным.

Читайте также:
Флешка Transcend с неисправным транслятором

2 thoughts on “Восстановление данных с карты памяти Compact Flash

  • PilyVets:

    Добрый день, отсняла свадьбу на compact flash 32, скинула файлы на компьютер из 1200 файлов raw, скинулось 330 и выдало ошибку, затем на фотоаппарате просят отформатировать карту и компьютер не видед. Реально восстановить файлы!? Отнесла к специалистам, сказал вероятность мала

  • Квадра:

    Шансы есть, привозите на диагностику.

Комментарии закрыты.