En este artículo voy a explicar los pasos necesarios para lograr montar un sistema de archivos exFAT en un sistema FreeBSD utilizando el port fusefs-exfat.

El formato de sistema de archivos exFAT (Extended File Allocation Table), patentado y propiedad de Microsoft, está especialmente adaptado para memorias flash. Suele utilizarse cuando no es factible utilizar NTFS debido a la sobrecarga de las estructuras de datos (especialmente en sistemas embebidos). Por esta razón es el sistema de archivos utilizado por defecto en tarjetas de memoria SDXC como la de la imagen.

Este formato de sistema de archivos tiene un límite teórico para el tamaño de archivo de 264 bytes (16 Exbibytes), hasta 2.796.202 archivos por directorio y hasta 2.796.202 directorios por partición.

Para poder montar un filesystem con formato exFAT en un sistema FreeBSD es necesario instalar con el port fusefs-exfat, una implementación libre de exFAT:

root@hal9000:/usr/ports # make search name=exfat
Port:   exfat-utils-1.2.8
Path:   /usr/ports/sysutils/exfat-utils
Info:   Utilities to create, check, label and dump exFAT filesystem
Maint:  samm@os2.kiev.ua
B-deps: autoconf-2.69_1 autoconf-wrapper-20131203 automake-1.16.1 indexinfo-0.3.1 libublio-20070103_2 m4-1.4.18,1 perl5-5.26.2 pkgconf-1.4.2,1
R-deps: libublio-20070103_2
WWW:    https://github.com/relan/exfat

Port:   fusefs-exfat-1.2.8
Path:   /usr/ports/sysutils/fusefs-exfat
Info:   Full-featured exFAT FS implementation as a FUSE module
Maint:  samm@os2.kiev.ua
B-deps: autoconf-2.69_1 autoconf-wrapper-20131203 automake-1.16.1 fusefs-libs-2.9.7 indexinfo-0.3.1 libiconv-1.14_11 libublio-20070103_2 m4-1.4.18,1 perl5-5.26.2 pkgconf-1.4.2,1
R-deps: fusefs-libs-2.9.7 libiconv-1.14_11 libublio-20070103_2
WWW:    https://github.com/relan/exfat

Sin embargo, dado que se trata de un formato licenciado por Microsoft, no es posible contar con un paquete pre-compilado para el mismo:

root@hal9000:/usr/ports # pkg search exfat
root@hal9000:/usr/ports #

Es necesario instalar el port manualmente para aceptar la licencia. Utilizar portmaster o directamente ejecutar make sobre el directorio del port:

root@hal9000:/usr/ports # portmaster sysutils/fusefs-exfat

Durante la configuración se debe aceptar la licencia de exFAT propiedad de Microsoft:

Una vez instalado el port, el sistema debe contar con el módulo del kernel fuse.ko cargado:

root@hal9000:/usr/home/emi # kldload fuse.ko

El kernel genérico incluye soporte para el módulo FUSE. Sin embargo, si no lo tuviera, será necesario compilar el kernel de FreeBSD con soporte para el mismo.

Luego es posible montar el sistema de archivos exFAT mediante el utilitario mount.exfat:

root@hal9000:/usr/home/emi # mount.exfat /dev/da0s1 /mnt/test/
FUSE exfat 1.2.8
root@hal9000:/usr/home/emi # ll /mnt/test/
total 256
drwxrwxrwx  1 root  wheel  131072 Aug 19 09:25 DCIM/
drwxrwxrwx  1 root  wheel  131072 Aug 19 09:25 MISC/

Referencias


Tal vez pueda interesarte


Compartí este artículo