Как правильно отформатировать SD-карту для моих нужд?

0

Я сделал приложение, которое требует SD-карту для хранения медиа. Это маленькие JPG / GIF / PNG, маленькие MP3 ... но около 200.000 из них (!!). Очень немногие из них больше пары МБ. Скорость не проблема.

Для этого я использую карту 32 ГБ (отформатированную vfat), но на ней не хватает места. Я получил карту на 64 ГБ, которая пришла с отформатированным HPFS / NTFS / exFAT (согласно sfdisk).

Сейчас я сталкиваюсь с тем, что 25 ГБ, записанные на карте 32 ГБ, занимают + 31 ГБ на карте 64 ГБ. Так что я теряю много места. Я думаю, это из-за размера блока или чего-то подобного. Я сталкивался с этим раньше.

Итак, мой вопрос: что будет лучшим форматированием FS / опций для моей ситуации, чтобы использовать больше места на диске, но также с учетом надежности файловой системы? Я уже пробовал ext3 / 4 на своем устройстве и не работает должным образом.

Luis A. Florit
источник
Может быть, попробовать что-то вроде mkfs.vfat -s 1 - S 512 / dev / sdX1. (Я не пробовал, но vfat очень совместим, и теоретически это должно дать 512-байтных секторов, а не 32-килобайтных секторов, которые, как я подозреваю, имеет макет по умолчанию. Скажите пока, пока, пока производительности)
davidgo
@Davidgo: Это то, что я не понимаю. sfdisk отчеты Sector size (logical/physical): 512 bytes / 512 bytes а также I/O size (minimum/optimal): 512 bytes / 512 bytes для обоих дисков. Единственная разница FAT32 против HPFS/NTFS/exFAT,
Luis A. Florit
1
Я полагаю, что SFDisk сообщает о геометрии самого «диска». Файловая система представляет собой отображение / индекс, который определяет количество записей / минимальный размер каждого файла на диске. Для карты SD на 64 гига минимальный размер по умолчанию - 128, k - см. support.microsoft.com/en-us/help/140365/... в отличие от 32к для вфат. (Это также подразумевает, что мой комментарий был неверным, потому что минимальный практический размер блока составляет 32 КБ, поэтому просто используйте «mkfs.vfat / dev / sdX1»
davidgo
Я закончил тем, что делал это. Благодарю.
Luis A. Florit
Вы заметили, что 25 ГБ файлов занимают 31 ГБ на карте 64 ГБ, упуская из виду, что фактические файлы - не единственное необходимое пространство; для всех файловых систем требуются некоторые «издержки» для имени файла, даты создания / доступа / изменения, разрешений на доступ и размера, а также для записей транзакций и т. д. Эти издержки обычно составляют 5-25% пространства. Обзор различных файловых систем, связанных с Windows, находится по адресу support.microsoft.com/en-us/help/100108/... , Также удаленные файлы могут использовать пространство, даже если они плохо видны.
Debra

Ответы:

-1

Я думаю, вы могли бы попробовать Btrfs или же f2fs , Первая - это файловая система CoW, и она поддерживает дедупликацию данных (то есть избыточность данных), что может оказаться полезным для вас. Последняя - файловая система, предназначенная для флэш-накопителей.

mkfs.btrfs <device>

или же

mkfs.f2fs <device>

Luis Lavaire
источник
Если ext не работает, btrfs и f2fs вряд ли будут работать.
davidgo
Почему ты так думаешь?
Luis Lavaire
1
Опыт и общие знания. Если диск поддерживает ext, то, скорее всего, микропрограммное обеспечение основано на Linux, так как это наиболее широко поддерживаемый Linux fs, и есть вероятность (не большой - прошивка во встроенных устройствах обычно довольно скудная), что поддерживается больше эссотерических FS. Если ext не поддерживается, это, скорее всего, означает, что прошивка использует код, лицензированный у Microsoft, который не основан на Linux, поэтому будет иметь гораздо более узкую поддержку fs.
davidgo
Он не сказал, что ОС не поддерживает файловые системы ext *. Он сказал, что пытался, а те не сработали.
Luis Lavaire
Я думаю, что мы поняли его вопрос немного по-другому. Из моего POV ext3 довольно пуленепробиваемый в Linux и был / является файловой системой по умолчанию (а SFDISK по крайней мере подразумевает Linux). Я полагаю, что приложение предназначено для IOS, и далее утверждают, что поддержка EXT для IOS слабая, если она вообще существует.
davidgo