Ext4 secondary drive not accepted by Steam on Linux



  • 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!



  • Based on some of the comments on https://github.com/ValveSoftware/steam-for-linux/issues/730 , 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 https://linux.die.net/man/1/chmod .
    • 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 https://linux.die.net/man/8/groupadd and https://man7.org/linux/man-pages/man1/chgrp.1.html , and/or use https://linux.die.net/man/1/chown 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 https://linux.die.net/man/8/mount but the permanent fix will depend on how your OS is mounting the drive.
    • https://man7.org/linux/man-pages/man3/system.3.html 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.




Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2