Mounting NTFS drives in Ubuntu

When I first started using ubuntu/linux, it was possible to read NTFS drives, but writing was a non-reliable function that was better to not attempt. Nowadays however, I find it quick and easy to use NTFS drives in linux, and would go so far as to say it can make it easier to share files between linux user accounts, and easier to transfer files back and forth between PCs and phones.

I typically prefer to format my drives under a Windows installation, then take the drive and put into the server.

Ubuntu Server is better than Windows insofar as if you plug a drive into the computer, it does absoloutely nothing with it, doesn’t try to mount it or access any files. You need to tell ubuntu about your drive and where to mount it to. We will do this all through the terminal.

The first step is to create a mount point for our NTFS partition. This is an easy to use reference to the drive that looks like any other folder in ubuntu. To do this, from a user account with sudo-access: sudo mkdir -p /path/to/folder. I typically prefer to use /mnt/friendlyname.

From here we want to be very explicit when telling Ubuntu what drive to mount. For example, you could move around the physical connections on the PC motherboard, or USB ports for removable storage. Because of this, we don’t want to refer to the port/slot/connection, we want to refer to what is known as the UUID so that no matter how the drive is connected, the OS will see it and mount appropriately.

sudo fdisk -l to list currently connected drives. Find the partition name for the NTFS partition you want to mount. Once you determine the partition name, use the following code to determine the UUID of that partition, copy the number and keep it handy: sudo blkid /dev/partitionname.

Now we will edit the fstab to have our drive automatically mount on startup, with read/write permissions: sudo nano /etc/fstab.

At the bottom of the file, add the following line:

UUID="enter UUID here" /mnt/dirname/ ntfs nls-utf8,umask-0222,uid-1000,gid-1000,rw 0 0

Paste the UUID in the quotation marks where it says enter UUID here, and type the mount point you created earlier where /mnt/dirname is. Leave everything else alone.

On Ubuntu 24.04, I’ve noticed that when you attempt to test the configuration using sudo mount -a, you will get the following message:

mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.

As the message indicates, first enter sudo systemctl daemon-reload, then once complete, enter sudo mount -a to test the configuration.