Читать каждый файл, хранящийся на устройстве или SD-карте?

Устройства флэш-памяти (ячейки NAND) известны тем, что со временем постепенно теряют заряд.

Многие USB-накопители имеют автоматическое сохранение данных в режиме ожидания, но я сомневаюсь, что MicroSD имеет автоматическое сохранение данных.

Как прочитать каждый файл, сохраненный на карте mSD?

Рекурсивный список (ls -R) или «найти» будет читать метаданные каждого файла меньше или больше, но не полные файлы.

Ответы (2)

Открыть /sdcard
//sdcard/ свяжет вас с правильным каталогом SD-карты, я думаю, это для совместимости.

Чтобы действительно убедиться, что у вас есть данные каждого сектора,

  • Выключите ваше устройство.

  • Извлеките SD-карту из вашего устройства.

  • Поместите SD-карту в адаптер (с microSD на SupportedSlot)

  • Вставьте адаптер в компьютер.

  • Клонировать диск в файл .img


  • Не выбирайте сжатие с клонированием, иначе неиспользуемые сектора (помеченные как заменяемые) будут проигнорированы и не будут клонированы в файл образа или раздел. плохо для целей восстановления данных
Можно и побегать badblocks -vv /dev/mmcblk0. Но это с ПК. Как это сделать с Android напрямую?

Одним из возможных способов является установка эмулятора терминала Android, такого как Termux или jackpal.androidterm (который у меня есть).

компакт-диск /хранилище/extSdCard/
ср-р-в . /dev/ноль

-v добавляет многословности и показывает, какой файл читается в данный момент.
«extSdCard» может быть ####-#### (шестнадцатеричные символы, такие как 0612-2FA5).

/dev/null — это черная дыра в операционных системах на основе Unix/Linux. Все, что туда было помещено, пропало. Но что делает команда, так это копирует все файлы в ничто , поэтому исходные файлы остаются прежними, просто читаются.


Альтернативы:

grep -R "Any Text" #if working directory is already selected using the “cd” command.

Или grep -R "Any Text" /storage/[путь к карте MicroSD]

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

Вы также можете перенаправить вывод команды на >>/dev/null или >>/dev/zero .


Другой альтернативой является использование команды генерации хеш-суммы ( md5sumтребуются наименьшие ресурсы обработки для того же объема данных), но это менее эффективно, поскольку необходимо генерировать хэш-сумму. Этот процесс требует дополнительных системных ресурсов.