Файловая система exFAT¶
exFAT (Extended File Allocation Table) — файловая система, разработанная корпорацией Microsoft для съёмных носителей большого объёма. Введена в 2006 году как часть спецификации Windows Embedded CE 6.0 и позиционировалась как замена FAT32 на флеш-накопителях, картах памяти и внешних дисках. Основные характеристики: поддержка разделов объёмом до 128 ПБ (теоретически — до 8 ЭБ), файлов размером до 16 ЭБ, отсутствие ограничения на размер отдельного файла в 4 ГБ, свойственного FAT32. В 2019 году спецификация exFAT была передана в открытое управление консорциума SD Association, а затем опубликована как стандарт ISO/IEC 27930:2021.
¶История
Microsoft создала exFAT в середине 2000-х годов для решения проблемы FAT32: эта файловая система, хотя и совместима практически со всеми устройствами, ограничивает размер файла 4 ГБ и раздела — 2 ТБ. Для карт памяти и флешек, объём которых к концу 2000-х превышал 4 ГБ, это стало практическим барьером. exFAT была впервые представлена в 2006 году и изначально поддерживалась только в Windows Vista SP1 и Windows Embedded CE 6.0.
В 2008 году поддержка exFAT появилась в Windows 7, в 2010-м — в Windows Phone 7, затем в Windows 8, Windows 10 и Windows 11. В 2012 году Apple включила поддержку exFAT в macOS 10.7.3 (Lion), что сделало файловую систему кроссплатформенной для пользователей Apple.
В 2019 году Microsoft передала спецификацию exFAT в открытое управление консорциума SD Association, а в 2021 году она была опубликована как международный стандарт ISO/IEC 27930. Это открыло путь к широкой реализации exFAT в Linux (модуль ядра exfat, включённый в ядро начиная с версии 5.4), Android, прошивках роутеров и мультимедийных устройств.
¶Устройство и особенности
exFAT сохраняет архитектуру FAT: таблицу размещения файлов, цепочки кластеров и корневой каталог. Кластер может иметь размер от 512 байт до 32 МБ, что позволяет эффективно работать с большими файлами и избегать фрагментации. Максимальный размер кластера ограничен 32 МБ, а число кластеров в разделе — 2^32.
В отличие от NTFS, exFAT не использует журнал транзакций (журналирование), поэтому при внезапном отключении флешки или сбое питания данные могут быть повреждены. Это делает exFAT менее надёжной, чем NTFS, но более быстрой и лёгкой для реализации в прошивках.
Другие отличия от NTFS: отсутствие прав доступа на уровне файлов (встроенной системы ACL), отсутствие сжатия и шифрования данных, отсутствие журналирования. exFAT поддерживает расширенные атрибуты файлов, но их набор ограничен.
¶Совместимость
| Платформа | Поддержка exFAT |
|---|---|
| Windows Vista SP1 и новее | Нативная |
| Windows 10, 11 | Нативная |
| macOS 10.7.3 и новее | Нативная |
| Linux (ядро 5.4+) | Модуль exfat |
| Android 11+ | Нативная (частично) |
| Прошивки роутеров, ТВ-приставок | Зависит от модели |
Для Windows XP и более ранних версий доступен самостоятельный драйвер от Microsoft. На Linux до версии 5.4 использовался сторонний модуль exfat-utils и драйвер exfat-fuse.
¶Применение
exFAT наиболее распространена на съёмных носителях: USB-флешках, картах памяти SD/SDXC, внешних жёстких дисках. Спецификация SD Association рекомендует exFAT для карт SDXC объёмом от 32 ГБ, поэтому большинство таких карт форматируется именно в exFAT из коробки.
Формат exFAT выбирают, когда нужна совместимость между Windows, macOS и Linux при работе с файлами крупнее 4 ГБ — видео 4K, образы дисков, архивы, резервные копии. Для носителей, используемых только в Windows, остаётся актуальной NTFS; для старых устройств и мелких файлов — FAT32.
¶Ограничения
Несмотря на открытую спецификацию, поддержка exFAT в Linux появилась поздно и долгое время была нестабильной. Некоторые старые прошивки роутеров, ТВ и мультимедийных центров не поддерживают exFAT и требуют FAT32. Журналирование отсутствует, поэтому при работе с критически важными данными рекомендуется использовать NTFS или ext4.
Источники:
- Microsoft Learn — спецификация exFAT
- ISO/IEC 27930:2021 — exFAT file system specification
- SD Association — Technical Specification exFAT
- Linux Kernel Documentation — exfat filesystem
- Apple Support — Mac can use exFAT
