Recently I was surprised to find out that many people had problems running games from NTFS partitions, up to the point that they have flooded Valve with their own problems. Valve can only do so much by coming up with a general solution which may not work for everyone, especially if it's poorly explained. So what I'm gonna do here is explain in details how I did it 8 years ago and how it worked for me for 8 years (before I discovered that there were better and faster filesystems). And it works even now because I installed Windows for just one game (it's a long story to explain why I had to install a Windows as a secondary boot, so I'll just keep it that). Suffice to say that I can run that one game FROM the NTFS partition with both Wine an Steam Proton without a single problem.
So read on and read carefully. I know this explanation looks long and hard when it's written like that but really it isn't hard. I'm just triyng to keep it as detailed and comprehensible as possible.
The short version: there are three things you need to do: edit fstab, have ntfs-3g installed and change ownership of the NTFS partition.
The long version:
• install the ntfs-3g driver, if you haven't already. There's a new ntfs driver named the same way ("ntfs") but it's still new, it's quite possible for it to still have bugs, so I DON'T recommend that. Better use ntfs-3g because it's old and therefore more cleaned from bugs.
• open the fstab file of your distro with your favorite editor. The editor in the following code tag is the one I would use but you can replace its name with whatever editor you prefer, even vim, if you want.
Add the following line (which I will break down after the code tag) AFTER the line for root, like this:
It's best you use an UUID instead of /dev/sdxY because some older motherboards have the habit of changing the order of the storages (sda1 sometimes becomes sdb1 which could lead to boot problems). In order to see the UUID for your NTFS partition, you need to run this in terminal:
Some distros may require root privileges in order to run this command, so just add sudo in front of it. When you execute it, you should see something like this:
The partition where the game in question is, is labeled Win_D and next to it is the UUID you need to copy and paste in the UUID=" " part of the line, so that Linux can automount it at system startup.
After the UUID comes the mount point which can be ANYTHING you want. Just keep in mind that if you choose to mount it as /media/somename, it will appear as a removable drive, just like a USB stick. If you choose to mount as /E, /NTFS or even /WinPartition, it will be mounted as a native linux partition. That means it won't appear in your file manager, you'll have to manually open / in the file manager and make a bookmark to that partition, so you can access it whenever you want.
After the mount point-comes the driver name which I already explained it should be ntfs-3g.
Then here comes the long part of the line: "defaults,relatime,no_prefetch_block_bitmaps,auto,uid=1000,gid=1000,umask=000 0 0" which you need to paste exactly as it is. I don't remember what all of these options mean (I read that very long time ago) but here's what I remember and which is the most important. "No prefetch" disables the Windows-like prefetch indexing function which Linux doesn't use (but ntfs-3g can mimic) but that shortens the storage lifetime because it constantly reads and writes on it, so it's recommended that prefetch thing to be disabled. UID/GID 1000 are respectively User ID and Group ID. With that ID of 1000 you get FULL and complete control over that partition.
I'm almost at the end of the explanation but here's something worth mentioning: IF at any point you made whatever changes to the NTFS partition using either GParted or any other program that requires root privileges, adding this long line to fstab won't be enough because the partition owner will appear to be root. So you need to take ownership of the desired partition. I have an alias for this and it works on partitions, files AND directories (that's why I have it in the first place
).
or
or
or
In your case you will need to use the first example:
where "rado:rado" should be replaced with your username (twice - username:username) and "/partition/mount/point" should be replaced with whatever you entered above as a mount point. For instance: "/media/NTFS".
After that all you need to is reboot the system. If you have followed my instructions to the letter AND assuming your NTFS partition is healthy, I guarantee you it will work. As I said above, at the moment I have an NTFS partition with Windows 10 and that partition is mounted as I just explained. And I can play that game directly from Linux with either Wine or Proton (whichever I choose).
Here's what my entire fstab look like at the moment and it works:
The only cases I have seen myself where this wouldn't work, are if the storage is old, sick and approaching its EOL, having both logical and physical bad sectors. Sick storages might live a little longer in Windows and the fact that they're sick may not be so obvious. That's because at boot Windows skips sick partitions and attempts to mount them later when the desktop starts. In most cases that works, so the storage may appear healthy but it's not.
I had such a storage that was used for NTFS drive (it was a Western Digital Green 500 GB HDD which was 11 years old). I was unable to access anything on it through linux despite all of my efforts. Only when I bought a new storage to replace it, my way that I described above worked like a charm.
I'm telling you this to avoid confusion, in the event this method doesn't work for you for whatever reason.
I hope you enjoyed this wall of text but its intention is only to help you resolve a problem I stopped having 8 years ago.
Nowadays I know there are far better filesystems than NTFS, so unless you have a dual boot with Windows, you don't really need that filesystem. I'd recommend you format all of your storages (but back up their data first; DON'T use clonezilla for that, better use USB storages) to either XFS or ZFS, including reinstall your distro on an XFS partition. XFS is meant for servers, therefore for security, speed and generally top performance. If you want, I could share my experience with XFS and why I like it so much but this topic isn't the place for this. The best part of XFS - ALL GAMES, no matter the year of release, run just fine from XFS.
So read on and read carefully. I know this explanation looks long and hard when it's written like that but really it isn't hard. I'm just triyng to keep it as detailed and comprehensible as possible.
The short version: there are three things you need to do: edit fstab, have ntfs-3g installed and change ownership of the NTFS partition.
The long version:
• install the ntfs-3g driver, if you haven't already. There's a new ntfs driver named the same way ("ntfs") but it's still new, it's quite possible for it to still have bugs, so I DON'T recommend that. Better use ntfs-3g because it's old and therefore more cleaned from bugs.
• open the fstab file of your distro with your favorite editor. The editor in the following code tag is the one I would use but you can replace its name with whatever editor you prefer, even vim, if you want.
Code:
sudo gedit /etc/fstab
Add the following line (which I will break down after the code tag) AFTER the line for root, like this:
Code:
UUID for the linux partition
UUID="34EC5F3FEC5EFA96" /E ntfs-3g defaults,relatime,no_prefetch_block_bitmaps,auto,uid=1000,gid=1000,umask=000 0 0
It's best you use an UUID instead of /dev/sdxY because some older motherboards have the habit of changing the order of the storages (sda1 sometimes becomes sdb1 which could lead to boot problems). In order to see the UUID for your NTFS partition, you need to run this in terminal:
Code:
lsblk -f
Some distros may require root privileges in order to run this command, so just add sudo in front of it. When you execute it, you should see something like this:
The partition where the game in question is, is labeled Win_D and next to it is the UUID you need to copy and paste in the UUID=" " part of the line, so that Linux can automount it at system startup.
After the UUID comes the mount point which can be ANYTHING you want. Just keep in mind that if you choose to mount it as /media/somename, it will appear as a removable drive, just like a USB stick. If you choose to mount as /E, /NTFS or even /WinPartition, it will be mounted as a native linux partition. That means it won't appear in your file manager, you'll have to manually open / in the file manager and make a bookmark to that partition, so you can access it whenever you want.
After the mount point-comes the driver name which I already explained it should be ntfs-3g.
Then here comes the long part of the line: "defaults,relatime,no_prefetch_block_bitmaps,auto,uid=1000,gid=1000,umask=000 0 0" which you need to paste exactly as it is. I don't remember what all of these options mean (I read that very long time ago) but here's what I remember and which is the most important. "No prefetch" disables the Windows-like prefetch indexing function which Linux doesn't use (but ntfs-3g can mimic) but that shortens the storage lifetime because it constantly reads and writes on it, so it's recommended that prefetch thing to be disabled. UID/GID 1000 are respectively User ID and Group ID. With that ID of 1000 you get FULL and complete control over that partition.
I'm almost at the end of the explanation but here's something worth mentioning: IF at any point you made whatever changes to the NTFS partition using either GParted or any other program that requires root privileges, adding this long line to fstab won't be enough because the partition owner will appear to be root. So you need to take ownership of the desired partition. I have an alias for this and it works on partitions, files AND directories (that's why I have it in the first place

Code:
sudo chown -Rv rado:rado /partition/mount/point
or
Code:
sudo chown -Rv rado:rado /path/to/dir
or
Code:
sudo chown -Rv rado:rado /filename
or
Code:
sudo chown -Rv rado:rado /path/to/filename
In your case you will need to use the first example:
Code:
sudo chown -Rv rado:rado /partition/mount/point
where "rado:rado" should be replaced with your username (twice - username:username) and "/partition/mount/point" should be replaced with whatever you entered above as a mount point. For instance: "/media/NTFS".
After that all you need to is reboot the system. If you have followed my instructions to the letter AND assuming your NTFS partition is healthy, I guarantee you it will work. As I said above, at the moment I have an NTFS partition with Windows 10 and that partition is mounted as I just explained. And I can play that game directly from Linux with either Wine or Proton (whichever I choose).
Here's what my entire fstab look like at the moment and it works:
Code:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID="1a2db951-3fc5-4880-9e2a-be94175245eb" / xfs defaults,noatime 0 1
UUID="0e7afe44-74da-48c4-b27b-eaf882070fb4" /B xfs defaults,relatime,auto 0 0
UUID="d3e0a4a4-69b8-4c1b-9b25-2f2ba17faa54" /C xfs defaults,relatime,auto 0 0
UUID="2187e619-dee6-4a99-9b16-512f456df9e6" /D xfs defaults,relatime,auto 0 0
UUID="7E4855434854FAFB" /E ntfs-3g defaults,relatime,no_prefetch_block_bitmaps,auto,uid=1000,gid=1000,umask=000 0 0
The only cases I have seen myself where this wouldn't work, are if the storage is old, sick and approaching its EOL, having both logical and physical bad sectors. Sick storages might live a little longer in Windows and the fact that they're sick may not be so obvious. That's because at boot Windows skips sick partitions and attempts to mount them later when the desktop starts. In most cases that works, so the storage may appear healthy but it's not.
I had such a storage that was used for NTFS drive (it was a Western Digital Green 500 GB HDD which was 11 years old). I was unable to access anything on it through linux despite all of my efforts. Only when I bought a new storage to replace it, my way that I described above worked like a charm.
I'm telling you this to avoid confusion, in the event this method doesn't work for you for whatever reason.
I hope you enjoyed this wall of text but its intention is only to help you resolve a problem I stopped having 8 years ago.
Nowadays I know there are far better filesystems than NTFS, so unless you have a dual boot with Windows, you don't really need that filesystem. I'd recommend you format all of your storages (but back up their data first; DON'T use clonezilla for that, better use USB storages) to either XFS or ZFS, including reinstall your distro on an XFS partition. XFS is meant for servers, therefore for security, speed and generally top performance. If you want, I could share my experience with XFS and why I like it so much but this topic isn't the place for this. The best part of XFS - ALL GAMES, no matter the year of release, run just fine from XFS.
Last edited: