Форум проекта Matuntu

Поддержка => Руководства и инструкции => Тема начата: vita от 30 Апреля 2017, 15:19:22

Название: exFAT и её поддержка в Linux
Отправлено: vita от 30 Апреля 2017, 15:19:22
Заинтересовало сообщение Алексея (http://forum.matuntu.info/index.php?topic=574.msg6592#msg6592) о включении в свою сборку поддержки файловой системы exFAT и что же это такое.
exFAT (https://ru.wikipedia.org/wiki/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.
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 01 Мая 2017, 09:52:10
Бережное отношение к флешке - это хорошо. Плохо то, что файловая система проприетарная. Для переходящих с винды на линукс поддержка exFAT, наверно, необходима, но никто из моих знакомых виндусятников о ней даже не слыхивал.
Название: Re: exFAT и её поддержка в Linux
Отправлено: alv от 01 Мая 2017, 14:09:21
никто из моих знакомых виндусятников о ней даже не слыхивал.
Насколько я знаю, фабрично в extFAT форматируются флешки и карты объёмом  64 ГБ и выше. Когда они появились - это была экзотика по цене такой, что для обычных целей (кроме как в камерах и сматрфонах) дешевле было купить внешний винт на полтерабайта.
Так они вроде и не прижились - или это слишком много, или слишком мало :)
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 02 Мая 2017, 09:30:48
Насколько я знаю, фабрично в extFAT форматируются флешки и карты объёмом  64 ГБ и выше. Когда они появились - это была экзотика по цене такой, что для обычных целей (кроме как в камерах и сматрфонах) дешевле было купить внешний винт на полтерабайта.
Так они вроде и не прижились - или это слишком много, или слишком мало :)
Есть у меня 64 ГБ флешка USB3.0. Изначально она была в FAT32. Поскольку на ней лежит инфа только для чтения смысла менять файловую систему  нет.  По цене обошлась в 2 раза дешевле 32 ГБ USB2.0, купленной лет на 5 раньше.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 30 Июня 2018, 20:14:34
Одним из улучшений в недавно выпущенной Linux Mint 19 Tara считается инструмент форматирования USB-флеш с поддержкой exFat (https://linuxmint.com.ru/viewtopic.php?t=3155).
В дистрибутивах на основе 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 именуется Диски. Но процесс форматирования таким способом значительно медленнее, чем в командной строке.
(http://i.imgur.com/tOdZQRP.png)
В Gparted файловая система флешки тоже определилась как exFAT (http://i7.5cm.ru/i/5lzn.png), но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
Название: Re: exFAT и её поддержка в Linux
Отправлено: alv от 14 Августа 2018, 19:16:41
В Gparted файловая система флешки тоже определилась как exFAT (http://i7.5cm.ru/i/5lzn.png), но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
Предположительно: Gparted работает только со всамделишними ФС, а не с поддерживаемыми через FUSE.
Сегодня имел развлекуху: две флешки одного и того же очень китайского производителя, обе на 64 ГБ, куплены в одной лавке с разбежкой в несколько дней. Одна фабрично отформатирована в exFAT, вторая определилась как некая ФС msdos.
Задача - позаписать на них тибренных киношек - то есть файлы от 1,4 ГБ до 15-17 их же. Соответственно, на одну на первую большие фильмы пишутся без проблем, на вторую файл более 4 ГБ записываться отказался.
На имеющемся оборудовании проблема не решалась - ну не помню я, как в винде чего-то форматируют.
Решение: спуститься на 4 этажа домой, отформатировать флешку Linux'овой командой (какой - здесь говорилось, mkfs.exfat). Потом подняться опять на 7-й этаж - и убедиться, что после этого на флешку записываются любые файлы любого размера.
Так что, товарищи, если вам нужно перенести очень большие файлы на виндовую машину через всежекупленную флешку - для начала переформатируйте её Linux'овыми средствами в очень прогрессивную виндовую exFAT :)
PS. Анекдот закончен, можно смеяться...
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 04 Мая 2019, 12:25:28
Возникло желание проиграть фильм размером более 4 gb с флешки на приставке DVB2. Командами, приведёнными выше, перевёл флешку из fat32, ограничивающую размер файла 4 gb, в exfat. Первый раз пытался записать без перемонтирования и получил ошибку, что размер файла превышен. Перемонтировал флешку и спокойно записал файл размером 5,7 gb.
(https://i.imgur.com/xuIVZwH.png)

Да вот только плеер с приставки отказался видеть содержимое такой флешки. Очевидно, придётся искать прошивку, поддерживающую exfat.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 04 Мая 2019, 15:31:28
На такой флешке удобно хранить файлы большого размера  :)
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 16 Сентября 2019, 16:52:09
Для ядра Linux предложен новый вариант драйвера exFAT (http://www.opennet.ru/opennews/art.shtml?num=51490), сообщается на OpenNET-е.
Цитата: OpenNET
Корейский разработчик Park Ju Hyung, специализирующийся на портировнии прошивок Android для различных устройств, представил новую редакцию драйвера для файловой системы exFAT - exfat-linux, которая является ответвлением от драйвера "sdFAT", разработанного компанией Samsung.
Разработчиком также проведена работа по упрощению установки драйвера. Пользователи Ubuntu 12.04-19.10 и производных дистрибутивов могут установить его из PPA-репозитория ppa:arter97/exfat-linux (https://launchpad.net/~arter97/+archive/ubuntu/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-драйвера ядра, вместо недавно добавленного устаревшего варианта.
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 18 Сентября 2019, 13:01:01
Есть у меня флешка на гарантии, от которой, по большому счёту, надо избавиться. Не соответствует стандарту USB3.1.
Изначально на ней перед разделом FAT32 было нераспределённое пространство размером 4,1 МБ. Тест производительности на чтение показывал ужасную картину. Средняя скорость чтения 31,4 МБ/с, время доступа - 2,26 мс.
(https://i.imgur.com/piqYqmr.png)
Удалил нераспределённое пространство и отформатировал в FAT32. Картина не сильно изменилась. Скорость поднялась на 13 МБ, а время доступа увеличилось в 4 раза.
(https://i.imgur.com/WcF3Kx1.png)
Это по минимуму похоже на USB3.0, но никак на USB3.1, как заявлено в спецификации.
Поэтому на такой флешке не жалко поэкспериментировать. Гарантия всё равно 60 месяцев.
Осталось посмотреть поведение флешки в файловой системе exFAT с новым драйвером. Графических средств для форматирования в exFAT для Linux до сих пор нет. Но не беда. Воспользовался командной строкой (CLI). Результат теста не сильно обрадовал, но оказался получше предыдущих. Скорость чтения в сравнении с первым тестом выросла на 20 МБ/с, время доступа - 2,30 мс.
(https://i.imgur.com/cIUm2g0.png)
Зато теперь можно на эту флешку записывать файлы больше 4 ГБ и использовать её для хранения. Пока послужит, а там разберёмся по гарантии.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 12 Декабря 2019, 23:38:37
Для форматирования флешнакопителя в графическом интерфейсе можно воспользоваться дисковой утилитой (gnome-disk-utility), в 18.04 именуется Диски. Но процесс форматирования таким способом значительно медленнее, чем в командной строке.
В Gparted файловая система флешки тоже определилась как exFAT (http://i7.5cm.ru/i/5lzn.png), но в контекстном меню Gparted при выборе пункта Форматировать, exfat неактивна.
В связи с установкой в Ubuntu 20.04 и производных дистрибутивах ядра 5.4.0-х (http://forum.matuntu.info/index.php?topic=1152.msg11733#msg11733), в котором появилась поддержка файловой системы Microsoft exFAT, проверила изменения по этой теме в Matuntu-F64.
В Gparted ничего не изменилось.
Дисковая утилита отформатировала раздел флешки без смены таблицы разделов в exFAT очень быстро
(https://i.imgur.com/6af9aGY.png)
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 29 Мая 2020, 16:46:49
Я сейчас работаю в Matuntu-F с ядром 5.4 и для изменения файловой системы с FAT на exFAT на флешке пользуюсь командной строкой, потому что это делается очень быстро. Такая флешка понадобилась для записи образа Blu Ray диска размером 24 ГБ. Хотя флешка не ахти какая размером 32 ГБ на USB 3.0,  запись образа прошла без тормозов. Плеер на андроиде 7.1.2 воспринял такую флешку.

На подходе ядро 5.7 (https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.7-New-exFAT-Lands), в котором будет реализована гораздо лучшая реализация файловой системы Microsoft exFAT, которая является более надёжной и обладает большей функциональностью, чем старый драйвер.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 01 Июня 2020, 15:00:36
На подходе ядро 5.7 (https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.7-New-exFAT-Lands), в котором будет реализована гораздо лучшая реализация файловой системы Microsoft exFAT, которая является более надёжной и обладает большей функциональностью, чем старый драйвер.
Сегодня представлен (https://www.opennet.ru/opennews/art.shtml?num=53062) релиз ядра 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 (https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.7/) и установила в Matuntu-F-2020-05-04 (http://forum.matuntu.info/index.php?topic=1201.msg12128#msg12128)
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
(https://i.imgur.com/uOBPpSF.png)
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 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.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 09 Апреля 2021, 02:05:58
По-прежнему не активна функция форматирования в exFAT средствами Gparted
Начались сдвиги в этом направлении  :) В Ubuntu ожидается выпуск пакета Gparted 1.2.0 (https://sourceforge.net/projects/gparted/files/gparted/gparted-1.2.0), который уже есть в Debian Sid. В Hirsute Hippo (Ubuntu 21.04) Gparted пока версии 1.1.0, но в репозитории Ubuntu 20.10-21.04 уже добавлена утилита поддержки exFAT, именуемая exfatprogs (https://launchpad.net/ubuntu/+source/exfatprogs). Осталось совсем немного для полной поддержки популярного нынче формата в основном для флешнакопителей.
Название: Re: exFAT и её поддержка в Linux
Отправлено: vita от 11 Мая 2021, 02:21:54
Сегодня в тестируемой Matuntu на пакетной основе Ubuntu 21.10, как и обещано, Gparted обновился до версии 1.2.0 и полноценно поддерживает файловую систему exFAT. Теперь флешнакопители можно легко форматировать в сабжевую ФС с помощью Gparted.
Название: Re: exFAT и её поддержка в Linux
Отправлено: ivm от 03 Ноября 2022, 00:00:59
Как сообщает (https://www.opennet.ru/opennews/art.shtml?num=58024) опеннет:
Цитата: новость
В пакете exfatprogs 1.2.0 появилась поддержка восстановления ФС exFAT

Опубликован (https://github.com/exfatprogs/exfatprogs/releases/tag/1.2.0) выпуск пакета exfatprogs 1.2.0 (https://github.com/exfatprogs/exfatprogs/), развивающего официальный набор Linux-утилит для создания и проверки ФС exFAT, пришедший на смену устаревшему пакету exfat-utils и сопутствующий встроенному в ядро Linux новому драйверу exFAT (поставляется начиная с выпуска ядра 5.7). В состав набора входят утилиты mkfs.exfat, fsck.exfat, tune.exfat, exfatlabel, dump.exfat и exfat2img. Код написан на языке Си и распространяется (https://github.com/exfatprogs/exfatprogs/) под лицензией GPLv2.

Новый выпуск примечателен реализацией в утилите fsck.exfat возможности восстановления повреждений в ФС exFAT (ранее функциональность ограничивалась лишь выявлением проблем) и поддержкой обхода файлов в каталогах с повреждённой структурой. В fsck.exfat также добавлены новые опции: "b" для восстановления загрузочного сектора и "s" для создания потерянных файлов в каталоге "/LOST+FOUND". В утилите exfat2img добавлена возможность создания дампов метаданных из ФС exFAT.