[Edited to update the download link – Aug 2012]
[Edit – Included info on making .deb – Aug 2012]
ExFat, otherwise known as FAT64 is a new filesystem introduced by Microsoft with Windows Vista SP1.
The reasoning behind the new filesystem was to address an area in which Microsoft’s previous filesystems where not a neat fit, i.e. on large external flash drives where NTFS is not appropriate but FAT32 is not sufficient.
exFAT has a theoretical maximum disk size of 64 ZiB, 2,796,202 files per subdirectory and many other improvements.
Many modern SDXC cards are now coming formated with exFat and it was from one of these which I wanted to access from my Debian machine.
Linux support for exFAT is still very much experimental and Debian has no pre-made binary package yet although I didn’t have much trouble in compiling from source and installing.
As always when compiling from source you will need to have the GNU C compiler and associated tools installed.
If not already present you can do this as follows;
debian:/#apt-get install build-esential libfuse-dev
Instead of the normal ‘make’ build system exFAT uses ‘Scons‘ so you may need to install this to.
debian:/#apt-get install scons
Once installed you can now download the exFAT source code from http://code.google.com/p/exfat/downloads/list
(Direct link to file as of writing, fuse-exfat-0.9.8.tar.gz)
Extract the tarball by typing;
debian:/#tar -xvf ./fuse-exfat-0.9.8.tar.gz
Navigate in to the directory containing the expanded files and run the following command to compile the source code and create a folder for the mount point. (You’ll need to have appropriate access permission to install, i.e. root )
debian:/#sudo apt-get install checkinstall
debian:/#sudo checkinstall scons install
this will create a .deb file which can be installed and deleted with your package manager.
debian:/#sudo dpkg -i nameofpackage.deb
Now that exFAT is installed you can mount your external disk as follows;
debian:/#mount.exfat-fuse /dev/sdXn /mnt/exfat
You’ll need to replace the ‘X’ with the drive location and ‘n’ with the disk partition number, for example, ‘/dev/sdb5’.