25 02/15
14:56

Ubuntu 14.04 и exfat-nofuse

Exfat – это файловая система, придуманная компанией Microsoft специально для флешек. В отличии от FAT32, exfat умеет хранить файлы размером больше 4Gb, а в отличии от NTFS, exfat умеет “выравнивать износ” ячеек (что должно здорово продлевать срок жизни флешек). Поддерживается в Windows начиная с XP SP2, в OS X начиная с 10.6.5. В Ubuntu 14.04 так же поддерживается из коробки, для этого достаточно установить пакет exfat-fuse. Но как и все драйвера, работающие через fuse, этот драйвер медленнее, чем драйвер, выполненный в виде модуля ядра. Его мы и будем ставить. Чтобы этот модуль автоматически пересобирался при обновлении ядра, добавим его в DKMS.

Разумеется, эта же инструкция подойдет не только к ubuntu, но и к любому другому линуксу.

Для начала удалим exfat-fuse, если он был установлен. Скачаем исходники из официального git-репозитария проекта и положим их в /usr/src. На момент публикации этой статьи последняя версия – 1.2.9.

$ sudo -i
# cd /usr/src
# git clone https://github.com/dorimanx/exfat-nofuse
# mv exfat-nofuse exfat-nofuse-1.2.9

Добавим в каталог /usr/src/exfat-nofuse-1.2.9 такой файл с именем dkms.conf:

PACKAGE_NAME="exfat-nofuse"
PACKAGE_VERSION="1.2.9"
BUILT_MODULE_NAME[0]="exfat"
DEST_MODULE_LOCATION[0]="/kernel/fs/exfat"
AUTOINSTALL="yes"
MAKE[0]="CONFIG_EXFAT_FS=m make KDIR=$kernel_source_dir"

Несколько волшебных строк, которые расскажут DKMS о новом модуле, заставят собрать этот модуль и установить его.

# dkms add exfat-nofuse/1.2.9
# dkms build exfat-nofuse/1.2.9
# dkms install exfat-nofuse/1.2.9

Теперь можно попробовать загрузить модуль руками:

# modprobe exfat

И убедиться, что он корректно загрузился:

# dmesg

В конце вывода должна появиться примерно такая запись: “exFAT: Version 1.2.9”.

Если всё в порядке, то можно вставлять флешку и пользоваться. Отформатировать флешку в эту файловую систему поможет mkfs.exfat из пакета exfat-utils. При обновлении ядра никаких телодвижений делать не придется, dkms соберет новый модуль самостоятельно.


You must be logged in to post a comment.