5

Цель: отформатировать карту microSD ...

  • для лучшей производительности записи
  • для использования только со встроенным Linux
  • для повышения надежности (возможны случайные сбои питания)
  • используя размер кластера 64 КБ

Я использую карту памяти microSD 8 ГБ для хранения данных во встроенном устройстве Linux/ARM. SD-карта не является съемной. Я использовал ext3 вместо предустановленного FAT32, потому что он, кажется, лучше обрабатывает случайные сбои питания во время записи. Тем не менее, я продолжал замечать, что моя производительность записи всегда лучше с предустановленной FAT32 от Kingston. Если я переформатирую карту с FAT32, производительность все еще страдает. Просматривая википедию, я наткнулся на следующий комментарий о том, что некоторые карты оптимизированы для кластеров определенного размера. В моем случае Kingston поставляется предварительно отформатированным для кластера размером 64 КБ.

Риски переформатирования

Переформатирование SD-карты в другой файловой системе или даже в той же самой системе может замедлить работу карты или сократить срок ее службы. Некоторые карты используют выравнивание износа, при котором часто изменяемые блоки отображаются в разные части памяти в разное время, а некоторые алгоритмы выравнивания износа предназначены для шаблонов доступа, типичных для таблицы размещения файлов на устройстве FAT16 или FAT32. [60] Кроме того, предварительно отформатированная файловая система может использовать размер кластера, который соответствует области стирания физической памяти на карте; переформатирование может изменить размер кластера и сделать запись менее эффективной.

2 ответа2

3

Большинство SD-карт (а также USB-накопителей) там оптимизированы для использования с FAT32. Использование их с любым другим FS приведет к снижению производительности.

Больше информации на LWN.

3

Примечание. Инструмент форматирования SD Card Association выполняет следующие действия.

У меня пока нет полного ответа для всех устройств. Однако вот ответ для карт 8GiB, использующих FAT32.

Разделите карту так, чтобы раздел FAT32 начинался с сектора 8192, что составляет 4 МБ от начала диска. Затем отформатируйте раздел FAT32 с кластерами 32 кБ и установите количество "зарезервированных секторов" таким образом, чтобы область данных, кластер 2, раздела FAT32 начиналась в логическом секторе 8 192 (или 8 МБ с начала диска (4 МБ с начала раздела).

Use 32kiB clusters
| 4MiB      | 4MiB                                | remainder of disk    |  
| -------   | ---------------------------------   | ------------------   |  
| MBR       | First Partition Header + FAT tables | First Partition Data |  

Краткое изложение: Ассоциация SD Card Association рекомендует эти границы 4 МБ в качестве оптимизированных зон и рекомендует FAT32 в качестве файловой системы для карт такого размера. Чип контроллера в карте оптимизирован для небольших операций чтения / записи во второй области 4 МБ.

Это намного больше, чем это, но это быстрый и грязный ответ. Вышеуказанный метод работает только для дисков <16 ГБ для кластеров 32 КБ и <32 ГБ для кластеров 64 КБ. Я подозреваю, что при больших размерах диска область данных вытесняется до логических 8 МБ, но у меня нет диска, который больше, чем 8 ГБ для использования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .