6

I would like to know if some ExFAT formatted SD card (or pendrive, USB hard disk... etc) will be read by the kernel of my installed Linux distro.

I know that, since about 2013, most kernels include this capability, but I presume there will be some flag that will report it, and, as long as I use to work with different distros, it seems to me more easy to check for a flag than downloading and installing the complete Linux distribution and inserting the SD card.

Furthermore, some times a ExFAT SD Card is not read correctly, and it would be useful to know if the problem comes from the kernel.

Is there any flag or simple/quick command-line method to know if my kernel supports ExFAT file systems?

steve
  • 21,892
  • FYI: https://lwn.net/Articles/797621/. Work has started in v5.7-rc1, see https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=88ab55f16aae90e2e974eb67cc2380edb92b0661, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=exfat (commits since 2020-03-05) – pevik Sep 30 '20 at 09:30

3 Answers3

5

Check for presence of fuse-exfat RPM.

rpm -q fuse-exfat
fuse-exfat-1.1.0-1.fc22.x86_64

It won't show up in /proc/filesystems though, example below. The various patents held by Microsoft present issues with integrating it into the kernel.

grep -i exfat /proc/filesystems
(no output)

Here's the top of the man page, in case useful.

man mount.exfat
EXFAT-FUSE(8)               System Manager's Manual              EXFAT-FUSE(8)

NAME
       mount.exfat-fuse - mount an exFAT file system

SYNOPSIS
       mount.exfat-fuse [ -d ] [ -n ] [ -o options ] [ -V ] [ -v ] device dir

DESCRIPTION
       mount.exfat-fuse  is a free exFAT file system implementation with write
       support.
steve
  • 21,892
  • 3
    So it is not proper to say that ExFAT is supported by the kernel, as it is an external program who gives access to ExFAT file systems? – Sopalajo de Arrierez Sep 19 '15 at 22:07
  • Indeed. It's not in the kernel due to legal/patent issues, more info at https://en.wikipedia.org/wiki/ExFAT#Restrictive_licensing_and_software_patents – steve Sep 19 '15 at 22:20
3

check the supported file systems using:

cat /proc/filesystems

if you find exFAT there it supports it.

also the exFAT module works on 3.8.11 and 3.9 kernel.

FargolK
  • 1,667
  • 1
    But my (up to date) Ubuntu 14.04 cat /proc/filesystems yields nothing about ExFAT, just vfat. It seems strange that a so widespread Linux distro will have no ExFAT support. – Sopalajo de Arrierez Sep 19 '15 at 21:20
  • exFAT is patented in the USA . Including exFAT support could be a legal liability for Canonical, unless the UK doesn't recognize software patents, but I think they do. – bobpaul May 16 '16 at 22:02
0

As in Can I list the filesystems a running kernel can support?, the filesystems whose support has been already loaded into the running (or compiled in) can be seen in /proc/filesystems. Modules that can be loaded can be found under /lib/modules/. Look whether exfat is present in either place:

fgrep -i exfat /proc/filesystems
find /lib/modules/ -iname '*exfat*'

exfat module is kind of "native" support. It appears later in the history of linux versions.

The support via FUSE is not tightly linked with the kernel, and this kind of support appeared earlier. It's a different thing than a module.