У меня есть SD-карта в Moto G (2015) с зефиром, без рута. Он был отформатирован как внутреннее хранилище и содержит фотографии и видео с рождения нашей дочери, но испортился.
Поскольку он был отформатирован как внутреннее хранилище, это файловая система ESDFS, предположительно зашифрованная. Я не могу расшифровать его без доступа к ключу шифрования, чего я не могу сделать, потому что у меня нет root-прав. Предположительно, рутирование удалит этот ключ шифрования.
Я предполагаю, что он поврежден, потому что любая попытка посмотреть на SD-карту из Android отключает карту, и телефон не может видеть какие-либо изображения / видео на ней. Когда карта вставлена, меню «хранилище» сначала распознает карту и сообщит мне, насколько она заполнена, но любая попытка заглянуть внутрь карты приведет к ее размонтированию.
Я пробовал запускать fsck — в system/bin есть fsck_msdos и fsck.f2fs, но оба выдают сообщение «Отказано в доступе» при их поиске и «Нет такого файла», когда я пытаюсь их запустить.
Я могу получить доступ к /data из оболочки adb, но попытка попасть в /data/data/media приводит к «отказу в доступе»
Кто-нибудь может помочь? Например: 1) удалит ли рутирование ключ шифрования, чтобы карта не могла быть доступна? 2) есть ли способ заставить fsck работать? 3) любые другие идеи для того, чтобы получить СМИ от этой карты?
Спасибо заранее. Я немного нуб, поэтому четкие инструкции очень ценятся!
1) удалит ли рутирование ключ шифрования, чтобы карта не могла быть доступна?
Нет, на самом деле «рутирование» ничего не удалит. Укоренение — это просто добавление приложения для доступа суперпользователя или root-уровня. При этом, чтобы рутировать ваше устройство, у вас должен быть разблокирован загрузчик. Разблокировка загрузчика сотрет все устройство, включая ключ шифрования и все остальные данные на устройстве. В Moto G 2015 этого нет. Да, и удалить карту и выполнить операцию не получится, как только она будет рутирована, система будет другой и ключ шифрования изменится.
2) есть ли способ заставить fsck работать?
Не без root-доступа. Честно говоря, даже если вы запустите его, шансы, что он решит эту проблему, очень малы.
3) любые другие идеи для того, чтобы получить СМИ от этой карты?
К сожалению, нет... как только носитель принимается системой, он шифруется с помощью уникального ключа этой системы. Если вы можете получить доступ к ключу, можно получить доступ к данным через Linux, при условии, что данные не повреждены. Если данные повреждены, шансы на восстановление зашифрованных, поврежденных данных чрезвычайно малы.
Как бы я ни хотел дать вам ответ, как восстановить ваши драгоценные фотографии и видео, я не верю, что он есть. Все, что я могу сказать, это то, что в будущем я предлагаю НЕ использовать стандартное хранилище, если это возможно (если бы эта карта была простым внешним/портативным хранилищем, шансы на восстановление носителя с нее выросли бы в геометрической прогрессии) и использовать решение для облачного резервного копирования, такое как Google Photo, которое имеет возможность автоматически сохранять резервную копию ваших фотографий и видео.
Столкнувшись с одной и той же проблемой более одного раза и отказавшись от попыток получить 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
в первой команде.
отменить
Палантир
Ренато Нагар
Сегмус