Is it possible to mount an exFAT filesystem on Red Hat Enterprise Linux?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux

Issue

  • Is it possible to mount an exFAT filesystem on Red Hat Enterprise Linux?

Resolution

Red Hat Enterprise Linux 8 and earlier

  • Red Hat Enterprise Linux does not support exFAT filesystem. Therefore, it won't be able to mount exFAT filesystem in a supported method.
  • For an unsupported method, you can use the EPEL repository
  • Once that repository is enabled, it's possible to install the required packages but it's not possible to mount it.
# yum install -y exfatprogs
Dependencies resolved.
========================================================================================
 Package               Architecture      Version                  Repository       Size
========================================================================================
Installing:
 exfatprogs            x86_64            1.2.0-1.el8              epel             86 k

Transaction Summary
========================================================================================

Total download size: 86 k
Installed size: 283 k
Is this ok [y/N]: y

# mkfs.exfat /dev/sdc1  
exfatprogs version : 1.2.0
Creating exFAT filesystem(/dev/sdc1, cluster size=131072)

Writing volume boot record: done
Writing backup volume boot record: done
Fat table creation: done
Allocation bitmap creation: done
Upcase table creation: done
Writing root directory entry: done
Synchronizing...

exFAT format complete!

# mount /dev/sdc1 /mnt
mount: /mnt: unknown filesystem type 'exfat'.

Red Hat Enterprise Linux 9

  • An exFAT filesystem may be created by installing the exfatprogs package and using the # mkfs.exfat utility.
  • See the man 8 mkfs.exfat man page for details.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

20 Comments

Helpful only in that it told me that it wasn't supported, it's possible to do in other distros

Supported or not, here we go...

sudo -i
yum group install 'Development Tools'
yum install fuse-devel
cd /usr/local/src && git clone https://github.com/relan/exfat.git
cd exfat
autoreconf --install
./configure --prefix=/usr
make && make install
make clean

In the GUI, the device becomes available automatically. Without the GUI...

tail -f /var/log/messages

Plug in the expat drive. Note the device name. [CTRL]+[C] out of tail.

sudo mount.exfat-fuse /dev/$sdXn /$mount_point

Gracias por la solución, funciona en RHEL 8

Updated steps of @Christopher Cover:

sudo -i
yum group install 'Development Tools'
yum install fuse-devel gcc autoconf automake git
cd /usr/local/src && git clone https://github.com/relan/exfat.git
cd exfat
autoreconf --install
./configure --prefix=/usr
make && make install
make clean

Now you should be able to mount exfat (Works from GUI too)

Confirmed this works RHEL 8

EZPZ - Thank you!

For anyone else in DoD STIG hell like me, be sure to create a usbguard exception and explicitly load usb drivers.

usbguard allow-device [device ID] -p 
modprobe -i usb-storage

You might also need to physically remove and reinsert the device.

A slightly easier solution is to install exfat-utils and fuse-exfat.

Disclaimer: these are from the nux-dextop third-party repo in Romania. It has a "use at your own risk" disclaimer on its home page. It has been approved by the CentOS community. The packages are available for CentOS/RHEL 6 and 7, but not for 5.

Enable the EPEL repository if you haven't done so already, see this solution.

Enable the nux-dextop repo:

[for RHEL 7]    yum install https://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
[for RHEL 6]    yum install https://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

Install the packages:

yum install exfat-utils fuse-exfat

To mount an exfat drive, find the partition or drive you want to mount using "cat /proc/partitions" or "tail /var/log/messages" or "file -s /dev/sd*" or similar. Exfat USB sticks are typically not partitioned, so that the drive (/dev/sdX) will likely not have any partitions under it in /proc/partitions.

mount /dev/sdX /$mount_point

or if it is partitioned,

mount /dev/sdXn /$mount_point

this also works on RHEL 8 (use the RHEL 7 link)

I am just trying my hands on RHEL 7 as a developer subscription for a year. I have been able to mount exFAT drives, as all my external HDDs are formatted in exFAT.

Since Microsoft and Red Hat Inc are all buddy-buddy now, perhaps Microsoft could grant Red Hat permission to move fuse-exfat & exfat-utils from RPMFusion into EPEL & Fedora repos?

Since you wrote that, Microsoft have joined the Open Invention Network[1], which I would imaging would make exFAT support less of a legal snag?

[1] https://azure.microsoft.com/en-us/blog/microsoft-joins-open-invention-network-to-help-protect-linux-and-open-source/

Right now they get moolah from exfat licensing so I doubt it.

Thank you sir it is working well after the instruction followed

For Red Hat Enterprise Linux 8, there is no exFAT support in EPEL yet.

I haven't spotted it in EPEL 8 yet, nor in the Fedora EPEL bug report system. Is it planned that it will be added to EPEL8 for RHEL8 users in the future?

Plugged in USB Drive in exFat format-was not recognised Logged in as root and ran the following command

yum install -y exfat-utils fuse fuse-exfat

and the USB exFat drive was recognised immediately

The rpms are not available (even for download) from either EPEL or Red Hat itself with properly configured repos (rhel8 and epel repos properly configured). There are third-party non-RHEL non-EPEL editions as mentioned previously.

For those who wish, the idea on the comment-replies seem to work for those who tried it. I just took the easy way and reformatted the drive with XFS.

  • The only EPEL rpm available is exfatprogs-1.1.3-1.el8.x86_64.rpm
  • The rpm "fuse" https://access.redhat.com/downloads/content/fuse/2.9.7-15.el8/x86_64/fd431d51/package is available through RHEL repos.
  • The other rpms listed in this solution do not exist anywhere except one Romanian provider (I have XFS now so I'm not personally not going to use, maybe it is fine).
  • Bottom line, unlike what this solution says, the rpms listed in this unsupported solution do not exist in EPEL.

Kind Regards,
RJ

I concur with RJ's statement that it is NOT available in EPEL for RHEL7 and 8.
However exfat support appears to reside in the RHEL9 kernel natively in the kernel-core package.

Ref: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/considerations_in_adopting_rhel_9/assembly_file-systems-and-storage_considerations-in-adopting-rhel-9

> modprobe -i exfat  <-- if need to test on VM so it loads
> lsmod|grep exfat
exfat                  90112  0

when I try to mount exfat partion unsucessful. "Not configured in kernal"

No dice on 8.8. None of these packages are in the basic repos (baseos + apprestream)

[root@localhost data]# yum install -y exfatprogs Updating Subscription Management repositories. Last metadata expiration check: 0:30:54 ago on Fri 30 Jun 2023 01:36:59 PM EDT. No match for argument: exfatprogs Error: Unable to find a match: exfatprogs [root@localhost data]#

root@localhost data]# yum install -y exfat-utils fuse fuse-exfat Updating Subscription Management repositories. Last metadata expiration check: 0:31:58 ago on Fri 30 Jun 2023 01:36:59 PM EDT. No match for argument: exfat-utils Package fuse-2.9.7-16.el8.x86_64 is already installed. No match for argument: fuse-exfat Error: Unable to find a match: exfat-utils fuse-exfat

However, I can confirm the method several posts down by Shah Zobair works! Thank you!

sudo -i
yum group install 'Development Tools'
yum install fuse-devel gcc autoconf automake git
cd /usr/local/src && git clone https://github.com/relan/exfat.git
cd exfat
autoreconf --install
./configure --prefix=/usr
make && make install
make clean