许多Linux用户在Ubuntu或CentOS系统中挂载移动硬盘或U盘时,都曾遇到一个经典报错:mount: unknown filesystem type 'exfat'。exfat文件系统如今是大容量存储设备普遍采用的文件系统,但较老版本的内核默认不支持该格式。解决方法其实很直接,只需根据发行版版本分别处理即可。
Ubuntu 13.10 及以上版本
从该版本起,系统已内置exfat模块的安装源,只需执行一条命令即可完成安装:
sudo apt-get install exfat-fuse
安装完成后,插入设备,mount命令便能正常识别exfat文件系统。
Ubuntu 13.04 及以下版本
较旧版本需要额外添加PPA源才能获取exfat支持:
sudo apt-add-repository ppa:relan/exfat
sudo apt-get update
sudo apt-get install fuse-exfat
请注意,这里的包名为fuse-exfat,而非exfat-fuse,两者名称不同,切勿混淆。
CentOS系统挂载exfat格式U盘报错的解决方法
CentOS下遇到同样错误更为常见,因为RHEL/CentOS默认不包含exfat文件系统支持。即使系统已识别设备(例如/dev/sdb1),执行mount -t exfat /dev/sdb1 /good依然会报unknown filesystem type 'exfat'。

解决方法是通过手动编译安装exfat相关的两个软件包:fuse-exfat和exfat-utils。具体步骤如下:
1. 下载源码包
首先从RPMFusion仓库获取源码:
wget https://download1.rpmfusion.org/free/el/updates/6/SRPMS/fuse-exfat-1.0.1-2.el6.src.rpm
wget https://download1.rpmfusion.org/free/el/updates/6/SRPMS/exfat-utils-1.0.1-2.el6.src.rpm
2. 安装依赖关系
需要安装scons和fuse-devel:
yum -y install scons fuse-devel
另外还需安装rpm-build:
yum install rpm-build
3. 安装源码包并编译
rpm -ivh fuse-exfat-1.0.1-1.el6.src.rpm exfat-utils-1.0.1-1.el6.src.rpm
然后进入spec文件目录,使用rpmbuild进行编译:
cd ~/rpmbuild/SPECS
rpmbuild -ba fuse-exfat.spec
rpmbuild -ba exfat-utils.spec
编译完成后,生成的rpm文件位于/root/rpmbuild/RPMS/x86_64目录下。注意此处生成的是不带src的二进制包,例如exfat-utils-1.0.1-2.el6.x86_64.rpm和fuse-exfat-1.0.1-2.el6.x86_64.rpm(文件名可能略有差异,请以实际生成的文件名为准)。
最后安装这些二进制rpm包:
rpm -ivh exfat-utils-1.0.1-2.el6.x86_64.rpm fuse-exfat-1.0.1-2.el6.x86_64.rpm
安装完成后再次尝试挂载,exfat文件系统就能被正常识别了。
