How to Share a Data Partition Between Fedora and Windows (exFAT/NTFS)

Format a partition as exFAT using mkfs.exfat to enable seamless file sharing between Fedora and Windows.

The shared drive problem

You dual-boot Fedora and Windows. You have a second drive or a large partition dedicated to documents, photos, and project files. You want to drop a file on the desktop in Windows and open it in Fedora without a cloud sync dance. You tried mounting the drive, but Fedora complains about permissions, the drive mounts read-only, or Windows refuses to see the changes. The issue is usually the file system choice, missing mount options, or Windows Fast Startup locking the disk.

File systems and the permission trap

Drives do not store files. They store bits. File systems organize those bits and track metadata like names, sizes, and permissions. Windows defaults to NTFS. Fedora defaults to XFS or Btrfs. They do not understand each other's metadata structures. You need a bridge file system that both operating systems can read and write safely.

exFAT is the modern bridge. It supports large files, works on Windows 10/11 and Fedora out of the box, and avoids the complexity of NTFS permissions. NTFS is the legacy bridge. It works if you handle Windows hibernation locks and use the correct driver. ext4 is a trap here. Windows cannot read ext4 natively. Do not use ext4 for a shared partition.

Linux permissions are metadata stored on the disk. exFAT and NTFS do not store Linux user IDs or group IDs. The kernel fakes permissions based on mount options. If you mount without specifying a user, the files appear owned by root. You cannot write to them. You must map the foreign file system to your Linux user via mount options.

Choose the right file system

Use exFAT when you need broad compatibility including macOS and modern Windows, and files are under 4GB or you do not care about Linux permissions. Use NTFS when the partition already holds Windows data, or you need file compression and ACLs that Windows tools expect. Use a dedicated Linux partition when the data is sensitive, contains symlinks, or requires strict SELinux contexts. Use cloud sync when the machines are not physically the same hardware.

Format and mount exFAT

Identify the target partition before you format. Formatting destroys all data on the partition. Verify the device path.

Here is how to list block devices and their file system types to find the correct partition.

lsblk -f
# -f shows filesystem type, label, and UUID for every device
# Look for the partition you want to format. Note the device path like /dev/nvme0n1p3
# If the partition is already formatted, the FSTYPE column shows exfat, ntfs, or ext4

Install the formatting tool if it is missing. Fedora includes exfatprogs in the default repositories.

sudo dnf install exfatprogs
# exfatprogs provides mkfs.exfat and fsck.exfat
# This package is required to format exFAT partitions from the terminal

Format the partition. Replace /dev/nvme0n1p3 with your actual device path.

sudo mkfs.exfat -L SharedData /dev/nvme0n1p3
# -L sets the volume label to SharedData for easy identification
# The label helps you reference the drive in fstab and file managers
# This command erases all data on the partition immediately

Create a mount point. This is the directory where the drive will appear in the file system tree.

sudo mkdir -p /mnt/shared
# -p creates the directory and any missing parents without error
# /mnt is the standard location for temporary or removable mounts

Test the mount before making it permanent.

sudo mount /dev/nvme0n1p3 /mnt/shared
# Mount the partition to the directory to verify it works
# Check permissions. Files will likely be owned by root
# Unmount immediately after testing: sudo umount /mnt/shared

Configure the permanent mount in /etc/fstab. Use the UUID, not the device path. Device paths change when you add or remove hardware. UUIDs are stable.

Here is how to find the UUID of the partition.

blkid /dev/nvme0n1p3
# blkid prints the UUID, TYPE, and LABEL for the device
# Copy the UUID value. It looks like 1234-5678 for exFAT
# Use this UUID in fstab to avoid boot failures from device renaming

Edit /etc/fstab to add the mount entry.

sudo nano /etc/fstab
# Open the fstab file in a terminal editor
# Add the new line at the end of the file
# Save and exit. Do not reboot yet.

Add this line to /etc/fstab, replacing the UUID with your value.

UUID=1234-5678 /mnt/shared exfat defaults,uid=1000,gid=1000,umask=022 0 2
# UUID= points to the partition by its unique identifier
# /mnt/shared is the mount point directory
# exfat is the file system type driver
# uid=1000 maps files to your user account. Check your ID with id -u
# gid=1000 maps files to your primary group. Check with id -g
# umask=022 allows group read but restricts write to the owner
# 0 2 means no dump and pass number 2 for fsck order

