У меня появился внешний SSD с AliExpress. Там стоит файловая система exFAT. Windows видит этот SSD как "внешний накопитель", что позволяет пробросить USB-накопитель с exFAT в виртуальную машину (я использую VirtualBox).

Сам SSD с алиэкспресс
Сам SSD с алиэкспресс
Информация о накопителе
Информация о накопителе

Я решил протестировать exFAT в свободные ОС: ReactOS, KolibriOS и Linux.

Что такое exFAT и его история

FAT32 была разработана в 1990-е и представлена в Windows 95. С тех пор все USB-флешки, получившие бум распространения в 2000-е, стали использовать FAT32. Все платформы и операционные системы "видят" и полноценно поддерживают флешки с FAT32. FAT32 до сих пор используется на всех носителях.

Однако у FAT32 были ограничения. Нельзя записать на накопитель с FAT32 файл больше 4 гигабайт - это например:

  • Современные фильмы (особенно в формате 4К)

  • Файлы виртуальных машин (.vmdk и тому подобные)

Максимальный размер тома у FAT32 - 8 терабайт, что для 2022 года много. Со временем ограничения FAT32 становились очевидными. Если терабайтные накопители для кого-то являются роскошью, то ограничения в файлах бросаются в глаза.

FAT32

exFAT

Максимальный размер файла

4 гигабайта

16 экзабайт

Максимальный размер тома

8 терабайт

128 петабайт

Для устранения данных ограничений и была создана файловая система exFAT (он же FAT64, он же Extended FAT). exFAT была разработана в первой половине 2000-х и представлена Microsoft в 2006 году. WIndows CE 6.0 - первая Windows с exFAT.

Изначально exFAT была запатентована Microsoft. Для использования exFAT в своих системах и технологиях необходимо заключить договор с Microsoft на лицензирование exFAT. Известные примеры компаний, лицензировавших exFAT:

  • Apple - в MacOS имеется поддержка exFAT

  • Sony - PlayStation 4 и PlayStation 5 поддерживают USB-накопители с файловой системой exFAT

  • Samsung - поддерживала exFAT в своих системах для SD-карт и накопителей. В этой сфере произошел скандал

В 2019 году Microsoft открыли документацию и спецификацию файловой системы exFAT. С тех пор поддержка exFAT появилась в iPadOS. В других ОС интенсивность работы над поддержкой exFAT усилилась

ReactOS

ReactOS "не видит" exFAT-устройство. ReactOS не поддерживает exFAT. Оказывается работа над поддержкой exFAT в ReactOS даже не начиналась, хотя поддержка exFAT в ReactOS входит в планы.

JMicron Tech - это и есть USB-носитель с exFAT
JMicron Tech - это и есть USB-носитель с exFAT

KolibriOS

Над поддержкой exFAT в KolibriOS работают. Скажу сразу, что поддержка exFAT в KolibriOS пока далеко до идеала.

Тестовый файл для проверки
Тестовый файл для проверки

В КолибриОС поддержка exFAT только в режиме чтения. Производительность медленная.

Запись exFAT в КолибриОС не поддерживается
Запись exFAT в КолибриОС не поддерживается

Linux

После открытия документации exFAT Samsung и Paragon Software работали над улучшенной поддержкой exFAT в Linux.

Тестовый файл
Тестовый файл

Я тестировал exFAT в Ubuntu 22.04 LTS. Поддерживается exFAT как в режиме чтения так и в режиме записи. "Производительность" в Linux, быстрее чем в KolibriOS.

Запись на exFAT-накопитель
Запись на exFAT-накопитель
После записи файла
После записи файла

Итоги

Linux является "лидером" среди свободных ОС в полноценной поддержке файловой системы exFAT. Надеюсь, что KolibriOS и ReactOS будут полноценно поддерживать exFAT.

Кстати насчет ReactOS. В ВК есть многие разработчики ReactOS. Среди них Вадим Галянт. У меня есть предложение: соберём 5000 рублей и я на эту сумму договорюсь с ним о разработке драйвера exFAT. Ранее я донатил зеленыё проекту UBPorts.

Демонстрация тестирования exFAT:

Комментарии (14)


  1. QuAzI
    07.09.2022 19:46

    "Отличная" ФС, которая пригодна только для хранения фотонек и прона по умолчанию


    1. Kotofay
      07.09.2022 20:31

      А в Ext3 каков результат?


    1. CodeName33
      08.09.2022 13:33

      Плата за большой размер кластера, любая ФС этому подвержена. Я тоже, покупая внешний диск, форматанул его с размером кластера 256к. Записал туда около 7 0тысяч файлов - охре был весьма озадачен достаточно большой потерей места на диске, переформатировал с размером кластера в 64к и сразу стало намного лучше.


  1. Siemargl
    07.09.2022 23:27
    +1

    В КолибриОС поддержка exFAT только в режиме чтения. Производительность медленная.

    В Колибри в принципе нет кэширования ФС


  1. Siemargl
    07.09.2022 23:30

    Использую exFAT для SSD с образами виртуалок. Из-за своей простоты организации метаинформации в сравнении с NTFS ресурс дисков должен быть больше.


  1. lxsmkv
    08.09.2022 00:23
    +5

    Я думал тут расскажут про то как тестируют файловую систему, а получается только про субьективные впечатления от производительности в синтетических условиях без цифр.


    1. ecliptic
      09.09.2022 13:31
      +1

      у сообщества разработчиков linux в ходу следующий инструментарий для тестирования файловых ститем: xfstests, LTP (linux test project), pjdfstest.


  1. LuchS-lynx
    08.09.2022 02:28

    У меня такая же флешка только на 64гб, сколько бы я ни бился - загрузочную из нее сделать так и не получилось, но работает очень шустро


  1. litos
    08.09.2022 04:15

    В статье написано про FAT32 : Максимальный размер тома - 8 терабайт

    Однако, на практике, флешки больше 32GB часто устройствами (типа дешевые камеры наблюдения, авто-видеорегистраторы, магнитолы) не поддерживаются. Интересно, с чем это связано? С размером кластера файловой системы или что-то иное?

    Да и на практике не помню, чтобы видел диски формата FAT32 больше 128GB


    1. alecv
      08.09.2022 13:04

      Барьер 128G (137GiB) похож на ограничение LBA28 для дисков IDE/SATA/SSD спеков до ATA-6.


    1. QuAzI
      08.09.2022 21:02

      То что фортки по умолчанию флешки >32GB пытаются в exFAT форматировать ещё ничего не говорит о поддержке, уж точно это не ограничения актуального FAT32. В PocketBook 740 Color спокойно видится Samsung EVO Plus 2021 microSDXC 512GB отформатированная в FAT32. ЕМНИП, в Lenovo TAB2 A10-70L тоже проблем с 512GB не было, но сейчас стоит 256GB отформатированная в FAT32. Обе железки в exFAT не умеют.


  1. saboteur_kiev
    08.09.2022 04:43

    Еще FAT32 вообще является закрытой проприетарной файловой системой.

    А вот технические данные по exFAT, которая хоть и требует лицензии на использование, были открыты именно для того, чтобы стать файловой системой для использования кем угодно.


  1. aik
    08.09.2022 14:00

    Linux является «лидером» среди свободных ОС в полноценной поддержке файловой системы exFAT.

    Вы этот вывод сделали на основе сравнения линукса с колибри и реактос?


    1. 1tuz
      08.09.2022 21:54

      В ядре 5.4 завезли нативную поддержку эксфата. В остальных осях через FUSE