protonscr

new steam library folder must be on a filesystem mounted with execute permissions

steamclosed reviewed
ValveSoftware/steam-for-linux#3679 · opened 2015-01-19 by LorenzoLolli · updated 2021-10-07 · 35 comments · github
LLorenzoLolli 2015-01-19 github

Greetings,

I'm a steam user and I use mostly steam on windows. Now I'm trying to configure my linux box with latest ubuntu with steam.
The client does work fine, until I try to add a steamlibrary to my linux client. When I try to add the library, I get the error "new steam library folder must be on a filesystem mounted with execute permissions".
I've checked both the folder and the mount options, the exec option/permission is present.

Please note:

  • the filesystem used is exfat
  • the disk is mounted trough fuse
  • the steamlibrary is working under windows
  • I've mounted the disk with the same user running the steam client
  • the folder of the steam library is /media/utente/Backup4TB/Giochi/SteamLibrary/
  • the folder permission mask is 700
  • the mount options are "/dev/sdc1 on /media/utente/Backup4TB type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)"
  • my operating system is Linux Ubuntu 14.10 (latest version) 32 bit.
  • my computer has an atom CPU (dual core).

The issue was posted originally here https://support.steampowered.com/view.php?ticketref=2070-ZCVB-3483 and as suggested I've tryed to reset my steam linux installation without solving the issue.

Any help would be appreciated.

Bbjones2094 2015-01-19 github

It doesn't look like you've given the directory execution permissions from the mount options you've shown. It should have the 'exec' option in order to execute off the file system. I think the default_permissions are supposed to include it, but you might want to add it explicitly just in case.

LLorenzoLolli 2015-01-20 github

Hello Jones,

the fstab lacks the mountpoint information of the disk with the steam
library, cause it is a USB external drive. But you can find them in my
original post. For your convenience I report them here:

  • the mount options are "/dev/sdc1 on /media/utente/Backup4TB type
    fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)"

The exec option, is not listed, but it is implicit. I've tryed to
remount my disk with the remount,exec option and still I get the same
result:

utente@muletto:~$ sudo mount -o remount,exec /media/utente/Backup4TB
utente@muletto:~$ mount |grep Backup
/dev/sdc1 on /media/utente/Backup4TB type fuseblk
(rw,nosuid,nodev,allow_other,allow_other,default_permissions,blksize=4096)

as you can see, the exec option does not show up, since it is a default
option.

On 19/01/2015 19.52, Brian Jones wrote:

It doesn't look like you've given the directory execution permissions
from the mount options you've shown. It should have the 'exec' option
in order to execute off the file system.


Reply to this email directly or view it on GitHub
https://github.com/ValveSoftware/steam-for-linux/issues/3679#issuecomment-70542164.

XXaseron 2015-03-08 github

Im encountering the same bug now. i have a second Steam library on an encrypted btrfs raid10 and it worked fine. But now i can not add my Steam library anymore. I get the same error message :-/
exec settings are set:
/dev/mapper/crypt1 on /media/misc type btrfs (rw,noatime,compress=lzo,space_cache,autodefrag)

I still can lauch my games directly, like
/media/misc/Steam/SteamApps/common/FEZ/FEZ

i'm running latest Arch Linux on my system

PPeter200lx 2015-03-14 github

I had this issue as well, however it was related to #3649 and not actually the mount exec at all.

peter@linux /mnt/tb_1.5/Games/SteamLinux$ mount |grep tb_1.5
/dev/sdb6 on /mnt/tb_1.5 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
peter@linux /mnt/tb_1.5/Games/SteamLinux$ mv SteamApps/ s
peter@linux /mnt/tb_1.5/Games/SteamLinux$ mv s steamapps

And now it allows me to re-add /mnt/tb_1.5/Games/SteamLinux as a steam library folder

XXaseron 2015-03-14 github

But it is not related to me. I'm not using ntfs.

XXaseron 2015-03-14 github

I found a workaround/
I created a new folder in my home directory and add it as a new steam library.
mkdir Steam2
After that i use a bind mount to my other library to trick the check.
mount -o bind /media/misc/Steam Steam2

Ppdf 2015-04-24 github

This is definitely a Steam client bug, possibly multiple bugs. One workaround from the forums for importing an existing Steam library path, that resolved the problem for me on a POSIX filesystem, is to create a lowercase steamapps symlink to the SteamApps directory.

Aamedranogil 2015-07-28 github

I have the same issue, but cannot solve it.
The filesystem does mount with exec rights (fs is ext3). In fact I have tried adding a SteamLibrary on root (which must be executable or else Linux would not be working) and the same error message appears.

I've also tried creating a symbolic link and moving the SteamApps folder (like suggested the #3649) with no success in either case.

while trying to create a brand new SteamLibrary, The client seemed to almost accept it, as it creates the "seamapps" subfolder, Yet the same error appears.

I have even removed the client completely, i.e: removed my steam user files (from ~/.steam and ~/.local/share/Steam) and the steam-launcher from the system (removing it from ubuntu software center). When reinstalling everything, and loging in again, the same issue persists.

Hhoehermann 2015-07-28 github

Since today, I experience the same problem. My steam library resides on a NTFS partition. That was no problem for the past years. Moving the library to another partition formatted with ext3 did not help. Strangely, if I launch steam with strace -ff -e trace=file steam in order to observe file access, it works flawlessly again. For me, this illustrates a heisenbug, which is peculiar, but not helpful in any way. I suppose, the implementation of GetMountVolume within the steam runtime is faulty. With the steam runtime disabled Assertion Failed: CApplicationManager::GetMountVolume: invalid index is printed and steam crashes. System is Ubuntu 14.04 64bit.

TTele42 2015-07-28 github

@hoehermann sounds like you are encountering #3936, please take a look at it and see if it matches what you are seeing better than this.

Aamedranogil 2015-07-29 github

@Tele42 It was my case too. Rebooted with kernel 3.13.0-58 and it worked.
Hope next kernel release fixes this issue.

Hhoehermann 2015-07-29 github

@Tele42 Yes, you are absolutely right. Google only returned this issue. I should have asked the github seach. My bad.
I confirm: Using kernel -58 solves the problem. And wine is working again, too.

Rrichoux 2015-07-29 github

Same problem here, and thanks for the kernel 58 trick: it works and I would certainly won't think about that by myself! Does someone has sent a bug report?

Jjerobarraco 2015-07-31 github

Everything was working fine. updated steam and suddenly this problem appears.
So its not a problem in my config but in the steam client.
i got to repair it by setting some flags, but still, this bug sucks.
i have 3 disks, 1 sdd, 1 ext4 and 1 btrfs-compress=zlib, so i really like to take advantage of my layout.
The exact same description as @hoehermann applies to me, including the os version and steam error.

Aamedranogil 2015-07-31 github

latest update kernel -61 works fine.

Ddionysius 2015-08-03 github

I can confirm the latest kernel (-61) works fine!

I was suprised I even didn't need to use a fstab entry. The normal mounting using my filemanager works now like a charm (ext4).

My OS: ElementaryOS Luna (based on Ubuntu 12.04)
My current kernel:

$ uname -a
Linux nb-dionysius 3.13.0-61-generic [#100](/issue/ValveSoftware/steam-for-linux/100)~precise1-Ubuntu SMP Wed Jul 29 12:06:40 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

My permissions on that partition (myself owner and 770 on all files)

$ ls -lah /media/ElementsL/
total 16K
drwxrwx--- 4 dionysius dionysius 4.0K Aug  3 10:52 .
drwxr-xr-x 6 root      root      4.0K Aug  3 11:47 ..
drwxrwx--- 3 dionysius dionysius 4.0K Mai 24 20:49 Laptop_Extern
drwxrwx--- 3 dionysius dionysius 4.0K Aug  3 12:04 SteamLibrary

Since it works now on my ext4 partition, I wont try it on my ntfs partition and will be removed soon maybe.

Debug notes:
I was trying that last week and I had the same error as OP wrote, but I discovered something special:
When you go to Steam -> Settings -> Downloads -> Steam Library Folders. The list was completely empty. The the error above might also affect the default library location (.local/share/steam) not showing up. I just saw that and wanted to note that.

Jjerobarraco 2015-08-03 github

I confirm dionysius' post. i removed my exec from fstab and still works

$ uname -a
Linux nande-desk 3.13.0-61-generic [#100](/issue/ValveSoftware/steam-for-linux/100)-Ubuntu SMP Wed Jul 29 11:21:34 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

#sdd disk (that's why i have so many links)
UUID=2ed24ecb-6ac0-445d-9cc6-8a26f3cd9b0d /               ext4    relatime,discard,commit=900,errors=remount-ro 0       1
UUID=2fe24200-43c6-4cb4-a2ca-50f98c73c608 none            swap    sw              0       0
#disco normal
/dev/sdb1       /mnt/hdd        ext4    relatime,auto,rw,errors=remount-ro      0 2
#compressed btrfs disk, the other reason i have many links
/dev/sdb3       /mnt/hddb       btrfs   defaults,auto,rw,compress=zlib  0 1
Uurban48 2015-08-09 github

what fixed it for me was this: https://github.com/ValveSoftware/steam-for-linux/issues/730
it was the "user" option in my fstab, after removing it and remounting everything worked

Mmnori 2015-08-23 github

@Peter200lx's solution worked like a charm for me. Seems that they changed something and that SteamApps should now be steamapps.

?ghost 2015-11-09 github

@urban48 thanks a lot, you saved my time. I was trying to mount old library via NFS volume. Removing user option worked for me too.

Aair 2016-10-16 github

Thank you @Peter200lx for the simple fix for me.

Mmr-gosh 2016-12-20 github

OK this really is a missleading error message!
removing the "user" & "users" option from the mountpoints resolved it for me too...
So thanks for the hint and too sad its still present...

I am on an internal HDD but its LUKS encrypted...

Ttomaszg7 2017-02-23 github

I also have the problem with NFS mount and even without "user" option I can't get it to work. My mount options are:

(rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.2.17,mountvers=3,mountport=45737,mountproto=udp,local_lock=none,addr=192.168.2.17)

and fstab options: "vers=3,defaults,auto,nofail,soft,exec"

LLinuxFrusty 2018-12-17 github

I fail to understand how this same problem is happening to me in the very end of 2018. Wtf.
Linux Leap 15.0

LLinuxFrusty 2018-12-17 github

In the end, what did it for me (and I have no linux knowledge), was, I rightclicked the partition once I had opened it in the filemanager, by now it was aptly named FU, then chose "properties" and subsequently "Permissions". In "advanced" i followed my hunch and added " Root" and my username as "Named users" with write and read permissions.
Edit: It forced me to empty everything first on that partition! Even the little file with LostandFound that you can only delete as superuser.

Don't ask me why this shit worked.
Before that I spent more than a day looking for a solution, none was begotten. I reformatted till I was blue in the face and I filled my already full to the brink " I fucking hate Linux" bag to the point of spilling.
Need a Linux course I guess. I mean, Fuck Windows, but wtf is this commandline shit that all the elitists expect you to know before helping.

Jjagdtigger 2018-12-28 github

Same thing going on on my minipc too, mount shows exec flag:
[code]//::/Internal_HDD_2 on /mnt/smb/steam_library type cifs (rw,relatime,vers=3.0,cache=strict,username=x,domain=y,uid=1000,forceuid,gid=1000,forcegid,addr=::,file_mode=0777,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)[/code]

Steam complains about missing exec flag, even though its there... :S

Ssubins2000 2019-01-09 github

I fixed it by repairing the filesystem :

sudo ntfsfix /dev/sdb5
DDexy2811 2020-12-15 github

@subins2000 that worked for me too. Thanks!

TThisNekoGuy 2021-10-03 github

@gdrewb-valve
I have this issue with a BTRFS partition and btrfsck claims there's no problem with the partition :/
Steam just doesn't want to start a library on it for some reason I don't understand

The file permissions are:
image

With the partition group set to Users and my FSTAB entry for it as:

# /dev/sdb3 extraStorage
UUID=9d14e17d-66d4-41e7-95a4-8125f75b4d2b   /mnt/extraStorage   btrfs   rw,relatime,users,nodev,nofail,x-gvfs-show                                                          0 2

With this set up, there's no reason why Steam should be having trouble creating a library

Distro: Arch Linux
Kernel: Linux 5.10.61-195-tkg-upds
CPU: Ryzen 3700X

PPlagman 2021-10-05 github

If you exit Steam and re-run it from a terminal, do you see anything in the console output when you try to add the library and it reports a failure? Also, what's the exact error displayed by the Steam UI?

TThisNekoGuy 2021-10-05 github

terminal-output.log
image

These lines occur when attempting to add the library and it throws the error:

src/tier1/fileio.cpp (5015) : Assertion Failed: BIsOpen()
src/tier1/fileio.cpp (5015) : Assertion Failed: BIsOpen()
...
/tmp/dumps/crash_20211005154711_113.dmp
src/clientdll/shadercachemanager/shadercacheimplfossilize.cpp (240) : Assertion Failed: IO error trying to write disk cache!
src/clientdll/shadercachemanager/shadercacheimplfossilize.cpp (240) : Assertion Failed: IO error trying to write disk cache!
...
crash_20211005154711_113.dmp[3932583]: Finished uploading minidump (out-of-process): success = yes
crash_20211005154711_113.dmp[3932583]: response: CrashID=bp-021a7752-afc6-40ff-aa61-72e0e2211005
crash_20211005154711_113.dmp[3932583]: file ''/tmp/dumps/crash_20211005154711_113.dmp'', upload yes: ''CrashID=bp-021a7752-afc6-40ff-aa61-72e0e2211005''
TTTimo 2021-10-05 github

That assert isn't likely related to your problem. Your log ends with sh: line 1: /mnt/extraStorage/Gaming/SteamLibrary/.steam_exec_test.sh: Permission denied though ..

TTTimo 2021-10-05 github

Ok yes, problem identified, thank you for the log! I will update this thread once we have a fix.

TTTimo 2021-10-06 github

So, despite some bugs in the Steam client's flow when it comes to verifying whether it's able to set executable permissions on files (which we'll fix), I suspect your mounted filesystem is indeed effectively noexec:

From the mount man page for the users option: Allow any user to mount and to unmount the filesystem, even when some other ordinary user mounted it. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid).

Since you are not specifying exec explicitly, I think this means there are no execution permissions and Steam is correctly bailing out?

TThisNekoGuy 2021-10-07 github

Since you are not specifying exec explicitly, I think this means there are no execution permissions and Steam is correctly bailing out?

It seems this way, apparently; it hadn't occurred to me at all that I had to give that partition exec in the fstab file if users was used, thanks