Восстановление данных с поврежденной SD-карты, отформатированной как внутреннее хранилище (Marshmallow)

У меня есть SD-карта в Moto G (2015) с зефиром, без рута. Он был отформатирован как внутреннее хранилище и содержит фотографии и видео с рождения нашей дочери, но испортился.

Поскольку он был отформатирован как внутреннее хранилище, это файловая система ESDFS, предположительно зашифрованная. Я не могу расшифровать его без доступа к ключу шифрования, чего я не могу сделать, потому что у меня нет root-прав. Предположительно, рутирование удалит этот ключ шифрования.

Я предполагаю, что он поврежден, потому что любая попытка посмотреть на SD-карту из Android отключает карту, и телефон не может видеть какие-либо изображения / видео на ней. Когда карта вставлена, меню «хранилище» сначала распознает карту и сообщит мне, насколько она заполнена, но любая попытка заглянуть внутрь карты приведет к ее размонтированию.

Я пробовал запускать fsck — в system/bin есть fsck_msdos и fsck.f2fs, но оба выдают сообщение «Отказано в доступе» при их поиске и «Нет такого файла», когда я пытаюсь их запустить.

Я могу получить доступ к /data из оболочки adb, но попытка попасть в /data/data/media приводит к «отказу в доступе»

Кто-нибудь может помочь? Например: 1) удалит ли рутирование ключ шифрования, чтобы карта не могла быть доступна? 2) есть ли способ заставить fsck работать? 3) любые другие идеи для того, чтобы получить СМИ от этой карты?

Спасибо заранее. Я немного нуб, поэтому четкие инструкции очень ценятся!

Если у вас был Google Фото, резервные копии ваших фотографий могли быть сохранены в облаке... Посетите photos.google.com , чтобы проверить... Удачи!
То же самое, та же модель телефона. Моя SD-карта сгорела сегодня днем. :(
android.stackexchange.com/questions/135803/… Возможно, это поможет. У меня такая же проблема, но я не думаю, что у меня есть навыки. бр
Это решение отлично сработало для меня: android.stackexchange.com/questions/174799/…

Ответы (2)

1) удалит ли рутирование ключ шифрования, чтобы карта не могла быть доступна?

Нет, на самом деле «рутирование» ничего не удалит. Укоренение — это просто добавление приложения для доступа суперпользователя или root-уровня. При этом, чтобы рутировать ваше устройство, у вас должен быть разблокирован загрузчик. Разблокировка загрузчика сотрет все устройство, включая ключ шифрования и все остальные данные на устройстве. В Moto G 2015 этого нет. Да, и удалить карту и выполнить операцию не получится, как только она будет рутирована, система будет другой и ключ шифрования изменится.

2) есть ли способ заставить fsck работать?

Не без root-доступа. Честно говоря, даже если вы запустите его, шансы, что он решит эту проблему, очень малы.

3) любые другие идеи для того, чтобы получить СМИ от этой карты?

К сожалению, нет... как только носитель принимается системой, он шифруется с помощью уникального ключа этой системы. Если вы можете получить доступ к ключу, можно получить доступ к данным через Linux, при условии, что данные не повреждены. Если данные повреждены, шансы на восстановление зашифрованных, поврежденных данных чрезвычайно малы.

Как бы я ни хотел дать вам ответ, как восстановить ваши драгоценные фотографии и видео, я не верю, что он есть. Все, что я могу сказать, это то, что в будущем я предлагаю НЕ использовать стандартное хранилище, если это возможно (если бы эта карта была простым внешним/портативным хранилищем, шансы на восстановление носителя с нее выросли бы в геометрической прогрессии) и использовать решение для облачного резервного копирования, такое как Google Photo, которое имеет возможность автоматически сохранять резервную копию ваших фотографий и видео.

Возможно , это предлагает способ извлечения ключа шифрования
Вам не нужно разблокировать загрузчик, чтобы получить root права на устройство. Нужен только для установки кастомной ОС, рекавери и т.п. Если кто-то хочет установить предустановленную ОС (которая подпадает под установку пользовательской ОС), необходимо разблокировать загрузчик. Но это НЕ НУЖНО, если кто-то рутирует существующую ОС на устройстве с помощью эксплойта.
Для рутирования существующей ОС требуется наличие локальной корневой уязвимости и рабочего кода оболочки. Если ваша текущая прошивка не содержит известных проблем с безопасностью, вы не сможете получить root права на систему без разблокировки загрузчика (что приведет к принудительной очистке всего устройства в случае Moto G).

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

Метод, который я выбрал, потребует идентичной SD-карты и устройства чтения карт, однако я считаю, что он должен работать также с любой SD-картой, если она больше — хотя я не проверял это.

Извлеките предположительно поврежденную SD-карту из телефона и подключите ее к машине с Linux. Узнав, какое устройство представляло его (обычно /dev/mmcblk*), используйте ddдля извлечения его содержимого:

$ sudo dd if=/dev/mmcblk0 of=/tmp/sdcard.dump bs=4M

sdcard.dumpбудет абсолютно бесполезен, так как он зашифрован и у вас нет ключа шифрования, но это не имеет значения. Извлеките эту SD-карту и вставьте новую, проверьте устройство SD-карты (скажем /dev/mmcblk1), затем запустите:

$ sudo dd if=/tmp/sdcard.dump of=/dev/mmcblk1 bs=4M
$ sync; sync

Извлеките новую SD-карту и вставьте ее в телефон. В моем случае телефон был обманут, заставив использовать эту новую карту в качестве существующего хранилища, тем самым смонтировав ее и позволив мне получить доступ к ее содержимому.

Если вы получаете ошибки при чтении поврежденной SD-карты, попробуйте использовать ddrescueвместо нее ddпри создании исходного образа. Скорее всего, несмотря на ошибки, вы все равно получите доступ к большой части данных на карте.

Я полагаю, вы захотите заменить sdcard.sumpна sdcard.dumpв первой команде.
Этот ответ имеет аналогичную идею, только вместо замены карты они заменили внутренний SD-ридер телефона на внешний USB-ридер.