Почему Android 5 повреждает мою SD-карту (перемещает файлы в LOST.DIR или теряет их)?

Я годами использую SD-карты в формате VFAT для передачи файлов между устройствами (планшетами, камерами, GPS, компьютерами) под разными ОС (Linux, Windows, Symbian, Android) без, насколько я помню, каких-либо существенных проблем. В некоторых случаях (GPS) это единственный способ скопировать файлы.

Недавно (май 2016 года) я получил новый телефон и попытался скопировать файл с моего планшета Android (4.2.2) на телефон Android (5.1.1) через SD-карту, вставив карту из планшета в телефон. Телефон испортил мою SD-карту. Сотни файлов были переименованы и перемещены в LOST.DIR, а некоторые, по-моему, удалены (больше я восстановил с помощью photorec в Linux, и у большинства есть метаданные, такие как EXIF, из которых я могу сбросить дату и имя, но это раздражало).

Это кажется повторяемым; Пробовал с новой картой, изначально на телефоне, пробовал создавать файлы под линуксом (Fedora 9). Если я создам новый файл под Android 4.2, а затем перемещу SD-карту в Android 5.1, он переименует файл в LOST.DIR. Похоже, что 5.1 запускает fsck pass при вставленной карте, "чиня" ее. Если я попробую «fsck.vfat -r» в Fedora, ему не понравится файл .android_obb, и он скажет, что это недопустимое имя файла, но не испортит FS.

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

В Интернете есть сотни жалоб на LOST.DIR, поэтому трудно найти хороший технический ответ. Кто-нибудь знает об этом больше, например, почему это происходит или как это предотвратить (помимо того, что вы не выполняете эту конкретную передачу)? Например, можно ли отключить fsck при вставке?

Вы осуществляете горячую замену карт?
Горячая замена, как в случае «не выключено». Но после размонтирования с помощью «безопасного извлечения карты» в разделе настроек «хранилище» или размонтирования в Linux. Корреспондент в другом месте предполагает, что есть проблема с 5.1 по сравнению с 4.1.

Ответы (1)

Вероятно, вам следует установить SD-карту с помощью USB-ридера в ПК, чтобы проверить, не повреждена ли SD-карта или файловая система.

У меня была такая проблема пару раз, и она заключалась в том, что SD-карта была повреждена или сломана. Таким образом, проверка файловой системы может исправить это, или вы узнаете, что ее необходимо заменить.

В Linux вы можете проверить файловую систему с помощью fsck.vfat . Это нормально работает для файловой системы fat32 (но не для ntfs), поэтому вы можете попробовать это. Или используйте другую утилиту с графическим интерфейсом, например Gparted, Disks или что-то еще.

В Windows вы должны щелкнуть правой кнопкой мыши на своем SD-диске (на моем компьютере), выбрать свойства , вкладку инструментов и проверить сейчас . Вы можете оставить отмеченными автоматические исправления ошибок, если вы не возражаете против потери файлов. (Отказ от ответственности: я не использую окна, поэтому способ добраться до этого мог измениться в последних нескольких версиях).

Если на карте есть поврежденные сектора, разумнее всего отформатировать ее (в vfat/fat32) и заполнить ее файлами (например, mp3 или фильмами), а затем запустить еще одну проверку файловой системы. Если это не удается снова, вы должны заменить SD.

пс1. Даже если у вас нет поврежденных секторов, переформатирование файловой системы может решить основные проблемы. И если проблема не исчезнет, ​​вам следует заменить SD.

пс2. Что касается ext4 , то он не поддерживается Android по умолчанию, вы можете использовать его с разделом, если у вас есть root-права на телефоне и установлен Link2SD, но это не рекомендуется. ext4 имеет систему журналов , которая будет чаще читать и писать на SD и сокращать срок службы карт. Вместо этого рекомендуется ext2 (это последняя файловая система ext без журнала).

Обновление после повторного прочтения:

Android 4 (киткат), 5 (леденец) и 6 (зефир) используют все различные методы для работы с внешним хранилищем (sd-карты).

Сначала я не совсем понял, что вы переносите SD-карту с одного телефона на другой.

Поскольку метод доступа к внешнему хранилищу менялся между версиями, это может быть проблема с разрешениями, и вы можете нарушить некоторые внутренние настройки Android.

Вам следует попробовать поделиться файлом с другой одноранговой утилитой Android или облачным хранилищем (dropbox, mega, wetransfer и т. д.).