Linux Commands

How To Read exFAT Partitions in Linux

This tutorial explains how to mount and read exFAT partitions in Linux.

After reading this tutorial, you will be able to read the content within exFAT (Extended File Allocation Table) partitions.

After the practical instructions, I briefly introduced the different Microsoft partition types, which will also help you understand the possible reasons behind your difficulty reading the exFAT file systems. Basic mount commands are also described at the end of this document.

All instructions in this tutorial include screenshots, making it easy for every Linux user to understand and apply them.

Reading exFAT Partitions in Linux

Before starting, let’s check existing partitions using the fdisk command followed by the -l (List) flag, as shown in the figure below. Remember to use sudo.

sudo fdisk -l

As you can see, there is a Microsoft basic data partition type.

This type of partition may include MBR (Master Boot Record), FAT16, FAT32, NTFS, and exFAT.

You also can use GParted to check the partition type.

As you can see, the partition /dev/sdc2 is an exFAT partition type.

Normally, the necessary packages to read exFAT partitions are already installed. In case they are not present in your system, you can install them on Debian-based Linux distributions by running the following command:

sudo apt install exfat-fuse exfat-utils -y

On RedHat-based Linux distributions, use the yum packages manager, as shown below:

yum install -y exfat-utils fuse fuse-exfat

Check the partition for errors using fsck, as shown below:

sudo fsck /dev/sdb2

In the previous example, no errors were found.

See the following example where an error was found. If an error is found, type Y when requested and press ENTER.

Optionally, you can run the following command specifying the filesystem:

fsck.exfat

Create a mount point; both name and location are arbitrary. In this example, I will create a directory named exfat under the system root directory:

sudo mkdir /exfat

Now, mount the exFAT partition in the created mount point, in my case /exfat.

Sudo mount /dev/sdb2 /exfat

You can check if the partition is readable by running the following command:

ls /exfat

As you can see, the partition content shows up.

exFAT vs FAT32 vs NTFS

The FAT32 partition type was developed for Windows 95, replacing the older FAT16 type.

The biggest advantage of the FAT32 partition type is its compatibility with almost every device, including drives, USB sticks, TVs, game consoles, etc.

The biggest FAT32 disadvantage is it can not store files bigger than 4 GB. FAT32 partitions can not be bigger than 2 TB.

That’s why this filesystem type is being discontinued and replaced by NTFS.

While FAT32 partitions can not store files bigger than 4 GB, NTFS partitions support files up to 16 TB. NTFS also allows you to manage file permissions and create snapshots.

The exFAT file system was developed mainly for USB flash memories. This can be seen as an improvement of the old FAT32 file system without the 2 GB file size limit and with support for ACL (Access Control Lists).

The exFAT is supported by Windows XP SP2 and newer versions. It is also recognized by Android KitKat and newer Mac OS X, Linux, and iPadOS.

Some Mount Commands

In this tutorial, we mounted the exFAT file system without specifying its type (Because simple is better). But the mount command has the –t (Type) flag available to specify certain filesystems; you can use it.

In the following example, I only use the mount command to list ext4 filesystems.

mount -t ext4

To mount devices or partitions specifying their filesystem type, use the following syntax. Here, <FileSystemType> is the type (e.g., ext4), <Device/Partition> is the filesystem to mount (e.g., /dev/sdXY) and <Mount-Point> is the local directory where mounted files will become accessible.

mount -t <FileSystemType> <Device/Partition> <Mount-Point>

To mount ISO images, you can use the following command:

sudo mount <ISO IMAGE> <Mount-Point> -o loop

Conclusion

By default, Linux systems should be able to mount exFAT partitions. Only in some cases are users unable to do it; some additional packages must be installed as described in the previous instructions. As you can see, mounting exFAT or any other filesystem type is pretty simple and can be achieved by any Linux user independently of the knowledge level. Mounting filesystems is among the most basic Linux knowledge users must acquire. On systems with X Window Managers, mounting can be done from the graphical interface using the file manager (Just right-click the filesystem to mount and press Mount). This was not included in this tutorial because the method varies from one distro to another, while the text mode through the console is valid for every Linux distribution.

Thank you for reading this tutorial explaining how to read exFAT filesystems in Linux. Keep following us for additional Linux professional content.

About the author

David Adams

David Adams is a System Admin and writer that is focused on open source technologies, security software, and computer systems.