steam-runtime icon indicating copy to clipboard operation
steam-runtime copied to clipboard

Game in ntfs-3g disks fail to launch

Open rapsys opened this issue 4 years ago • 2 comments

Hi,

My disk is mounted by root with in /etc/fstab : UUID="<UUIDHERE>" /media/data ntfs-3g defaults,uid=0,git=0,umask=0

Mount report : /dev/sdb1 on /media/data type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)

When I try to run Tropico 5 :

cd /media/data/Steam/steamapps/common/SteamLinuxRuntime_soldier
./run ../Tropico\ 5/Tropico5
pressure-vessel-wrap[818347]: E: Unable to set mode of "./bin" in "/media/data/Steam/steamapps/common/SteamLinuxRuntime_soldier/var/tmp-QDO280/usr": fchmod: Opération non permise

With steam log I have :

GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 245620, ActionID 4] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 245620, ActionID 4] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=245620 -- '/media/data/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/media/data/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/media/data/Steam/steamapps/common/Tropico 5/Tropico5'\0
Game update: AppID 245620 "", ProcID 821981, IP 0.0.0.0:0
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Starting app 245620
>>> Adding process 821981 for game ID 245620
GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 245620, ActionID 4] : LaunchApp changed task to Completed with ""
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 821985 != 821982, skipping destruction (fork without exec?)
>>> Adding process 821982 for game ID 245620
>>> Adding process 821983 for game ID 245620
pressure-vessel-wrap[821982]: E: Unable to set mode of "./bin" in "/media/data/Steam/steamapps/common/SteamLinuxRuntime_soldier/var/tmp-J50L90/usr": fchmod: Operation not permitted
Game removed: AppID 245620 "", ProcID 821981 
Uploaded AppInterfaceStats to Steam
Exiting app 245620
No cached sticky mapping in ActivateActionSet.

For me it seems that steam try do do stuff not supported by ntfs-3g, may you please install soldier and other stuff in the local home and not on a hard disk where you may not have all accesses ?

Best regards

rapsys avatar Sep 04 '21 18:09 rapsys

Without compatibility I get :

GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to SynchronizingCloud with ""
GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 245620, ActionID 12] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 245620, ActionID 12] : LaunchApp continues with user response "CreatingProcess"
/bin/sh\0-c\0/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=245620 -- '/media/data/Steam/steamapps/common/Tropico 5/Tropico5'\0
Game update: AppID 245620 "", ProcID 824996, IP 0.0.0.0:0
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Starting app 245620
>>> Adding process 824996 for game ID 245620
GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to WaitingGameWindow with ""
GameAction [AppID 245620, ActionID 12] : LaunchApp changed task to Completed with ""
>>> Adding process 824998 for game ID 245620
Game update: AppID 245620 "", ProcID 824998, IP 0.0.0.0:0
RecordSteamInterfaceCreation (PID 824998): SteamUser017 / User
RecordSteamInterfaceCreation (PID 824998): SteamFriends014 / Friends
RecordSteamInterfaceCreation (PID 824998): SteamUtils007 / Utils
RecordSteamInterfaceCreation (PID 824998): SteamMatchMaking009 / Matchmaking
RecordSteamInterfaceCreation (PID 824998): SteamMatchMakingServers002 / MatchmakingServers
RecordSteamInterfaceCreation (PID 824998): STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats
RecordSteamInterfaceCreation (PID 824998): STEAMAPPS_INTERFACE_VERSION006 / Apps
RecordSteamInterfaceCreation (PID 824998): SteamNetworking005 / Networking
RecordSteamInterfaceCreation (PID 824998): STEAMREMOTESTORAGE_INTERFACE_VERSION012 / RemoteStorage
RecordSteamInterfaceCreation (PID 824998): STEAMSCREENSHOTS_INTERFACE_VERSION002 / Screenshots
RecordSteamInterfaceCreation (PID 824998): STEAMHTTP_INTERFACE_VERSION002 / HTTP
RecordSteamInterfaceCreation (PID 824998): STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001 / UnifiedMessages
RecordSteamInterfaceCreation (PID 824998): STEAMCONTROLLER_INTERFACE_VERSION / Controller
RecordSteamInterfaceCreation (PID 824998): STEAMUGC_INTERFACE_VERSION002 / UGC
RecordSteamInterfaceCreation (PID 824998): STEAMAPPLIST_INTERFACE_VERSION001 / AppList
RecordSteamInterfaceCreation (PID 824998): STEAMMUSIC_INTERFACE_VERSION001 / Music
Setting breakpad minidump AppID = 245620
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198052220050 [API loaded no]
Game removed: AppID 245620 "", ProcID 824998 
Game 245620 created interface STEAMAPPLIST_INTERFACE_VERSION001 / AppList
Game 245620 created interface STEAMAPPS_INTERFACE_VERSION006 / Apps
Game 245620 created interface STEAMCONTROLLER_INTERFACE_VERSION / Controller
Game 245620 created interface STEAMHTTP_INTERFACE_VERSION002 / HTTP
Game 245620 created interface STEAMMUSIC_INTERFACE_VERSION001 / Music
Game 245620 created interface STEAMREMOTESTORAGE_INTERFACE_VERSION012 / RemoteStorage
Game 245620 created interface STEAMSCREENSHOTS_INTERFACE_VERSION002 / Screenshots
Game 245620 created interface STEAMUGC_INTERFACE_VERSION002 / UGC
Game 245620 created interface STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001 / UnifiedMessages
Game 245620 created interface STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats
Game 245620 created interface SteamFriends014 / Friends
Game 245620 created interface SteamMatchMaking009 / Matchmaking
Game 245620 created interface SteamMatchMakingServers002 / MatchmakingServers
Game 245620 created interface SteamNetworking005 / Networking
Game 245620 created interface SteamUser017 / User
Game 245620 created interface SteamUtils007 / Utils
Game 245620 method call count for IClientAppManager::GetCurrentLanguage : 1
Game 245620 method call count for IClientUtils::RecordSteamInterfaceCreation : 16
Game 245620 method call count for IClientUtils::GetAppID : 17
Game 245620 method call count for IClientFriends::GetPersonaName : 1
Game 245620 method call count for IClientUser::GetSteamID : 1
Uploaded AppInterfaceStats to Steam
Exiting app 245620
No cached sticky mapping in ActivateActionSet.

When I run it manually :

export LD_LIBRARY_PATH="~/.local/share/Steam/ubuntu12_32/:$LD_LIBRARY_PATH"
/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=245620 -- '/media/data/Steam/steamapps/common/Tropico 5/Tropico5'

A trace shows that the process fail at getting exclusive openat on ./Packs/Lua.hpk

[pid 824908] access("./Packs/Lua.hpk", F_OK) = 0
[pid 824908] openat(AT_FDCWD, "./Packs/Lua.hpk", O_RDONLY|O_NOATIME) = -1 EPERM (Opération non permise)
[pid 824908] access("./CommonLua/Core/autorun.lua", F_OK) = -1 ENOENT (Aucun fichier ou dossier de ce type)
[pid 824908] --- SIGTRAP {si_signo=SIGTRAP, si_code=SI_KERNEL} ---

rapsys avatar Sep 04 '21 18:09 rapsys

may you please install soldier and other stuff in the local home and not on a hard disk where you may not have all accesses ?

The "Steam Linux Runtime - soldier" compatibility tool appears in your library as though it was a game, and you can install it into any Steam library you want to use. https://help.steampowered.com/en/faqs/view/4BD4-4528-6B2E-8327#move

It's normally installed into whichever Steam library you have chosen as your default.

Proton behaves the same - you can move each version of Proton between libraries with the same mechanism.

For me it seems that steam try do do stuff not supported by ntfs-3g

The container runtime can work on ntfs-3g, I've used it like that myself. However, the filesystem needs to be set up to appear as though it's owned by the Steam user. I think I used uid=1001,gid=1001,umask=022 where 1001 is the numeric user ID of the user that will run Steam: that gives everything rwxr-xr-x permissions.

umask=0

This allows every user, including system users, to carry out privilege escalation and gain the privileges of any user who runs programs from the ntfs-3g drive. I would not recommend this permission setting.

smcv avatar Sep 06 '21 13:09 smcv

@kisak-valve, I think we can close this as a duplicate of #434 - as far as I can tell, it's essentially the same issue.

Today's beta releases work around this, to the extent that it's possible to do so (see https://github.com/ValveSoftware/steam-runtime/issues/434#issuecomment-1710491239).

smcv avatar Sep 07 '23 17:09 smcv