Steam Linux Library on an NTFS Disk
Share a Steam Game Library on an NTFS partition with Linux and Windows.
Intro#
As a PC gamer and a Linux user, I’d like to share my steam library between Windows and Linux. Several disk formats can be accessed by both Windows and Linux, among which NTFS is the default format used for Windows. So it has the most compatibility with the Windows system. And some tricks make NTFS partitions work well with Steam for Linux.
How#
The Original Method#
To make the NTFS file system work well with Steam, some mounting flags need to be used.
Example /etc/fstab config looks like this.
| |
However, that’s not enough. The Proton Compatibility Layer will not work on an NTFS filesystem. Proton Wiki suggests that create a symlink for the /compatdata folder.
| |
The Caveat#
It works, but not perfectly. Because the symlink only works in the Linux system. And after booting into the Windows system, the symlink would be broken. And if I access the Stream Library from the Steam Windows Client, the symlink seems to be broken again in the Linux system.
Quickfix#
To not create the symlink every time I start Stream for Linux. I decide to change the symlink to a bind mount.
Example /etc/fstab looks like this.
| |
Bypass Mounting Failures at Booting#
NTFS filesystem sometimes will fail to mount at boot. To bypass these mounting errors.
We can also add nofail,x-systemd.device-timeout=2 mounting options to both the game disk and the compatdata mount.
Of cause, for the Systemd init system only. For other init systems, there should be similar tricks. That’s out of the scope here.
Turn off the Shader Cache#
Although, it has nothing to do with the NTFS file system. By the way, I want to mention it here. Steam for Linux or the Proton Compatibility Layer utilizing the Shader Cache to improve gaming performance. However this has some drawbacks.
- I’ve once encountered poor performance with cached shader in Nobara Linux.
- It took a long time for me to download the shader cache. It could be related to the CDN conditions of my specific region.
I have not encountered much performance loss with the option off in the several games that I played. So I just turned it off.