> Какой алгоритм для восстановления microSD? Можно по шагам: подключить ридер, запустить
> такую-то утилиту с такими-то параметрами?Самое очевидное - понять что с картой и куда копать.
Разобраться в ситуации в Linux можно hexdump он же hd, есть в большинстве дистров. Или просмотрщиком mc в режиме HEX (вырубить format, unwrap и прочие "улучшения" - тупят на больших файлах). Им удобнее. Если видно mbr, структуры ФС, какие-то осмысленные данные и проч - все не так уж плохо.
Разумеется сначала образ снять и работать с *КОПИЕЙ* *образа*. И лучше ddrescue/myrescue/подобными, на случай если что-то все же не прочтется, dd обломается на первой же ошибке и образ не получится.
Логические разрушений ФС, слет MBR (типично для SD которые на свое горе отформатили, снеся фабричную ФС) и прочие логические ошибки чинятся "как обычно". Хоть fdisk-ом и fsck. Главное понимать как устроено и что где должно быть (чаще всего структура как у "HDD" с 1 MBR разделом и FAT в нем). MBR можно посчитать и записать заново. У FAT часто выживает вторая копия.
Если совсем не прокатило (например оба FAT сдохли) - testdisk и photorec помогут вынуть фоточки и т.п.. Более потрепано - вынется то что не фрагментировано. Суперценные файлы можно попробовать пересобрать из фрагментов, но геморно. Я так разок вынул стертый :) музон с карты найденой в речке. Так что если вы думали что стерли, выбросили в речку и все шито-крыто... да как же :)
Если чтение с карты идет, но не работает запись - возможно, карта протерлась и контроллер ушел в readonly. Уважающие себя производители (например SanDisk) так делают когда wearout флеша превысил резервные сектора. Данные вынуть, карту выкинуть. Хреновые карты могут умереть целиком - бэкапы рулят.
Если с карты что-то читается, но совсем хлам (структур ФС в ожидаемых местах не видно, etc) - это ж.., Карл! Таблица трансляции слетела. Будете записывать что либо - убьете данные. Технически это блоки данных, но - в неправильном порядке. Отдайте спецам, пока не добили. Сами не сделаете. Те кто имеет шансы - не будет задавать ТАКИЕ вопросы. Халявные общедоступные решения не попадались, на подобных know-how спецы зарабатывают на хлеб с маслом.
Если данные не нужны, можно попробовать форсануть перестройку транслятора, несколько раз перезаписав всю поверхность карты (разными данными). За несколько итераций контроллер закартирует всю поверхность заново. Карта починится. Но для ответственных вещей не годится - если что-то где-то не достроилось, может развалиться опять. И горе вам если там ценные данные были. Однако пару халявных трупиков я так себе поднял, до сих пор живые.
Хороший способ убить транслятор - выдернуть карту без размонтирования. Всего одно глупое действие может облегчить недотепу на убедительную сумму. После размонтирования неплохо подождать пару секунд, мало ли какие внутренние процессы у карты, фирмвары бывают дурные.
Более сложные вещи, так что образ не читается и карта не определяется нормально, например размер аномальный или нечто неизвестное - визит к специалистам.
Дальнейшее для тех кто думает что сможет что-то продвинутее. Если напортачите, данные потом не вынут даже эксперты, или сдерут три шкуры за возню после вас.
Если у контроллера карты (или usb-флехи) слетела фирмварь - для некоторых утилиты можно найти (обычно виндовые, увы). Придется понять что за контроллер и флеха, искать правильные утилиты и прошивки и если что не так, а вы впервые - ой. Иногда проще заплатить тем кто уже набил шишек. Гугл в помощь, склады с этим в инете есть.
Для продвинутых манипуляций может захотеться "mmc host" интерфейс. Usb ридеры делающие из карты mass storage - не умеют слать в карты "вендорские" команды. "MMC host" видит карту в нативном виде, можно убедить слать произвольные команды. Но это для желающих залезть "руки по локоть". Даже в Linux видны некоторые продвинутости (всякие служебные описатели карты, trim работает, ...). Где кто возьмет это - его проблемы. Бывает в некоторых ноутах, на одноплатниках, можно на микроконтроллере сделать, ... - кому надо, найдет вариант.
Если контроллер оживить не получилось, в отчаянных случаях паяются к NAND и читают напрямую. Если это крупная SD с большой микросхемой, все понятно. С microSD - флеш chip scale. И все-же, под ним на плате есть пятаки. Нижняя часть microSD - печатная плата покрытая паяльной маской. Если ее аккуратно стереть самой мелкой наждачкой, к пятакам припаиваются. Ну а дальше это NAND. Типовые пинауты пятаков гуглятся (их несколько). Что делать с NAND тот кто этим займется должен знать. Линуксоиды могут попробовать сделать читалку NAND на FTDI2232 или купить готовый адаптер на этом чипе, линуксная софтина для чтения NAND через 2232 болтается в инете. Так что кому по...ться завернуть - берите и e#$тесь, если думаете что крутые :).
Но правда образ с NAND это еще не данные. ECC надо убрать и исправить, битые блоки - пропустить (как bad block marker-ы устроены - как раз и разберетесь, в даташитах на чипы есть подсказки, но это "factory defect list". А "grown defects list" может быть как угодно в меру заскоков фирмвары контроллера). А потом - потом надо еще таблицу трансляции к этому применить. Но если какой-то маньяк зашел так далеко, возможно что и с этим разберется.
А лучшая утилита с одной кнопкой "сделать зашибись" это спец по восстановлению данных. На вход карта и деньги, на выходе ваши данные. Это наиболее реалистичный способ не греть мозг самому.