Монтирование внутренней памяти Android как Mass Storage и восстановление данных

Восстановление данных с внутренней памяти Android, подключенной как Mass Storage

Восстановление данных, удаленных фото и видео, документов и других элементов из внутренней памяти современных Android телефонов и планшетов стало сложной задачей, поскольку внутреннее хранилище подключается по протоколу MTP, а не Mass Storage (как флешка) и привычные программы для восстановления данных не могут найти и восстановить файлы в этом режиме.

Существующие популярные программы для восстановления данных на Android (см. Восстановление данных на Android) пробуют обойти это: в автоматическом режиме получить root-доступ (либо предоставляя сделать это пользователю), а затем — прямой доступ к хранилищу устройства, но это работает не для всех устройств.

Однако, существует способ вручную смонтировать (подключить) внутреннее хранилище Android как флешку (Mass Storage Device) с помощью команд ADB, а затем использовать любую программу восстановления данных, работающую с файловой системой ext4, использующуюся на этом хранилище, например, PhotoRec или R-Studio. О подключении внутреннего хранилища в режиме Mass Storage и последующем восстановлении данных из внутренней памяти Android, в том числе после сброса на заводские настройки (хард ресета) и пойдет речь в данной инструкции.

Предупреждение: описываемый способ не для начинающих. Если вы относите себя к ним, то какие-то пункты могут оказаться непонятными, а результат действий не обязательно будет ожидаемым (теоретически, можно сделать хуже). Используйте изложенное только под свою ответственность и с готовностью к тому, что что-то пойдёт не так, а ваше Android устройство больше не включится (но, если всё делать, понимая процесс и без ошибок, этого произойти не должно).

Подготовка к подключению внутреннего хранилища

Все действия, описанные ниже можно выполнить в Windows, Mac OS и Linux. В моем случае использовалась Windows 10 с установленной в ней подсистемой Windows для Linux и Ubuntu Shell из магазина приложений. Установка компонентов Linux не обязательна, все действия можно провести и в командной строке (и отличаться они не будут), но я предпочел этот вариант, так как при использовании ADB Shell в командной строке возникли проблемы с отображением спецсимволов, не влияющие на работу способа, но представляющие неудобства.

Прежде чем начать подключение внутренней памяти Android как флешки в Windows выполните следующие шаги:

  1. Скачайте и распакуйте Android SDK Platform Tools в папку на вашем компьютере. Загрузка доступна на официальном сайте https://developer.android.com/studio/releases/platform-tools.html
  2. Откройте параметры системных переменных среды (например, начав в поиске Windows вводить «переменных», а затем в открывшемся окне свойств системы нажав «Переменные среды». Второй способ: открыть Панель управления — Система — Дополнительные параметры системы — «Переменные среды» на вкладке «Дополнительно»). Настройка переменных среды в Windows
  3. Выберите переменную PATH (не важно, системную или пользовательскую) и нажмите «Изменить».
  4. В следующем окне нажмите «Создать» и укажите путь к папке с Platform Tools из 1-го шага и примените сделанные изменения. Добавление Android Platform Tools в Path

Если вы проделываете указанные действия в Linux или MacOS, то поищите в Интернете, как в этих ОС добавить папку с Android Platform Tools в PATH.

Подключение внутренней памяти Android как Mass Storage Device

Теперь приступаем к основной части этого руководства — непосредственно подключение внутренней памяти Android как флешки к компьютеру.

  1. Перезагрузите ваш телефон или планшет в режиме Recovery. Обычно для этого нужно выключить телефон, затем зажать и удерживать кнопку питания и «громкость вниз» в течение некоторого времени (5-6) секунд, а после появления экрана fastboot выбрать Recovery Mode с помощью кнопок громкости и загрузиться в него, подтвердив выбор коротким нажатием кнопки питания. Для некоторых устройств способ может отличаться, но легко находится в Интернете по запросу: «модель_устройства recovery mode»
  2. Подключите устройство к компьютеру по USB и подождите некоторое время, пока оно не будет настроено. Если по окончании настройки в диспетчере устройств Windows устройство будет отображаться с ошибкой, найдите и установите ADB Driver именно для вашей модели устройства. Проверка драйвера ADB в Windows
  3. Запустите Ubuntu Shell (в моем примере используется именно оболочка Ubuntu под Windows 10), командную строку или терминал Mac и введите adb.exe devices (Примечание: из-под Ubuntu в Windows 10 я использую adb для Windows. Можно было бы установить adb для Linux, но тогда бы он не «видел» подключенных устройств — ограничение функций подсистемы Windows для Linux). Список устройств ADB
  4. Если в результате выполнения команды вы видите подключенное устройство в списке — можно продолжать. Если нет — введите команду fastboot.exe devices
  5. Если в этом случае устройство отобразилось, значит всё подключено правильно, но рекавери не позволяет использовать команды ADB. Вероятно, придется установить кастомный рекавери (рекомендую найти TWRP для вашей модели телефона). Подробнее: Установка кастомного рекавери на Android.
  6. После установки кастомного рекавери, зайдите в него и повторите команду adb.exe devices — если устройство стало видным, можно продолжать.
  7. Введите команду adb.exe shell и нажмите Enter.

