TIL Steam requires symlinks when games are on external drives
TIL Steam requires symlinks when games are on external drives
I dont post often but I struggled to find a solution to my issue so I am trying to fix that very problem by adding a resource. Hope this helps someone.
I have moved my last windows pc to Linux Mint last weekend (I had some issues writing to my other USBs and had it lying around, technically I set out to try Fedora Silverblue but that may come later down the road now). I keep all my games and important files on secondary hdds and ssds in my machine as I've had data loss many times before from moving machines go Linux.
All went well, installation worked, but when I installed Steam, nothing showed up in the 'storage' page of the settings menu. "Hmm, it's probably a permission issue" I thought, if it cant see the drives it's not allowed to. Command used to debug this was:
sh
ls -ld /media/gamedrive1 /media/gamedrive2
which showed root had read, write and execute access but I had read access.
So next I had to change /etc/fstab
and make sure my drives were mounted correctly (using ntfs-3g driver instead of ntfs on one drive, and adding my users name as the owner and group owner).
This took me a minute to get right because it relies on the uuid of the drive, not the /dev/sdX
identifier (I've been informed you can also use the /dev/disks/by-id/
. It was super easy to do this through the gnome-disks utility, so I didn't need to keep editing the fstab file with nano and could see partition names.
I then I had drives visible in the 'Storage' settings in Steam (I did also switch from the downloaded deb file from steams website to the apt installation but I dont think I needed to).
I try to run a game, forget proton exists, retry to run the game with compatibility mode on, then get a 'Disk Write Error' for my /media/JoshCodes/gamedrive1/SteamLibrary/steamapps/downloading/random/file
.
Super weird I think, but it's probably a cache issue, some dumb file from my windows machine that didn't get permission-ed properly for some reason - idk it was 10pm. I clear my cache, reset steam entirely, manually remove the files, nothing works. On a fluke, a troubleshooting step led me to a solution by way of it not working: I tried to create a symlink between the downloads folder on the main drive and the drive I had the game library installed on. The recommendation was to use:
sh
ls -s /opt/steam/downloading /path/to/steamlibrary/downloading
Can't remember the error but it was something like "symlinks are not able to be created as they are not compatible with this file system". Oh dammit. This drive is on a filesystem that is incompatible (exFAT) with my other file systems for some reason. Someone smarter than me clarified that Steam and video games in general rely on symlinks, which are not supported on exFAT file systems, but will work on Windows for reasons I won't get in to.
Unfortunately I did have to move everything from my exFAT drive to a 3rd drive, reformat (just used ext4 as its native linux) and put all my files back on. At this point it was like 1am but I could open Civ V and Rocket League! Huzzah, crashed and went to bed. That's the first time I've really stuck with a problem that I wasn't familiar with, learned a shitload about mounting drives and just thought it through. A little help from the internet at the end but good outcome.
I hope that helps someone else!
Edit: Added commands and fixed formatting. Changed title as it was not correct as pointed out (Sorry, that's the first thing I typed and forgot to check that before posting). Added some info stolen from the comments on why symlinks don't work.