Skip to content

Linux: mount exFAT volumes with the in-kernel driver#1822

Open
ElCruncharino wants to merge 1 commit into
veracrypt:masterfrom
ElCruncharino:feature/exfat-kernel-driver
Open

Linux: mount exFAT volumes with the in-kernel driver#1822
ElCruncharino wants to merge 1 commit into
veracrypt:masterfrom
ElCruncharino:feature/exfat-kernel-driver

Conversation

@ElCruncharino

Copy link
Copy Markdown

Problem

On Linux, mount.exfat is usually a symlink to mount.exfat-fuse. The kernel has had a native exfat driver since 5.7, but VeraCrypt (like a plain mount -t exfat) always ends up on the FUSE path. It's pretty slow for anything beyond small volumes.

This mirrors the existing NTFS kernel-driver option, which solves the same problem for NTFS. exFAT currently has no equivalent.

Change

Adds MountExfatWithKernelDriver, mirroring MountNtfsWithKernelDriver:

  • --filesystem=kernel-exfat / -m kernelexfat on the CLI
  • a Preferences checkbox: "Mount exFAT volumes with an in-kernel Linux driver"
  • when enabled, VeraCrypt probes the decrypted device with blkid -p, and if exFAT is detected and no filesystem type was given, mounts with -i so mount(8) skips the FUSE helper

exFAT has no similar ntfs/ntfs3 split, so there's only one kernel driver name to select.

Opt-in, off by default. Default mount behavior is unchanged.

Testing

Built and tested on openSUSE Tumbleweed (kernel 7.1, wxWidgets 3.2.8):

  • --filesystem=kernel-exfat mounts natively (mount shows type exfat, not fuseblk)
  • -m kernelexfat autodetect does the same
  • default (no flag) still uses exfat-fuse, unchanged
  • volume creation still rejects kernel-exfat as a create-time type, same as kernel-ntfs

Same idea as the existing NTFS kernel-driver option: mount.exfat
on most distros is a symlink to the FUSE exfat-fuse helper, even
though the kernel has had a native exfat driver for years. Add
--filesystem=kernel-exfat, -m kernelexfat, and a preferences
checkbox to mount with -i and skip the helper.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant