If you’re like me, you store a lot of files that you use on a daily basis on a USB flash drive.  I’ve been making due with a 16 GB flash drive for some time now, but even that seems to constantly be full.  An opportunity came up a while back to purchase a 128 GB flash drive for really cheap, so I jumped on it.  Although it worked fine at first on various Linux machines as well as on Windows7, something soon broke and the drive was no longer accessible (not visible at all) on any of my Linux machines.  I was able to reformat the drive using the Windows7 Disk Management utility, but exFat was the only filesystem that it would allow me to choose when formatting the drive.  Although I was not able to find any information on the subject at the time, now it seems that exFat functionality and support has become widely available to Linux users around the globe.   :-)

The method that I am about to describe is really not very difficult, but you should be aware that it does not allow you the plug-and-play convenience that you experience now with an average smaller flash drive (although it was not all that long ago when we had to mount flash drives manually anyway….).  I had considered adding a reference in /etc/fstab that pointed to the drive, but if I were to already have another USB device plugged into the machine prior to attempting to auto mount the large flash drive, the /dev reference would likely have changed from what I would have listed it as in /etc/fstab.  Instead, I use a simple Bash script to mount the device for me, and if it turns out that the /dev reference has changed, it’s easy to edit the file on the fly before executing it.

Instructions are listed below, and are also located in the script (which you can download from here).  These instructions work for Debian Squeeze as well as for Ubuntu 10.04 or greater.

Instructions for enabling exFat support in Ubuntu 10.04 and newer and on Debian Squeeze:

$ sudo add-apt-repository ppa:relan/exfat   [FOR UBUNTU - DON'T DO THIS FOR DEBIAN SQUEEZE]
$ sudo apt-get update
$ sudo apt-get install subversion scons libfuse-dev gcc
$ svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only
$ cd exfat-read-only
$ scons
$ sudo scons install
$ cd ..
$ rm –rf exfat-read-only    (OPTIONAL - ONLY IF YOU WANT TO REMOVE THIS DIRECTORY)
$ sudo mkdir /media/whatever [creating mountpoint - example: sudo mkdir /media/exfat]
$ sudo mount –t exfat-fuse [device_path] [mountpoint]

Sources/References: