1

My computer restarted with Steam open and upon relaunching it none of my games on a secondary internal SSD were recognized. The drive is Ext4 and the relevant line from fstab is

UUID=99d2c67d-cbd0-43b4-af73-fad5a79fcd08 /media/datastorage ext4 defaults 0 2

All of the Steam games are still on the hard drive, but Steam says "New steam library folder must be on a filesystem mounted with execute permissions" whenever I attempt to use the app to re-add the library.

I have tried several other fstab options recommended on this platform already. My user has full read-write permissions for this folder and drive. All of my Steam library folders already have "steamapps" in all lowercase. I noticed some other users have had issues with Windows dual boot, but I do not have this and only have one Windows virtual machine set up (but not running nor on the secondary SSD).

My system information is: Pop!-OS 20.10 (Ubuntu based) on a Dell Precision 5550 with an i7-10850H and an NVIDIA Quadro T1000

Let me know if there's anything else I should include! Thanks for the help!

2
  • What is the output if you run mount? Just show us the line that refers to this specific drive/partition (we don't need to see proc, udev, etc. outputs).
    – Kevin
    Jan 4 at 18:29
  • Sure thing, best I can tell, this is the line you want: /dev/nvme0n1p1 on /media/datastorage type ext4 (rw,nosuid,nodev,relatime)
    – Chris B
    Jan 4 at 19:56

1 Answer 1

1

Based on some of the comments on this bug from 2013, this message is triggered if Steam is unable to launch a child process by executing a script which it creates under the affected library. Here are some reasons why that might happen:

  • The script lacks execute permission in its filesystem mode (the x flag in ls -l's output). But Steam created this script, and it should have set the appropriate permissions automatically. Fix with chmod(1).
  • Any directory in the path to the script lacks execute permission. But I would expect this to cause much more substantial problems because you would be unable to even browse your Steam library in the file explorer. You can also fix this with chmod(1). Do not pass the -R flag unless you are sure you know what you are doing.
  • Steam is running as a different user, which is not the normal way of setting things up, and that user lacks permissions as above. You may need to either chmod the library to add permissions, set up group permissions with groupadd(8) and chgrp(1), and/or use chown(1) to give the library (recursively if necessary) to Steam's user. Or you may simply need to make sure that Steam is running as you and not as some other user.
  • The drive is mounted noexec, which prevents anyone from executing any binaries on the filesystem. Some Linux distributions do this automatically for removable drives, as a security measure, but I think we can rule this out based on your mount output. For completeness, this can be temporarily fixed with mount(8) but the permanent fix will depend on how your OS is mounting the drive.
  • system(3) is unable to find /bin/sh. But then your whole OS should be broken.
  • A security tool such as SELinux or AppArmor is preventing Steam from executing binaries on this drive. These are very complicated to monkey around with.
  • Some of the discussion on that bug suggests it might be a problem with case sensitivity. Try renaming the library (and in particular, the SteamApps subdirectory) to all lowercase.

If you try to run that script yourself (it should be named .steam_exec_test.sh, and may not be visible unless you show hidden files), it may provide output to help you further diagnose the problem.

4
  • I'm fairly new to tinkering like this, so I'm not 100%sure what to do with the first solution, maybe you could elaborate? All of the folders leading to the steam library have full rw access as far as I am aware which rules out bullet two. I am the only user on this machine, so unless steam is launching as root or something, I'm not sure what to do with bullet three. I changed the mount option to "exec" so I don't believe bullet four should apply. Not sure about bullet five? I don't have any security tools or antivirus so I don't think six is an issue. Lastly, my steamapps is lowercase.
    – Chris B
    Jan 5 at 1:06
  • Character limit, starting on new line... I don't see .steam_exec_test.sh anywhere on my computer, do you know what directory it's in so that I can get more specifics? Let me know if that feedback helps. I really appreciate your help with this!
    – Chris B
    Jan 5 at 1:08
  • @ChrisB: In traditional Unix file modes, there are three permissions, each of which can be granted separately to three sets of people: Read, Write, Execute, and Owner (sometimes "User"), Group, Other. Checking for read/write is completely irrelevant, because Steam is complaining about execute. If execute permissions are denied to a directory, then that prevents all access to the contents of that directory.
    – Kevin
    Jan 5 at 4:02
  • Ok I see. So why does steam still say that the steamlibrary directory is not executable even when I mount it with the exec option in fstab? Is there a command that I could apply to the directory to make it executable so that steam will accept it?
    – Chris B
    Jan 5 at 13:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .