How to mount NTFS partitions in Windows with write access in Linux

Last update: 28/01/2026
Author Isaac
  • NTFS-3G and FUSE allow mounting partitions NTFS en Linux with secure reading and writing.
  • It is essential to disable hibernation and quick start in Windows to prevent read-only mounting.
  • Automating mounting with /etc/fstab using UUID, uid, gid and umask avoids permission problems.
  • exFAT, NAS, or SMB access are practical alternatives when NTFS is causing problems or you want to minimize risk.

Mounting Windows NTFS partitions with write permissions on Linux

When you run both Windows and Linux on the same computer , the same need inevitably arises: accessing data stored on Windows NTFS partitions from Linux and being able to securely read and write to them . If you're used to struggling with "read-only" messages, strange errors, or drives that simply don't appear, this article is for you.

Throughout this guide we will see, step by step, how Mount NTFS partitions with write permissions on virtually any Linux distributionWhat role do NTFS-3G and FUSE play, and how to automate mounting to Boot with /etc/fstabWhat security and permission options should you use, how to avoid typical problems caused by Windows (hibernation, fast startup, etc.), and what alternatives you have if NTFS gives you trouble or you want to minimize risks.

What is NTFS-3G and why do you need it in Linux?

NTFS-3G driver for mounting Windows partitions on Linux

For many years, the Linux kernel offered only very limited support for NTFS : reading was fine, but writing was extremely restricted (basically overwriting files without changing their size). For everyday use, this was practically useless.

To overcome this limitation, NTFS-3G was introduced , a free driver that implements the NTFS file system in user space using FUSE (Filesystem in Userspace). This means that disk access is not managed directly by the kernel, but by a user process, which provides greater security and stability : if something breaks, it doesn't take down the entire system.

NTFS-3G allows you to create, delete, rename, move, and modify files and directories in NTFS with considerable reliability . It has been in production for years, is used in numerous distributions, and although it is not an official Microsoft driver, it is very mature and extremely stable for normal use.

In most modern Linux distributions (Ubuntu, Linux Mint, Fedora, Debian, Arch, etc.), NTFS-3G and FUSE are either installed by default or just a single command away. Even so, it's useful to know how to check and install them manually, because they are often not included in minimalist environments or servers.

Preparations in Windows: disable hibernation and fast startup

Before modifying anything in Linux, it's crucial to understand why Linux often mounts NTFS partitions as read-only or refuses to mount them altogether. The main culprit is usually Windows, and more specifically two features: hibernation and fast startup.

Starting with Windows 8, Microsoft introduced what's called Fast Startup . Although it appears to be a normal shutdown, the system actually saves part of the kernel and driver state in a hibernation file . Then, when you turn it on, it loads that state instead of booting from scratch, making it seem to start up faster.

The problem is that by doing this, Windows leaves the NTFS file system "dirty" or locked so it can be restored to its original state without any issues. When you then boot Linux, it detects this mark and, to avoid corrupting the partition, only allows it to be mounted in read-only mode or even throws an error such as "The disk contains an unclean file system."

To safely write from Linux to the Windows NTFS partition, it is highly recommended to disable fast startup and hibernation in Windows 10 or 11, or at least ensure that the last shutdown was a "real restart" and not a hybrid pseudo-shutdown.

How to disable fast startup in Windows 10/11

The steps are very similar in Windows 10 and 11. In summary:

  • Open the Classic control panel (You can search for "control panel" in the Start menu.)
  • Sign in “Hardware and sound” → “Power options”.
  • Click on “Choose the action of the power buttons”.
  • Press on “Change settings that are currently unavailable” to be able to modify the gray options.
  • Uncheck the box “Turn on fast startup (recommended)”.
  • Save the changes and restart the computer.

With that done, when you shut down Windows, the system will actually log off the NTFS partition , and Linux will no longer see it as hibernated or locked. If you ever experience the read-only problem again, check that Fast Startup wasn't automatically re-enabled after a major Windows update , as this happens more often than it should.

Another option, if you don't want to disable Fast Startup completely, is to always shut down Windows using "Restart" instead of "Shut down" right before booting into Linux. Restarting performs a "real" shutdown without hybrid hibernation, so the partition is clean and Linux can mount it for read/write access.

Install NTFS-3G and FUSE on your Linux distribution

With Windows now under control, the next step is to ensure your Linux system has FUSE and NTFS-3G correctly installed. In most cases, simply using your distribution's package manager will suffice.

Typical installation commands by distribution

In most common systems, the commands would look something like this:

  • Debian, Ubuntu, Linux Mint and derivatives
    sudo apt update && sudo apt install ntfs-3g fuse
  • Fedora, RHEL, Rocky, AlmaLinux
    sudo dnf install ntfs-3g fuse
  • Arch Linux, Manjaro
    sudo pacman -S ntfs-3g
  • Gentoo
    sudo emerge -av ntfs3g

In many modern distributions, FUSE support is enabled by default. However, if you want to be extra careful, you can check that the kernel module is loaded with:

  How to fix error 0XC00012F with uxtheme.dll

lsmod | grep fuse

If it doesn't return anything, you can manually load it with:

sudo modprobe fuse

Only in very specific scenarios (custom kernels, embedded systems, etc.) will you need to recompile the kernel, including support for "Filesystem in Userspace" . In normal desktop or server installations, loading the module and having the package installed is more than sufficient.

Identify the NTFS partition you want to mount

Before assembling it, you need to know Which device corresponds to the NTFS partition? from Windows or to the data disk you want to use. In Linux you won't see the letters C:, D:, etc., but routes in /dev , the /dev/sda3 o /dev/nvme0n1p3.

The most convenient tools for locating partitions are lsblk , fdisk , parted , or blkid . For example, to list partitions and their file systems, you can use:

lsblk -f

This command will show you columns such as NAME, FSTYPE, LABEL, UUID, MOUNTPOINT , etc. Look for the rows where FSTYPE is “ntfs” (or exFAT if you are using an intermediate partition between Windows and Linux) and locate the exact one you want to mount from Linux.

Another option is to use:

sudo fdisk -l | grep -i ntfs

or even of:

sudo blkid

to obtain directly the partition UUIDUsing UUIDs is highly recommended when you edit later. /etc/fstab, in as much as The names /dev/sdX may change Whether you plug in or unplug disks changes, the UUID remains stable as long as you don't reformat.

hard drive maintenance in Linux
Related articles:
Hard Drive Maintenance in Linux: A Complete and Practical Guide

Manually mounting an NTFS partition with NTFS-3G

Once the device has been located (for example / dev / sdb1), the next step is create a mount pointThat is, the folder where the partition's contents will be displayed. It is commonly used /mnt o /mediaBut you can choose whichever one is most convenient for you.

For example, we created a directory for the Windows data partition:

sudo mkdir -p /mnt/win

And now we mount the partition with NTFS-3G:

sudo mount -t ntfs-3g /dev/sdb1 /mnt/win

If you don't see any errors, you should now be able to access /mnt/win with your file manager and verify that you can create, delete, and edit files there without needing to open them as root (although the owner and permissions will depend on the mount options, which we will see now).

If you prefer, instead of specifying the device by /dev/sdX you can do it by UUID or by label (LABEL):

sudo mount -t ntfs-3g UUID=F2D6FE21D6FDE62F /mnt/win

O well:

sudo mount -t ntfs-3g -L Win10 /mnt/win

Configure write permissions for non-root users

One of the key points when mounting NTFS from Linux is how to manage permissions . NTFS has its own permissions model (Windows ACLs), which doesn't exactly match Linux's, so NTFS-3G performs a kind of translation into "simulated" permissions to make everything work.

On NTFS partitions and other systems that do not support native POSIX permissions, the way to control who can do what happens is through options such as uid, gid, umask, dmask, fmasketc. These options are usually specified in the command mount or on the corresponding line of /etc/fstab.

The typical scenario is wanting a regular user (yours, not root) to have full read and write permissions on the NTFS partition shared with Windows. For this, you need to know your UID and GID , which you can obtain with:

id

The typical output will be something along the lines of:

uid=1000(miusuario) gid=1000(migrupo) grupos=1000(migrupo),10(wheel)...

With those values, you could mount the NTFS partition like this:

sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=0022 /dev/sdb1 /mnt/win

Here, uid and gid define the "Linux view" owner of all files, and umask controls default permissions (In this example, read access for everyone and write access only for the owner). If you want any user to be able to write, you can adjust the umask (for example) 0002 to give the group a written name).

Automatically mount NTFS on boot using /etc/fstab

Manually mounting the file system every time you turn on your computer is a pain, so the usual practice is to automate the process using the /etc/fstab file . This file defines which file systems are mounted at startup, where, and with what options.

Before you touch it, it's a good idea to make a backup in case you make a mistake:

sudo cp /etc/fstab /etc/fstab.bak

Then edit it with your favorite editor in root mode:

sudo nano /etc/fstab

The general syntax for each line is:

