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!
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 inls -l
's output). But Steam created this script, and it should have set the appropriate permissions automatically. Fix withchmod(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 withgroupadd(8)
andchgrp(1)
, and/or usechown(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 yourmount
output. For completeness, this can be temporarily fixed withmount(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"
How do I add another drive to Steam Linux?
Assigning Multiple Drives to Steam on LinuxHow 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