How to Permanently Mount an exFAT External Drive in Linux (With Read/Write Permissions)
Mounting an external exFAT drive in Linux so that it automatically mounts at boot with correct read/write permissions requires understanding both the Linux mount system and how exFAT handles permissions.
Unlike native Linux filesystems (like ext4), exFAT behaves differently. If you don’t configure it properly, you may end up with a drive that mounts as read-only or is only writable by root.
This guide walks you through everything—from identifying your drive to configuring /etc/fstab correctly.
Understand How exFAT Permissions Work
Before doing anything, you need to understand one critical limitation:
exFAT does NOT support Unix permissions (chmod/chown).
That means:
- You cannot change permissions after mounting
- All files share the same ownership and permissions
- Permissions are controlled only at mount time
Instead, Linux uses mount options like:
- uid (user ownership)
- gid (group ownership)
- umask (permission mask)
These options define access globally for the entire drive
Install exFAT Support (If Needed)
Modern Linux kernels (5.4+) already include exFAT support, but you should ensure required tools are installed.
Ubuntu/Debian:
sudo apt update
sudo apt install exfatprogs
Fedora:
sudo dnf install exfatprogs
Arch:
sudo pacman -S exfatprogs
Identify Your External Drive
Plug in your drive and run:
lsblk
Or:
sudo blkid
Example output:
/dev/sdb1: UUID=”1234-ABCD” TYPE=”exfat”
Important: Always use the UUID instead of /dev/sdb1 because device names can change.
Create a Mount Point
Choose where the drive should live:
sudo mkdir -p /mnt/exfat
You can also use:
- /media/external
- /data
- /srv/storage
Test Manual Mount (Before Automating)
Before editing system files, test mounting manually:
sudo mount -t exfat /dev/sdb1 /mnt/exfat
Check:
ls /mnt/exfat
If it works, unmount:
sudo umount /mnt/exfat
Determine Your User ID (UID) and Group ID (GID)
Run:
id
Example:
uid=1000(username) gid=1000(username)
Most desktop systems use 1000 for the main user.
Configure /etc/fstab for Permanent Mounting
Now edit the filesystem table:
sudo nano /etc/fstab
Add a line like this:
UUID=1234-ABCD /mnt/exfat exfat rw,uid=1000,gid=1000,umask=022,nofail 0 0
Break Down the fstab Options
Here’s what each option does:
Core options
- rw → enables read/write access
- uid=1000 → assigns ownership to your user
- gid=1000 → assigns group ownership
Permission control
- umask=022 → sets permissions:
- owner: read/write
- others: read-only
If you want full access for everyone:
umask=000
If you want shared group write:
umask=002
Optional (But Recommended) Security Options
You can add:
nosuid,nodev,noexec
These:
- Prevent execution of binaries
- Improve system security
Example full line:
UUID=1234-ABCD /mnt/exfat exfat rw,uid=1000,gid=1000,umask=022,nosuid,nodev,noexec,nofail 0 0
Test the Configuration
Run:sudo mount -a
If no errors appear → success.
Now verify:
mount | grep exfat
Verify Read/Write Access
Try:
touch /mnt/exfat/testfile
mkdir /mnt/exfat/testdir
If these work, your permissions are correct.
Common Problems and Fixes
Problem 1: Drive mounts read-only
Cause:
- Filesystem errors
Fix:
sudo fsck.exfat /dev/sdb1
Linux automatically mounts damaged exFAT drives as read-only to prevent corruption
Problem 2: Permission denied
Cause:
- Missing uid or incorrect umask
Fix:
uid=1000,gid=1000,umask=000
Problem 3: chmod/chown not working
This is expected.
exFAT ignores chmod/chown completely
Fix:
- Adjust mount options instead
Problem 4: Wrong user owns files
Fix:
uid=$(id -u),gid=$(id -g)
Problem 5: Drive not mounting at boot
Add:
nofail
This prevents boot errors if the drive is unplugged
Advanced: Multi-User Setup
If multiple users need write access:
Create a shared group:
sudo groupadd shared
sudo usermod -aG shared username
Use:
gid=shared_gid,umask=002
This allows:
- Owner + group → read/write
- Others → read-only
Optional: Allow Non-Root Mounting
Add:
user
Example:
UUID=1234-ABCD /mnt/exfat exfat rw,user,uid=1000,gid=1000,umask=022 0 0
This allows regular users to mount/unmount the drive
Best Practices
Always use UUID
Device names change, UUIDs don’t.
Avoid forcing read-write
If Linux mounts read-only, fix the disk instead of forcing rw.
Use safe mount options
For external drives:
nofail,x-systemd.device-timeout=5
Backup before editing fstab
A broken /etc/fstab can prevent boot.
Example Final Configuration
Here’s a clean, production-ready setup:
UUID=1234-ABCD /mnt/exfat exfat rw,uid=1000,gid=1000,umask=022,nofail,x-systemd.device-timeout=5,noatime 0 0
This gives:
- Read/write access
- Proper ownership
- Safe boot behavior
- Reduced disk wear
Summary
To permanently mount an exFAT drive with read/write permissions:
- Install exFAT support
- Identify drive UUID
- Create mount point
- Edit /etc/fstab
- Use correct mount options (rw, uid, gid, umask)
- Test with mount -a
Permissions are controlled entirely at mount time, not afterward.