file_system mount_point type options dump pass

For our example NTFS partition, we could use a modern UUID-based configuration, with NTFS-3G and permissions assigned to a specific user:

UUID=1234-ABCD /mnt/win ntfs-3g uid=1000,gid=1000,umask=0022,windows_names 0 0

Along these lines:

  • UUID=1234-ABCD is the unique identifier of the NTFS partition (replace it with your actual one, obtained with blkid o lsblk -f).
  • /mnt/win It is the mounting point, which must exist beforehand.
  • ntfs-3g It forces the use of the NTFS-3G driver instead of the possible native kernel driver.
  • uid, gid, umask They control the ownership and permissions of the files.
  • windows_names It prevents the creation of filenames that are incompatible with Windows (characters like * ? < > |, etc.).
  • The two final zeros deactivate dump and the verification of fsck in this partition, something common in NTFS data drives.
  UWP vs Win32 Apps: Real Differences, Future, and Coexistence

If you want to prevent it from mounting automatically at startup but still be able to mount it without root privileges when needed, you can use options like `noauto,users` in the options column. For example:

UUID=1234-ABCD /mnt/win ntfs-3g noauto,users,uid=1000,gid=1000,umask=0022 0 0

Using `user` or `users` allows regular users to mount or unmount the file system (depending on the variant), which can save you from having to use `sudo` all the time.

Once edited /etc/fstabYou can check if the syntax is correct with:

sudo findmnt --verify

And apply the changes without restarting using:

sudo mount -a

If no error message appears, the NTFS partition should now be mounted as you defined on the next boot (or even instantly, if it wasn't already).

Graphical tools for mounting NTFS partitions

If you find commands tedious or simply prefer a more user-friendly interface, Linux offers several graphical tools for managing disks and partitions that work seamlessly with NTFS.

On GNOME-based desktops, the GNOME Disks utility (often simply called "Disks") is usually pre-installed . From it, you can view all drives, their partitions, file system type, disk SMART status, etc., and it includes a button to mount or unmount NTFS partitions with a single click.

In addition, GNOME Disks allows you to configure automatic mounting options without touching /etc/fstab directly: you can specify the mount point, whether you want it to mount at startup, whether to use the device name or UUID, and add options such as uid, gid or umaskFor users who don't want to struggle with the terminalIt's a miracle cure.

In KDE environments you have KDE Partition Manager , very complete and somewhat more technical, which also supports mounting and unmounting NTFS partitions easily and offers advanced functions for partitioning, verifying and repairing file systems.

Finally, GParted is another very popular tool for managing partitions. While not as focused on permanent mounting as GNOME Disks, it's excellent for visualizing disk structure , resizing and labeling partitions, and verifying that Linux correctly recognizes your NTFS drives.

Typical errors: NTFS partitions in read-only mode

One of the most common problems when working with NTFS from Linux is that the partition appears as "read-only" even though you have NTFS-3G installed. This usually manifests as the inability to create folders, delete files , or rename anything unless you open the file manager as root (which is not recommended for daily use).

The most common cause, as we've already mentioned, is that Windows has left the partition in hibernation or with the "dirty bit" flag set . In that case, Linux detects the risk of corruption and mounts the file system in safe mode (ro).

The correct solution in these cases is not to force a write mount, but rather to return to Windows and perform a full shutdown without hibernation , or disable Fast Startup. Another option is to boot into Windows, perform a normal shutdown after disabling Fast Startup , or run a disk check from Windows (chkdsk) to clean up the disk state.

There is a mount parameter in NTFS-3G called remove_hiberfile allowing force the mounting of a partition that Windows has left hibernated, removing the hibernation file in the process:

sudo mount -t ntfs-3g -o remove_hiberfile /dev/sdXn /mnt/win

Using this option means losing Windows' hibernation state , and if you had something important pending, you might be in for a surprise. It's a kind of "wild mode": it can get you out of a tight spot, but it's best to use it knowing what you're doing and always backing up anything important.

Other access problems: permissions and file system errors

Even without hibernation, there may be cases where you cannot modify certain files or folders within the NTFS partition . This is usually due to permissions set in Windows on those specific paths (ACLs that deny access to your user or the generic group).

In these situations, the ideal solution is to review and adjust the permissions from Windows (Security tab of the folder properties) to allow "Everyone" (or the appropriate user) read/write access, and then remount from Linux.

If you suspect internal problems in the NTFS structure, Linux offers the ntfsfix tool , which can remove the "dirty" flag and repair some minor errors , although it doesn't replace Windows' chkdsk . You can also use fdisk -l to check the partition table and locate the problematic partition.

sudo fdisk -l

In any case, the general recommendation is that deep repairs of the NTFS file system be done from Windows with its native utilities (chkdsk, etc.), and to use ntfsfix as an auxiliary tool and not as a substitute.

Is it safe to write to NTFS from Linux?

This question comes up constantly: what is the safety margin when writing to NTFS from Linux using NTFS-3G ? Although it's not an official Microsoft driver, the reality is that it has been in production for many years and is thoroughly tested.

Reading NTFS data from Linux is virtually risk-free : opening and copying files without writing to the disk shouldn't cause any problems. The potential for issues arises when writing, but currently, NTFS-3G's stability is very high, and the chances of damaging the disk are extremely low , provided that:

  • Windows Do not leave the partition hibernated or with pending errors..
  • Do not unplug external drives without disassemble them correctly (umount).
  • Do not use distributions outdated without updates for years.
  Windows 10: Fix Error 0xc000012f [STEP BY STEP GUIDE]

In the rare cases where something goes wrong, it's usually just that a specific file becomes corrupted (copied incorrectly, cut in half, etc.), but not that the entire disk suddenly becomes unreadable. Even so, if the content you're storing is critical, it's always worthwhile to maintain backups and minimize unnecessary writes.

Since kernel 5.15, the NTFS3 driver has also been integrated into the Linux kernel, developed by Paragon, which theoretically offers better performance . However, many people still prefer NTFS-3G due to its maturity, its integration of repair utilities, and the user-space control offered by FUSE.

When is it advisable to use exFAT or other file systems instead of NTFS?

If you're still having problems with NTFS after struggling with it, or if you simply want a more neutral format for both Windows and Linux , exFAT is a highly recommended option . This file system, the successor to FAT32 , eliminates many of its limitations (maximum file size, etc.) and is natively compatible with Windows and modern Linux distributions.

exFAT is especially useful for external hard drives and USB flash drives that you'll be connecting to different computers and operating systems . Linux handles exFAT quite well, and in many cases, writing is even more secure and predictable than with NTFS when used as a "bridge" file system.

However, there's an important caveat: you can't use exFAT as a Windows system partition . Microsoft only allows NTFS for the drive where the operating system is installed. But for shared data drives, exFAT is a very viable option.

Keep in mind that formatting to exFAT erases all data on the partition, so you'll need to copy your data to another location before reformatting. Any partition manager (GParted, GNOME Disks, KDE Partition Manager, etc.) will allow you to make the change in just a few clicks.

If you want maximum security and performance within Linux and don't need to access it from Windows , it's best to use ext4 (or others like XFS, Btrfs, etc.) for your working partitions, and leave NTFS or exFAT only for those you're going to share or connect to Windows machines.

Alternatives when Linux cannot read NTFS directly

In more complex environments, even with NTFS-3G you may not be able to easily access your NTFS disks from Linux, or you may prefer not to risk directly touching the Windows partition for fear of possible corruption.

A very practical option is to use another device as a network access "bridge ." For example, if your router has a USB port with storage support , you can connect the NTFS drive there. Many modern routers can mount NTFS drives and share them via SMB/SAMBA on the local network, so Linux would see the drive as a network drive, not a local device.

If you have a NAS server at home, the approach is similar: you connect the NTFS drive to the NAS, it mounts it (most support NTFS without issues), and you access it from Linux over the network using SMB or NFS. By using the network, you avoid driver conflicts and further reduce the risk of corruption.

Another interesting approach, but in the opposite direction, is to access your Linux ext4 partitions from Windows using third-party applications like Paragon Linux File System . These tools allow you to open, read, and write to Linux file systems as if they were NTFS, eliminating the need to manually edit NTFS partitions from within Linux.

You can also use WSL (Windows Subsystem for Linux) , which integrates a Linux environment within Windows. Although WSL primarily operates via commands and isn't very user-friendly, it can be useful in specific scenarios for moving data between systems without relying heavily on dual-boot setups.

In short, to assemble Windows NTFS partitions with write permissions in Linux It's a fairly controlled process these days: with NTFS-3G and FUSE properly configured, Windows Fast Startup disabled, and a /etc/fstab tuned with UUID, uid, gid and the appropriate optionsYou can work with your files almost as comfortably as if you were on Windows, also taking advantage of graphical tools like GNOME Disks or KDE Partition Manager, and always keeping in mind that, if the environment gets complicated, exFAT, a NAS or network access give you equally valid alternatives to keep your data safe and accessible from both worlds.