Steam does not write games onto NVME

New installed Leap 15.6. I had to format all partitions except EFI. The NVME was on Leap 15.5 formatted as XFS and worked well.

Now having formatted the NVME (I tried both EXT4 and XFS) and changed the Owner of the mount point to the user who’s running Steam (Flatpak), I can create a Steam library on the NVME, but any installation via Steam on that NVME (does not matter if Sniper or Game) fails with a write error. (Works fine in the “/home” partition on an HDD). I can mess around in that NVME with Gnome-Commander as my standard user and have all privileges, I even change privileges to 777, but Steam still fails writing games.

I cannot recall such from Leap 15.5.

Any idea what I may be missing here?

Btw:

I have “Upgraded” now in early July 2024 since I want soon install an AMD RX 7600 XT. The Kernel 6.4x shall support that Card, such is good news.

I prepared a USB stick for installation. And first thing I learned is that such “Upgrade” fails since Gnome comes up as gray window, freezes, breaks and launches a Restart.

Second thing I learned is that a roll-back to 15.5 ain’t feasible since the failed installation of 15.6 touched the EFI; with that the 15.5 stick is rejected with a checksum error.

Third thing I learned was that importing User data into a new Installation and / or not having “/home” formatted is leading to same broken Gnome display as in the first step.

Other fun findings had been that removing pulseaudio (coz pipewire should be enough) is removing Gnome as such – instead Leap comes up with an XSF(?) in best 1990 look and feel.

Also fun if trying to remove MESA from YAST for having it replaced from Flatpak -

removing does without notification a bit more like deleting e.g. YAST, Software and Terminal.

And after all worked kinda (having lost tons of private data like game saves when formatting “/home”) there is still fun with YAST not accepting the keyboard being active in Gnome – and from time to time after Power Off (could not yet clearly reproduce this) I lost Display and additional keyboard settings in Gnome.

I loved Leap 15.5 for being a well performing and reliable environment – but since “Upgrades” should be reliable too, having experienced massive loss of data coz having trusted blindly into Linux being secure, I am not so very sure anymore of how much I love this … hmmm, still better than Microsoft.

One more interesting detail:
When trying to install a game onto that NVME, Steam does indeed create the game’s folder in steamapps/common, but immediately afterwards stops the installation with an Disk Write error. Why can Steam create folders but cannot write files???

Steam requires the FULL PATH (base directory) to be owned by the user who runs Steam. This is reported on several threads and forums around the net. This can also be seen by monitoring the terminal output of Steam when trying to download a game.

That means
/home/youruser/steamdatadirectory/ → works, as the complete home directory is owned by the user
/mnt/steamdatadirectory/ → don’t work as /mnt is owned by root
/steamdatadirectory/ → will work if this directory is owned by the user of Steam

In other words, if you have a seperate NVME only for the steamdata simply create /data and give your user full RW permissions. Point Steam to this directory as data directory.

I do this in this way as i have all Steam data on seperate NVMEs to decrease the read-write cycles on the main SSD/NVME.
/daten is the base directory for Steam:

Fixed!

As it turned out, this was a Flatpak specific problem.
The issue shall not occur, if you installed the Steam provided by your distro.


Situation was in my case:

Geparted:
/dev/sdd1 1.82 TB - File System xfs, Label: NVME, UUID: 32d71458-51a2-4d5d-b929-bf880e33c1d0

Path Gnome-Commander:
/run/media/bierpizzachips/NVME/STEAM_GAMES

Path in Disks for Partition (mount point):
/run/media/bierpizzachips/NVME

Path Steam Library:
/RUN/USER/1000/DOC/EC3CE0FD/STEAM_GAMES
Terminal: No such file or directory

Owning user of path:
/run → root (755)
media → root (755)
bierpizzachips → bierpizzachips (777)
NVME → bierpizzachips (777)
STEAM_GAMES → bierpizzachips (777)

Owner of Steam library folders created by Steam: bierpizzachips (755)

Actions by Steam on game installation:
Create folder in …/steamapps/common: Yes
Place files in new game folder: No


Solution:

  1. Remove failed library in Steam from NVME
  2. Remove files and folders of failed library from NVME
  3. Have Mount Point owned by user and user’s group as always.
  4. Have NO folder below that mount point.
  5. Download from Flatpak “Flatseal”
  6. Launch Flatseal, select on the left Steam, on the right side scroll down to chapter ‘Filesystem’ and click add for “Other files”. Enter the path to your mount point as displayed in the Terminal or e.g. Gnome-Commander.
  7. Launch Steam and you will find your mount point already activated in Storage as further library.
  8. Proceed with installing games.

And even better with a permanent mount as suggested by hui above by doing these steps:

  1. First do the Flatseal fix as described in the post one above.
  2. Now mount the NVME permanently (no worries if games are meanwhile installed, i did not lose a thing):
    2.1 Be logged in as your gaming user. Open YaST.
    2.2 Launch the Partitioner (If you have no idea about Partitions, then fingers off right here!)
    2.3 Select with LMB the Partition of your NVME, that line where the type of format is noted.
    2.4 Below is a button named “Edit…”. Open that.
    2.5 Touch only stuff on the right hand below “Mounting Options”.
    2.5.1 Activate “Mount device”.
    2.5.2 Select a Mount Point in the drop-down-menu e.g. /srv
    2.5.3 Add a folder by typing to that selected Mount Point e.g. let “/srv” become “/srv/NVMESTEAM”
    2.5.4 Click Next
    2.5.5 Finish the Partitioner
    2.6 Use e.g. Gnome-Commander to check folder at root level. You will find now /srv/NVMESTEAM. Interestingly the folder NVMESTEAM should be owned by your gaming user (If by whatever reason not, you may change this accordingly via chown).
  3. Open Flatseal.
    3.1 Remove the original line to the folder of your NVME, which was created in context of the one above explained solution.
    3.2 Now add as new first line below ‘Filesystem’ in Flatseal the new mounted path e.g. /srv/NVMESTEAM
  4. Restart
    4.1 You will find that your NVME is now mounted on boot to that folder /srv/NVMESTEAM.
  5. Open Steam
    5.1 If you check in Steam’s Settings for Storage, the original before added library is gone. Do not panic.
    5.2 Open the downwards pointing triangle behind the displayed library in Steam’s Storage.
    5.3 Select Add Device.
    5.4 A window will appear to add a library path as defined before in Flatseal e.g. /srv/NVMESTEAM.
    5.5 Add that library.
  6. Have fun.

I am suggesting the usage of the Partitioner here coz typing manually in the FSTAB as a Linux Newbie - which most of us gamers may be - is a brilliant way to blow up your installation superquick skyhigh with just a minor typo. Using the Partitioner reduces the risk of killing your installation in context of permanent mounting.

Check your Steam settings and make sure your NVMe drive is set as the installation path. Sometimes, moving the library folder to the NVMe drive can resolve issues with installation. If problems persist, ensure your drivers are updated.

Having learned a bit more, i understand now that my recommendation of using the YaST Partioner for mounting is pretty much idiotic. Sorry for that. :face_with_open_eyes_and_hand_over_mouth:

Best and easiest way of mounting extra Partitions into HOME as suggested by hui is using the application ‘Disks’, where next to the play icon (mount) an icon for settings can be found, which allows to define where and how Partitions shall be mounted. So easy. :laughing:

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.