Автор Тема: exFAT и её поддержка в Linux  (Прочитано 26509 раз)

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
exFAT и её поддержка в Linux
« : 30 Апреля 2017, 15:19:22 »
Заинтересовало сообщение Алексея о включении в свою сборку поддержки файловой системы exFAT и что же это такое.
exFAT (от англ. Extended FAT — «расширенная FAT»), иногда называется FAT64 — проприетарная файловая система, предназначенная главным образом для флэш-накопителей. Впервые представлена фирмой Microsoft для встроенных устройств в Windows Embedded CE 6.0. Размер кластера по умолчанию для файловой системы exFAT составляет от 4 КБ до 128 КБ в зависимости от размера тома.
Главное достоинство exFAT - уменьшение количества перезаписей одного и того же сектора, что важно для флеш-накопителей, у которых ячейки памяти необратимо изнашиваются после определённого количества операций записи (это сильно смягчается выравниванием износа (wear leveling), встроенным в современные USB-накопители и SD-карты). Это было основной причиной разработки exFAT. Также в этой ФС нет ограничений на размер файла в отличии от FAT32, в которой не более 4 ГБ.
Для работы с файловой системой exFat в системе должны быть установлены соответствующие пакеты exfat-fuse и exfat-utils
sudo apt install exfat-fuse exfat-utilsДо выпуска Ubuntu 16.04 указанные пакеты устанавливались из стороннего репозитория. Теперь же они включены в официальный и в Ubuntu 17.04 установлены по умолчанию.
Отформатированная в exFat флешка определилась автоматически и в дисковой утилите был проведён тест производительности на чтение, который практически совпал с тестом, проведённым на этой же флешке в FAT32. Проверка записи большого файла показала более скромные результаты.  :(
Но мне этот вариант использования флешек в качестве носителей информации показался предпочтительнее, чем их форматирование в NTFS.
« Последнее редактирование: 30 Июня 2018, 18:43:26 от vita »
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #1 : 01 Мая 2017, 09:52:10 »
Бережное отношение к флешке - это хорошо. Плохо то, что файловая система проприетарная. Для переходящих с винды на линукс поддержка exFAT, наверно, необходима, но никто из моих знакомых виндусятников о ней даже не слыхивал.

Оффлайн alv

  • Ветеран
  • *****
  • Сообщений: 1476
  • Это я и есть
    • Наш Блогосайт
Re: exFAT и её поддержка в Linux
« Ответ #2 : 01 Мая 2017, 14:09:21 »
никто из моих знакомых виндусятников о ней даже не слыхивал.
Насколько я знаю, фабрично в extFAT форматируются флешки и карты объёмом  64 ГБ и выше. Когда они появились - это была экзотика по цене такой, что для обычных целей (кроме как в камерах и сматрфонах) дешевле было купить внешний винт на полтерабайта.
Так они вроде и не прижились - или это слишком много, или слишком мало :)
За прекрасных дам!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #3 : 02 Мая 2017, 09:30:48 »
Насколько я знаю, фабрично в extFAT форматируются флешки и карты объёмом  64 ГБ и выше. Когда они появились - это была экзотика по цене такой, что для обычных целей (кроме как в камерах и сматрфонах) дешевле было купить внешний винт на полтерабайта.
Так они вроде и не прижились - или это слишком много, или слишком мало :)
Есть у меня 64 ГБ флешка USB3.0. Изначально она была в FAT32. Поскольку на ней лежит инфа только для чтения смысла менять файловую систему  нет.  По цене обошлась в 2 раза дешевле 32 ГБ USB2.0, купленной лет на 5 раньше.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #4 : 30 Июня 2018, 20:14:34 »
Одним из улучшений в недавно выпущенной Linux Mint 19 Tara считается инструмент форматирования USB-флеш с поддержкой exFat.
В дистрибутивах на основе Ubuntu форматировать флешнакопители в exFAT можно как в командной строке, так и в графическом интерфейсе.
После установки пакетов exfat-fuse и exfat-utils, необходимых для доступа к exFAT в Linux, в терминале нужно уточнить смонтированные диски:
sudo fdisk -lК примеру, подготовленная к форматированию флешка у меня определилась как /dev/sdd1
Для её форматирования выполнила команду: sudo mkfs.exfat -n 8GB /dev/sdd1где 8GB задана метка (Label) флешки.
Нет ли ошибок в результате форматирования проверяется командой: sudo fsck.exfat /dev/sdd1
Результат проверки
exfatfsck 1.2.8
WARN: volume was not unmounted cleanly.
Checking file system on /dev/sdd1.
File system version           1.0
Sector size                 512 bytes
Cluster size                 32 KB
Volume size                7497 MB
Used space                 1120 KB
Available space            7496 MB
Totally 0 directories and 0 files.
File system checking finished. No errors found.

Для форматирования флешнакопителя в графическом интерфейсе можно воспользоваться дисковой утилитой (gnome-disk-utility), в 18.04 именуется Диски. Но процесс форматирования таким способом значительно медленнее, чем в командной строке.

В Gparted файловая система флешки тоже определилась как exFAT , но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн alv

  • Ветеран
  • *****
  • Сообщений: 1476
  • Это я и есть
    • Наш Блогосайт
Re: exFAT и её поддержка в Linux
« Ответ #5 : 14 Августа 2018, 19:16:41 »
В Gparted файловая система флешки тоже определилась как exFAT , но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
Предположительно: Gparted работает только со всамделишними ФС, а не с поддерживаемыми через FUSE.
Сегодня имел развлекуху: две флешки одного и того же очень китайского производителя, обе на 64 ГБ, куплены в одной лавке с разбежкой в несколько дней. Одна фабрично отформатирована в exFAT, вторая определилась как некая ФС msdos.
Задача - позаписать на них тибренных киношек - то есть файлы от 1,4 ГБ до 15-17 их же. Соответственно, на одну на первую большие фильмы пишутся без проблем, на вторую файл более 4 ГБ записываться отказался.
На имеющемся оборудовании проблема не решалась - ну не помню я, как в винде чего-то форматируют.
Решение: спуститься на 4 этажа домой, отформатировать флешку Linux'овой командой (какой - здесь говорилось, mkfs.exfat). Потом подняться опять на 7-й этаж - и убедиться, что после этого на флешку записываются любые файлы любого размера.
Так что, товарищи, если вам нужно перенести очень большие файлы на виндовую машину через всежекупленную флешку - для начала переформатируйте её Linux'овыми средствами в очень прогрессивную виндовую exFAT :)
PS. Анекдот закончен, можно смеяться...
« Последнее редактирование: 14 Августа 2018, 19:29:57 от alv »
За прекрасных дам!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #6 : 04 Мая 2019, 12:25:28 »
Возникло желание проиграть фильм размером более 4 gb с флешки на приставке DVB2. Командами, приведёнными выше, перевёл флешку из fat32, ограничивающую размер файла 4 gb, в exfat. Первый раз пытался записать без перемонтирования и получил ошибку, что размер файла превышен. Перемонтировал флешку и спокойно записал файл размером 5,7 gb.


Да вот только плеер с приставки отказался видеть содержимое такой флешки. Очевидно, придётся искать прошивку, поддерживающую exfat.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #7 : 04 Мая 2019, 15:31:28 »
На такой флешке удобно хранить файлы большого размера  :)
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #8 : 16 Сентября 2019, 16:52:09 »
Для ядра Linux предложен новый вариант драйвера exFAT, сообщается на OpenNET-е.
Цитата: OpenNET
Корейский разработчик Park Ju Hyung, специализирующийся на портировнии прошивок Android для различных устройств, представил новую редакцию драйвера для файловой системы exFAT - exfat-linux, которая является ответвлением от драйвера "sdFAT", разработанного компанией Samsung.
Разработчиком также проведена работа по упрощению установки драйвера. Пользователи Ubuntu 12.04-19.10 и производных дистрибутивов могут установить его из PPA-репозитория ppa:arter97/exfat-linux
sudo add-apt-repository ppa:arter97/exfat-linux -y sudo apt install exfat-dkmsПри этом удаляется ранее установленный пакет exfat-fuse
Проверено в Matuntu-B64.
Цитата: OpenNET
В дальнейшем планируется поддерживать драйвер в актуальном состоянии, перенося изменения из основной кодовой базы Samsung и портируя его для новых выпусков ядра. В настоящее время работа драйвера проверена при сборке с ядрами начиная с 3.4 и заканчивая 5.3-rc на платформах x86 (i386), x86_64 (amd64), ARM32 (AArch32) и ARM64 (AArch64). Автор нового варианта драйвера предложил разработчикам ядра рассмотреть включение нового драйвера в ветку staging в качестве основы для штатного exFAT-драйвера ядра, вместо недавно добавленного устаревшего варианта.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #9 : 18 Сентября 2019, 13:01:01 »
Есть у меня флешка на гарантии, от которой, по большому счёту, надо избавиться. Не соответствует стандарту USB3.1.
Изначально на ней перед разделом FAT32 было нераспределённое пространство размером 4,1 МБ. Тест производительности на чтение показывал ужасную картину. Средняя скорость чтения 31,4 МБ/с, время доступа - 2,26 мс.

Удалил нераспределённое пространство и отформатировал в FAT32. Картина не сильно изменилась. Скорость поднялась на 13 МБ, а время доступа увеличилось в 4 раза.

Это по минимуму похоже на USB3.0, но никак на USB3.1, как заявлено в спецификации.
Поэтому на такой флешке не жалко поэкспериментировать. Гарантия всё равно 60 месяцев.
Осталось посмотреть поведение флешки в файловой системе exFAT с новым драйвером. Графических средств для форматирования в exFAT для Linux до сих пор нет. Но не беда. Воспользовался командной строкой (CLI). Результат теста не сильно обрадовал, но оказался получше предыдущих. Скорость чтения в сравнении с первым тестом выросла на 20 МБ/с, время доступа - 2,30 мс.

Зато теперь можно на эту флешку записывать файлы больше 4 ГБ и использовать её для хранения. Пока послужит, а там разберёмся по гарантии.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #10 : 12 Декабря 2019, 23:38:37 »
Для форматирования флешнакопителя в графическом интерфейсе можно воспользоваться дисковой утилитой (gnome-disk-utility), в 18.04 именуется Диски. Но процесс форматирования таким способом значительно медленнее, чем в командной строке.
В Gparted файловая система флешки тоже определилась как exFAT , но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
В связи с установкой в Ubuntu 20.04 и производных дистрибутивах ядра 5.4.0-х, в котором появилась поддержка файловой системы Microsoft exFAT, проверила изменения по этой теме в Matuntu-F64.
В Gparted ничего не изменилось.
Дисковая утилита отформатировала раздел флешки без смены таблицы разделов в exFAT очень быстро
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #11 : 29 Мая 2020, 16:46:49 »
Я сейчас работаю в Matuntu-F с ядром 5.4 и для изменения файловой системы с FAT на exFAT на флешке пользуюсь командной строкой, потому что это делается очень быстро. Такая флешка понадобилась для записи образа Blu Ray диска размером 24 ГБ. Хотя флешка не ахти какая размером 32 ГБ на USB 3.0,  запись образа прошла без тормозов. Плеер на андроиде 7.1.2 воспринял такую флешку.

На подходе ядро 5.7, в котором будет реализована гораздо лучшая реализация файловой системы Microsoft exFAT, которая является более надёжной и обладает большей функциональностью, чем старый драйвер.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #12 : 01 Июня 2020, 15:00:36 »
На подходе ядро 5.7, в котором будет реализована гораздо лучшая реализация файловой системы Microsoft exFAT, которая является более надёжной и обладает большей функциональностью, чем старый драйвер.
Сегодня представлен релиз ядра Linux 5.7, в котором
Цитата: OpenNET
Добавлена новая реализация драйвера exFAT, основанная на актуальной кодовой базе "sdfat" (2.x), развиваемой компанией Samsung для своих Android-смартфонов. Ранее добавленный в ядро драйвер был основан на устаревшем коде Samsung (версия 1.2.9) и отставал по производительности от нового драйвера примерно на 10%. Напомним, что добавление поддержки exFAT в ядро стало возможным после того, как компания Microsoft опубликовала общедоступные спецификации и предоставила возможность безвозмездного использования патентов на exFAT в Linux.
Для проверки скачала 4 компонента ядра 5.7.0-050700-generic со страницы проекта kernel.ubuntu.com и установила в Matuntu-F-2020-05-04
inxi
Kernel: 5.7.0-050700-generic x86_64 bits: 64
  Desktop: MATE 1.24.0 Distro: Ubuntu 20.04 LTS (Focal Fossa)

Преимуществ новой реализации драйвера exFAT на базе ядра 5.7 не замечено. При просмотре флешнакопителя c exFAT в Gparted как и прежде появляется информация о том, что
Цитата: Gparted
Невозможно прочитать содержимой этой файловой системы!
В связи с этим некоторые операции могут быть не доступны.
По-прежнему не активна функция форматирования в exFAT средствами Gparted
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3072
  • Что бы ни случилось, всё будет хорошо!
Re: exFAT и её поддержка в Linux
« Ответ #13 : 16 Июня 2020, 17:35:20 »
В основном пользуюсь командной строкой для перевода файловой системы на флешках в exFAT. Как правило, после этого файлы большого размера (с 4,5 и более 20 ГБ) нормально записываются. Но недавно в Matuntu-F c ядром 5.4 столкнулся с тем, что диск после форматирования в FAT32, а затем в exFAT записывает файл максимум 4,3 ГБ. Помогло только полное форматирование в exFAT при помощи  дисковой утилиты.
Также обратил внимание, что у флешнакопителей c exFAT дисковая утилита по-разному показывает тип раздела: в MBR - NTFS/exFAT/HPFS и W95 FAT32, в GPT - Basic Data.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4788
  • Да будет свет!
Re: exFAT и её поддержка в Linux
« Ответ #14 : 09 Апреля 2021, 02:05:58 »
По-прежнему не активна функция форматирования в exFAT средствами Gparted
Начались сдвиги в этом направлении  :) В Ubuntu ожидается выпуск пакета Gparted 1.2.0, который уже есть в Debian Sid. В Hirsute Hippo (Ubuntu 21.04) Gparted пока версии 1.1.0, но в репозитории Ubuntu 20.10-21.04 уже добавлена утилита поддержки exFAT, именуемая exfatprogs. Осталось совсем немного для полной поддержки популярного нынче формата в основном для флешнакопителей.
Делай с нами, делай как мы, делай лучше нас!