В ADB Shell по порядку выполняем следующие команды.

mount | grep /data

В результате получаем имя устройства block, которое будет использовать далее (не теряем его из виду, запоминаем).

Просмотр имени устройства внутреннего хранилища Android

Следующей командной размонтируем раздел data на телефоне, чтобы иметь возможность подключить его как Mass Storage.

umount /data

Далее находит индекс LUN нужного раздела, соответствующего Mass Storage Device

find /sys -name lun*

Будет отображено несколько строк, нас интересуют те, которые имеют в пути f_mass_storage, но пока мы не знаем, какая именно (обычно, заканчивающиеся на просто lun или lun0)

LUN хранилища Android (Mass Storage)

В следующей команде используем имя устройства из первого шага и один из путей с f_mass_storage (один из них соответствует внутренней памяти). Если будет введен неверный, вы получите сообщение об ошибке, тогда пробуем следующий.

echo /dev/block/mmcblk0p42 > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file
Подключение внутреннего хранилища как Mass Storage

Следующий шаг — создаем скрипт, подключающий внутреннее хранилище к основной системе (всё, что ниже — одна длинная строка).

echo "echo 0 > /sys/devices/virtual/android_usb/android0/enable && echo \"mass_storage,adb\" > /sys/devices/virtual/android_usb/android0/functions && echo 1 > /sys/devices/virtual/android_usb/android0/enable" > enable_mass_storage_android.sh

Выполняем скрипт

sh enable_mass_storage_android.sh
Монтирование внутреннего хранилища Android как флешки (Mass Storage)

В этот момент сессия ADB Shell будет закрыта, а к системе будет подключен новый диск («флешка»), представляющий собой внутреннюю память Android.

Внутреннее хранилище Android подключено в Windows

При этом, в случае Windows вас могут попросить отформатировать накопитель — не делайте этого (просто Windows не умеет работать с файловой системой ext3/4, но многие программы для восстановления данных умеют).

Восстановление данных из подключенного внутреннего хранилища Android

Теперь, когда внутренняя память подключена как обычный накопитель, мы можем использовать любую программу для восстановления данных, которая умеет работать с разделами Linux, например, бесплатную PhotoRec (доступную для всех распространенных ОС) или платную R-Studio.

Я пробую выполнить действия с PhotoRec:

  1. Скачиваем и распаковываем PhotoRec с официального сайта https://www.cgsecurity.org/wiki/TestDisk_Download
  2. Запускаем программу, для Windows и запуска программы в графическом режиме запустите файл qphotorec_win.exe (подробнее: восстановление данных в PhotoRec).
  3. В главном окне программы вверху выбираем устройство Linux (тот новый диск, который мы подключили). Ниже указываем папку для восстановления данных, а также выбираем тип файловой системы ext2/ext3/ext Если вам требуются файлы лишь определенного типа, рекомендую указать их вручную (кнопка «Форматы файлов»), так процесс пойдет быстрее. Восстановление данных из внутренней памяти Android в PhotoRec
  4. Еще раз убедитесь, что выбрана нужная файловая система (иногда переключается «сама»).
  5. Запустите поиск файлов (находиться они начнут на втором проходе, первый — поиск заголовков файлов). При нахождении, они автоматически будут восстановлены в указанную вами папку. Процесс восстановления данных из внутренней памяти

В моем эксперименте из 30 удаленных из внутренней памяти фотографий в идеальном состоянии было восстановлено 10 (лучше, чем ничего), для остальных — только миниатюры, также были найдены скриншоты png, сделанные ещё до хард-ресета. R-Studio показала примерно тот же результат.

Данные, восстановленные из внутренней памяти Android

Но, так или иначе, это не проблема способа, который работает, а проблема эффективности восстановления данных как таковой в некоторых сценариях. Так же отмечу, что DiskDigger Photo Recovery (в режиме глубокого сканирования с root) и Wondershare Dr. Fone for Android показали сильно худший результат на том же устройстве. Конечно, вы можете попробовать и любые другие средства, позволяющие восстанавливать файлы с разделов с файловой системой Linux.

По окончании процесса восстановления, извлеките подключенное USB устройство (используя соответствующие способы вашей операционной системы).

Отключить внутреннее хранилище Android

Затем можно просто перезагрузить телефон, выбрав соответствующий пункт в меню рекавери.

Комментарии (19) к Монтирование внутренней памяти Android как Mass Storage и восстановление данных

  • Балбес

    А у меня средствами телефона так получилось…
    Но он у меня жутко старый и вообще странный.

    Ответить

  • nTn

    Добрый!
    До adb.exe devices все как в статье.
    Adb.exe Shell

    "- exec 'system/bin/sh' failed: no such file or directory (2)  nRet(1)"

    Куда копать, подскажите, плс.

    Ответить

    • Dmitry

      Это говорит о том, что на устройстве нет system/bin/sh, т.е. adb не может запустить shell (или по какой-то причине не монтируется хранилище)
      Причины: бывает на некоторых кастомных прошивках или после удаления папки под root.
      А вот как победить, кроме перепрошивки, что-то не придумаю и гугл не хочет подсказывать.

      А еще на всякий случай попробуйте запуск adb shell но не в рекавери (просто для проверки, без остальных команд), а в нормально запущенном устройстве — работает? Тогда может дело в рекавери (не дает почему-то использовать shell оттуда).

      Ответить

  • Svetlana

    Дмитрий, спасибо за сайт. Постоянно нахожу ответы на все интересующие меня темы. Но не нашла информацию о перепрошивке системы Android на телефоне Samsung. Если есть такая статья, то дайте ссылку пожалуйста или напишите шикарную статью, которые у вас так здорово получаются. Заранее спасибо

    Ответить

    • Dmitry

      Светлана, здравствуйте и спасибо за отзыв.
      Чтобы написать, мне нужен смартфон от Samsung, а у меня такого нет : (
      Но в интернете, уверен на эту тему должно что-то хорошее найтись.

      Ответить

  • Валентина

    А можно Вас попросить подключиться удаленно и попробовать восстановить фото и видео моей маленькой дочурки с телефона? Так жаль…. Пожалуйста…. дошла до п.3 в разделе «Подключение внутренней памяти…» и тупик(

    Ответить

    • Dmitry

      Здравствуйте.
      Нет, извините, я таких услуг не оказываю.

      Ответить

  • Балбес

    А если на полученной флешке разделами поманипулировать?

    Ответить

    • Dmitry

      Что именно вы имеете в виду?
      Т.е. взять средствами Win начать двигать-создавать-удалять разделы? Думаю, либо не получится (хороший вариант), либо устройство в кирпич превратится (не очень хороший).

      Ответить

  • Egor

    Здравствуйте! После выполнения команды sh enable_mass_storage_android.sh телефон отключается от компьютера (слышно звук отключения устройства, и пропадает в Диспетчере устройств), но как флешка не подключается.

    Ответить

    • Dmitry

      Здравствуйте.

      Попробуйте не /sys/devices/virtual/android_usb/android0/f_mas
      s_storage/lun/file
      А lun0

      Ответить

  • БлагоЯр

    Установил на Lenovo S650 TWRP, перезагрузился командой
    «adb reboot recovery»
    выполняю команду
    «adb devices»
    девайс отображается, но показывает не recovery, а connecting. Пробую в TWRP выбрать перезагрузить в recovery, тоже самое (попадаю в главное меню TWRP).
    В bash (тоже win 10) при наборе команд mount и дальше по списку нужная информация не появляется, а просто как в linux новая строка (как-будто команда выполнена успешно).

    ПС. И определилось не как накопитель, а как DVD-дисковод.

    Ответить

    • Dmitry

      Попробуйте, уже находясь в рекавери, команды по порядку
      adb kill-server
      adb start-server
      А потом снова adb devcies.
      Драйвер, я так понимаю, поставлен, коль TWRP установили.

      Ответить

  • Дима

    У меня вопрос. Я все делал правильно по инструкции. «флешка» подключилась, все как на скрине. но photo rec в упор не видит её. где могла быть ошибка и как исправить?

    Ответить

    • Dmitry

      Хм… вот тут не скажу. А если другой софт использовать, не PhotoRec? R-Studio например (знаю, что она платная, но пробной версией можно хотя бы попробовать посмотреть, увидит ли)

      Ответить

  • Константин

    Добрый день!
    Проделал все как описано, только не через убунтху, а в стандартной командной строке винды.
    выполнил запуск скрипта, командная строка обнулилась, а память так и не появилась

    Ответить

    • Dmitry

      Здравствуйте, а f_mass_storage было несколько или один? Если несколько, попробуйте со вторым.

      Ответить

  • Олег

    Такае же проблема как и у Egor, выполняю скрипт сышно звук отключения usb,телефон отключается,и все пропадает,и как флэшка не подключается

    Здравствуйте! После выполнения команды sh enable_mass_storage_android.sh телефон отключается от компьютера (слышно звук отключения устройства, и пропадает в Диспетчере устройств), но как флешка не подключается.

    Ответить

    • Dmitry

      Здравствуйте. Тут, к сожалению, вот так дистанционно я не смогу помочь. Т.е. был бы у меня телефон на руках, может поковырялся, нашел бы в чем дело, но догадаться просто по описанию (при условии что всё точно было задано в скрипте именно для вашего случая) не могу.

      Ответить

Оставить комментарий

Новое

Список инструкций Windows 10