Ext4 secondary drive not accepted by Steam on Linux

Ext4 secondary drive not accepted by Steam on Linux - Black Train Near Tree

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!



Best Answer

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.




Pictures about "Ext4 secondary drive not accepted by Steam on Linux"

Ext4 secondary drive not accepted by Steam on Linux - People in old locomotive on railroad
Ext4 secondary drive not accepted by Steam on Linux - Man and Woman in White and Brown Inflatable Pool
Ext4 secondary drive not accepted by Steam on Linux - Man in Gray Shirt Driving Car



How do I add another drive to Steam Linux?

Assigning Multiple Drives to Steam on Linux
  • Step 1: View All Partitions on Your System. ...
  • Step 2: Make a Note of Your Drive IDs. ...
  • Step 3: Edit the Fstab File. ...
  • Step 4: Create Mount Points. ...
  • Step 5: Restart and See If It Worked. ...
  • Step 6: Configure Steam Library Folders. ...
  • Step 7: Add a New Folder. ...
  • Step 8: Set the Default Folder.


  • How do I save Steam games on an external hard drive Linux?

    What is this? Use the drop-down menu to select the new Steam Library you created on your USB device. Then, click the \u201cMove Folder\u201d button to move your video game to the new library. When the installation folder is moved to the new Steam Library on the USB device, your game will be playable from USB.

    Is Linux compatible with Steam?

    Steam is available for all major Linux distributions.

    Are most Steam games compatible with Linux?

    Play Windows Games With Proton/Steam Play Thanks to a tool from Valve called Proton(Opens in a new window), which leverages the WINE(Opens in a new window) compatibility layer, many Windows-based games are completely playable on Linux through Steam Play.



    How to Install Steam Games to an External or Second Hard Disk Drive in Ubuntu Linux




    Sources: Stack Exchange - This article follows the attribution requirements of Stack Exchange and is licensed under CC BY-SA 3.0.

    Images: Pixabay, E M, Ron Lach, Kampus Production