Цель: отформатировать карту microSD...
- для лучшей производительности записи
- для использования только со встроенным Linux
- для большей надежности (могут происходить случайные сбои питания)
- используя размер кластера 64 КБ
Я использую карту microSD объемом 8 ГБ для хранения данных внутри встроенного устройства Linux/ARM. Карта SD несъемная. Я использовал ext3 вместо предустановленной FAT32, потому что она, по-видимому, лучше справляется со случайными сбоями питания во время записи. Однако я постоянно замечал, что моя производительность записи всегда лучше с предустановленной FAT32 от Kingston. Если я переформатирую карту в FAT32, производительность все равно страдает. После просмотра Википедии я наткнулся на следующий комментарий, в котором говорилось, что некоторые карты оптимизированы для определенных размеров кластера. В моем случае Kingston поставляется предварительно отформатированной для размера кластера 64 КБ.
Переформатирование SD-карты с другой файловой системой или даже с той же самой может сделать карту медленнее или сократить срок ее службы. Некоторые карты используют выравнивание износа, при котором часто изменяемые блоки сопоставляются с различными участками памяти в разное время, а некоторые алгоритмы выравнивания износа разработаны для шаблонов доступа, типичных для таблицы размещения файлов на устройстве FAT16 или FAT32.[60] Кроме того, предварительно отформатированная файловая система может использовать размер кластера, который соответствует области стирания физической памяти на карте; переформатирование может изменить размер кластера и сделать запись менее эффективной.
решение1
Большинство SD-карт (а также USB-накопителей) оптимизированы для использования с FAT32. Использование их с любой другой FS приведет к снижению производительности.
Дополнительная информация наЛВН.
решение2
Обратите вниманиеИнструмент форматирования ассоциации SD-картделает для вас следующее.
У меня пока нет полного ответа для всех устройств. Однако вот ответ для карт 8GiB с использованием FAT32.
Разбейте карту так, чтобы раздел FAT32 начинался с сектора 8192, что составляет 4 МБ от начала диска. Затем отформатируйте раздел FAT32 с кластерами по 32 КБ и установите количество «зарезервированных секторов» так, чтобы область данных, кластер 2, раздела FAT32 начиналась с логического сектора 8192 (или 8 МБ от начала диска (4 МБ от начала раздела)).
Use 32kiB clusters
| 4MiB | 4MiB | remainder of disk |
| ------- | --------------------------------- | ------------------ |
| MBR | First Partition Header + FAT tables | First Partition Data |
Краткое обоснование: Ассоциация SD Card рекомендовала эти границы в 4 МБ в качестве оптимизированных зон и рекомендует FAT32 в качестве файловой системы для карт такого размера. Микросхема контроллера в карте оптимизирована для небольших операций чтения/записи в этой второй области в 4 МБ.
Есть еще много чего, но это быстрый и грубый ответ. Вышеуказанный метод работает только для дисков < 16GiB для кластеров 32kiB и < 32GiB для кластеров 64kiB. Я подозреваю, что при больших размерах дисков область данных вытесняется на логические 8MiB, но у меня нет диска больше 8GiB для использования.