Mounting EXFAT

Synopsis:

The FreeBSD Operating System natively uses the Unix File System (UFS2) and also offers native support for ISO9600 CD, NFS, UDF, ZFS, EXT2, EXT3, EXT4 (in 12.0-Release) and MSDOS. The NTFS (NT Filesystem) is the default filesystem for modern Windows systems. EXFAT filesystem can be natively read and written by both Windows and MacOS, making it an excellent cross-platform filesystem for USB pen drives. To support EXFAT, we'll install FuseFS from FreeBSD Ports.

I. Installation

FuseFS is included in the FreeBSD Ports and it requires Perl5 as a dependency.

#
# cd /usr/ports/sysutils/fusefs-exfat && make install clean
#

Use the default compile options:
Now the actual installation will proceed.
The compiler and installation process takes only a few minutes to install the program on the Celeron 1.6G system.


II.Configuration

1. If FuseFS has already been installed to support NTFS, skip steps 1-3. Otherwise, add the start up to the rc.conf file:
#
# sysrc fusefs_enable="YES"
# sysrc fusefs_safe="YES"
# sysrc fusefs_safe_evil="YES"
#
2. Load fusefs for FreeBSD kernel
In /boot/loader.conf add: fusefs_load="YES" or run the command:
#
# echo 'fusefs_load="YES"' >> /boot/loader.conf
#
3. Manually load kernel module:
#
# kldload fusefs
#
4. Create mount points for EXFAT
#
# mkdir /mnt/exfat
#

5. Plug in an already EXFAT formatted USB pen drive. Check the console message showing the device name. Example /dev/da0
Check the partition name on the device, assuming it is GPT partitioned.

#
# gpart show /dev/da0
#

6. Typically, a flash drive will only have one partition, /dev/da0s1.
note: sometimes "p" (partition) is used instead of "s" (slice) in naming. Mount the device for EXFAT depending on its format and device name.

#
# mount.exfat-fuse /dev/da0s1 /mnt/exfat
#
7. To unmount and eject flash drive
#
# umount /mnt/exfat
# camcontrol eject da0
#
8. Mount must run as user root, to let a user have full access to a mounted filesystem, grant them rights based on their UID and GID.
#
# id 
#
# mount.exfat-fuse -o uid=1001,gid=1001 /dev/da0s1 /mnt/ntfs
#