Test the fstab entry before you reboot. A typo in fstab prevents the system from booting.

sudo mount -a
# mount -a reads fstab and mounts everything that is not already mounted
# If this command returns no errors, fstab is valid
# If it fails, check the syntax and the UUID. Fix fstab before rebooting.

Verify the permissions.

ls -l /mnt/shared
# The output should show your username as the owner
# Create a test file to confirm write access: touch /mnt/shared/test.txt
# Remove the test file: rm /mnt/shared/test.txt

Reboot before you debug. Half the time the symptom is gone.

Mount NTFS and handle Windows locks

If the partition is already NTFS, you cannot format it without losing data. You must mount it. Fedora uses the ntfs3 kernel driver by default. It is faster and more stable than the old ntfs-3g FUSE driver.

Here is how to mount an existing NTFS partition with correct permissions.

sudo mount -t ntfs3 -o uid=1000,gid=1000 /dev/nvme0n1p3 /mnt/shared
# -t ntfs3 forces the modern kernel driver
# -o uid=1000,gid=1000 maps ownership to your user
# This command tests the mount. Add to fstab if it succeeds.

Add the NTFS entry to /etc/fstab.

UUID=ABCD-1234 /mnt/shared ntfs3 defaults,uid=1000,gid=1000 0 2
# ntfs3 is the file system type for the kernel driver
# uid and gid ensure you can read and write files
# 0 2 sets dump and fsck options

Windows Fast Startup locks NTFS partitions. When you shut down Windows with Fast Startup enabled, Windows hibernates the kernel and marks the NTFS volume as dirty. Fedora sees the dirty flag and mounts the drive read-only to prevent corruption. You will see an error like The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount.

Disable Fast Startup in Windows to fix this. Open Control Panel, select Power Options, choose Choose what the power buttons do, and uncheck Turn on fast startup. Save changes. Shut down Windows completely. Boot Fedora. The drive will mount read-write.

Do not use remove_hiberfile in mount options. That option deletes the Windows hibernation file. It works, but it forces Windows to do a full cold boot next time, and it risks data loss if Windows was in the middle of writing. Disable Fast Startup instead.

Run journalctl -xe if the mount fails. The journal shows the exact reason. Look for ntfs3 or VFS errors.

journalctl -xeu systemd-mount-*
# -x adds explanatory text to journal entries
# -e jumps to the end of the log
# -u filters for mount-related units
# Read the error. Do not guess. The log tells you if the issue is permissions, locks, or driver missing.

Verify the setup

Test the mount from both operating systems. Create a file in Fedora. Reboot into Windows. Open the drive in File Explorer. Verify the file exists and you can edit it. Create a file in Windows. Reboot into Fedora. Verify the file appears in /mnt/shared.

Check the mount status in Fedora.

findmnt /mnt/shared
# findmnt shows the source, target, file system type, and options
# Verify the options include uid=1000 and gid=1000
# If uid is missing, files will be owned by root and unwritable

Check for errors after use.

sudo fsck.exfat -n /dev/nvme0n1p3
# -n runs a read-only check without modifying the file system
# Run this periodically to detect corruption
# exFAT lacks journaling. Corruption can happen on power loss.

Snapshot the system before the upgrade. Future-you will thank you.

Common pitfalls

The drive mounts but you cannot write files. The mount options are missing uid and gid. The files appear owned by root. Edit /etc/fstab to add uid=1000,gid=1000. Run sudo mount -o remount /mnt/shared to apply changes without rebooting.

The drive mounts read-only in Fedora. Windows Fast Startup is enabled. The NTFS volume is marked dirty. Disable Fast Startup in Windows. Shut down Windows completely. Boot Fedora. If the drive is still read-only, run sudo ntfsfix /dev/nvme0n1p3 to clear the dirty flag, then remount.

mount -a fails with wrong fs type, bad option, bad superblock. The UUID in /etc/fstab does not match the partition. Run blkid to verify the UUID. Check for typos. Check that the file system type matches the partition.

The partition disappears after a reboot. The device path changed. You used /dev/sdb1 in fstab instead of UUID. Device paths shift when you plug in USB drives or change boot order. Always use UUIDs in fstab.

Trust the package manager. Manual file edits drift, snapshots stay.

Where to go next