Cyanogenmod - файловая система для SD-карты на 64 ГБ, файлы размером более 4 ГБ

Каждый раз, когда я нахожу в Интернете ветку, описывающую «как заставить вашу SD-карту на 64 ГБ работать с Cyanogenmod», ответ всегда один и тот же: отформатируйте ее в FAT32.

FAT32 не поддерживает файлы размером более 4 ГБ. Поддерживает ли Cyanogenmod (10.1) достойную файловую систему, которая может принимать файлы большего размера?

Нужно ли это для работы с Windows?
Нет. Если вы собираетесь упомянуть EXT4, похоже, у него много проблем с разрешениями, но продолжайте, если у вас есть решение.

Ответы (2)

На вчерашнем CyanogenMod nightly я выполнил следующие шаги:

  1. Размонтируйте SD-карту в пользовательском интерфейсе
  2. Сотрите SD-карту в пользовательском интерфейсе (это воссоздает саму таблицу разделов и создает новую FAT32 fs)
  3. При необходимости снова отключите SD-карту.
  4. Подключите телефон
  5. Откройте оболочку с помощью оболочки adb
  6. su для root (это должно быть включено в настройках)
  7. Запустите make_ext4fs /dev/block/mmcblk1p1, чтобы создать новую ext4 fs
  8. Смонтируйте SD-карту в пользовательском интерфейсе (для этого вам придется отключить телефон)
  9. Снова откройте корневую оболочку и запустите chown media_rw:media_rw /mnt/media_rw/sdcard1, чтобы указать ожидаемому владельцу папки.
  10. Запустите chmod 775 /mnt/media_rw/sdcard1, чтобы сделать SD-карту доступной для записи

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

Хорошо ли работают другие приложения? Например, может ли poweramp найти музыку?
Я использую CM11 (11-20140804-SNAPSHOT-M9), и ваш шаг 8 у меня не работает. Пишет "проверка на ошибки", но потом ничего не говорит и не монтируется. Однако, если я использую ssh для Android, я могу установить с помощьюmount -t ext4 -o rw,noatime /dev/block/mmcblk1p1 /mnt/media_rw/sdcard1
@David Я использую Apollo, и он может находить музыку. У меня есть проблема, из-за которой, если я отключу и переустановлю SD-карту, все мои списки воспроизведения станут недействительными; Я не уверен, связано ли это с файловой системой или нет.
@LuisA.Florit, это хороший совет. Я не помню, какое поведение я наблюдал, когда пытался смонтировать во время подключения, но, возможно, это было похоже.

«Правильный» ответ будет exFAT. «Правильный», потому что exFAT — дерьмо, но поскольку он «исправляет» некоторые проблемы FAT, это единственный беспроблемный вариант.

Забудьте о NTFS.

Ext4 был бы гораздо лучшим вариантом. Следует ли правильно управлять им в Android в отношении управления правами - из моего совсем недавнего понимания (последний CM11 от января 2015 г.) Android не ожидает, что истинное внешнее хранилище будет понимать, не говоря уже о правах доступа. Поскольку *FAT не имеет понятия о каких-либо правах, это не проблема. Однако в Linux нет простого способа отключить управление правами в собственной файловой системе. Концепция безопасности Android использует права доступа UNIX не так, как предполагалось. Не стоит винить Android, концепция UNIX древняя, но ее использование имеет свою цену. Цена заключается в необходимости внешнего управления правами, к которому Android не готов, и Пользователь (обычно) не имеет над ним контроля.

Есть способ использовать ext4 на Android, который называется Mounts2SD. Он довольно чистый и надежный, хотя и совсем не родной (сделанный из «неприятных хаков», как сказали бы некоторые). Я бы не рекомендовал это, если у вас нет абсолютной уверенности в том, что вы делаете.