ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.25k stars 175 forks source link

Steam Library Folders + NTFS -> Problem with filesystem without execute permissions #596

Closed LukasThyWalls closed 11 years ago

LukasThyWalls commented 11 years ago

With the Custom Steam Library Folders fixed https://github.com/ValveSoftware/steam-for-linux/issues/50#issuecomment-11650405 appears other problem:

newSteamLibraryFolder

Sure it's because the NTFS partition like https://github.com/ValveSoftware/steam-for-linux/issues/304 https://github.com/ValveSoftware/steam-for-linux/issues/178 and others, but meanwhile Steam can detect the problem and avoid it, you could be add a support link into the previous window with information and, why not, instructions for change the mounting system to fix the problem.

Edit: I am trying some solutions to fix without any luck. I will post them later

LukasThyWalls commented 11 years ago

Problem Mismatch. Not related with wrong configuration with NTFS partition in this case.

For anyone with similar problem with fstab configuration, my default configuration:

(...) ntfs defaults,umask=007,gid=46 (...)

works for me

GregoryStec commented 11 years ago

I will suggest to re-open issue. I have experienced similar problem on my UBUNTU 12.10. I could not add any new STEAM Library Folders.

LukasThyWalls commented 11 years ago

If you want to re-open, first you can try to fill all needed information for reporting issues https://github.com/ValveSoftware/steam-for-linux#reporting-issues

Anyway, i have a default partition configuration and i have Steam working without problems. It can be something else, you should open a new issue for that

crysisgod commented 11 years ago

Here what I did, I added a new Steam Library under ~/.local/share, named it SteamLinux from Steam settings. Then I exited the Steam client. Deleted the new created Library manually from ~/.local/share. Then I created a symlink ~/.local/share/SteamLinux to a physical location which is a NTFS Drive, for example /media/Games/SteamLinux.

LukasThyWalls commented 11 years ago

@crysisgod the steam built-in custom library folders system is working smoothly with NTFS partitions or others. This issue is solved from a long time.

Makalani commented 11 years ago

I was having issues as well with NTFS library folders! This issue is not as solved as some might think. I think some people are still having issues and are getting the above error message when trying to setup library folders on NTFS drives.

I am running 12.10 fresh install, fully updated and got this error trying to setup Library folders on my NTFS drives. I solved this only after finding this Blog post: http://cjenkins.wordpress.com/2013/01/01/steam-for-linux-on-optimus-enabled-computer-running-ubuntu-12-04-64bits/#comment-575 (Thanky you again Mr. cjenkins for posting :D )

Linking it somehwere else seems a little dirty to me and simply adding the following to my fstab file and rebooting worked wonders for me: uid=1000,gid=1000,dmask=000,fmask=000 So my entry for my ntfs part looks like this now: UUID=0C2696F92696E34E /media/carl/games ntfs-3g defaults,uid=1000,gid=1000,dmask=000,fmask=000 0 0

Only after doing this did it all work fine. Now I could just add the library under steam and install and run games without issues from the new library.

It took me a couple of days to find a solution to this so I thought I should post my solution here. I hope it helps others too.

Carl

tabletoni commented 11 years ago

Just add exec option in fstab mount options, like this: UUID=1EED92192E15242D /media/cosas ntfs-3g uid=1000,gid=1000,fmask=0000,dmask=0000,exec 0 0 and be sure that mounting directory has rwx permissions

caposguanatos commented 11 years ago

i did this:

get my UUID of my ntfs hard drive (C830024B30024144), google for how to get.. get my UID (user id), you can do using cat /etc/passwd, google for more info..

add in /etc/fstab

UUID=C830024B30024144 /stuff ntfs defaults,uid=1000,rw 0 0

the C830024B30024144 is the UUID of my ntfs hard drive.. /stuff where im going to mount the hard drive uid=1000 is my user id rw are for read/write perms

now i create a /stuff folder (mkdir /stuff)

and finally i reload fstab (mount the hard drives again): mount -a or also you can reboot your pc..

expertoff commented 11 years ago

Thank you very much helped!

pwuertz commented 10 years ago

I'm still having this problem described here, but none of the solutions seem to work. Steam wrongly assumes that my NTFS filesystem doesn't have execute permissions. I can add steam folders on ext filesystems just fine, but when I try to add the one on NTFS I'm getting this error message.

My fstab line:

UUID="90923279923263BE"    /media/games    ntfs-3g   defaults,exec,uid=1000,gid=1000    0  0

Also, I can compile a hello world C application that executes just fine from this fs. So whats wrong?

crysisgod commented 10 years ago

Here is my fstab,

UUID=24147C5434321F07 /media/HDD ntfs-3g defaults,locale=en_US.UTF-8 0 0

Not only my SteamApps but also my whole Steam directory is on this drive. It's working without any problem.

On Wed, Dec 4, 2013 at 4:16 PM, Peter Würtz notifications@github.comwrote:

I'm still having this problem described here, but none of the solutions seem to work. Steam wrongly assumes that my NTFS filesystem doesn't have execute permissions. I can add steam folders on ext filesystems just fine, but when I try to add the one on NTFS I'm getting this error message.

My fstab line:

UUID="90923279923263BE" /media/games ntfs-3g defaults,exec,uid=1000,gid=1000 0 0

Also, I can compile a hello world C application that executes just fine from this fs. So whats wrong?

— Reply to this email directly or view it on GitHubhttps://github.com/ValveSoftware/steam-for-linux/issues/596#issuecomment-29793272 .

crysisgod commented 10 years ago

May be you can try this, what I do, move the Steam directory under ~/local/share to that NTFS Drive, and then make a link to ~/local/share/Steam.

On Wed, Dec 4, 2013 at 4:27 PM, Angel Ashiq angel.ashiq2@gmail.com wrote:

Here is my fstab,

UUID=24147C5434321F07 /media/HDD ntfs-3g defaults,locale=en_US.UTF-8 0 0

Not only my SteamApps but also my whole Steam directory is on this drive. It's working without any problem.

On Wed, Dec 4, 2013 at 4:16 PM, Peter Würtz notifications@github.comwrote:

I'm still having this problem described here, but none of the solutions seem to work. Steam wrongly assumes that my NTFS filesystem doesn't have execute permissions. I can add steam folders on ext filesystems just fine, but when I try to add the one on NTFS I'm getting this error message.

My fstab line:

UUID="90923279923263BE" /media/games ntfs-3g defaults,exec,uid=1000,gid=1000 0 0

Also, I can compile a hello world C application that executes just fine from this fs. So whats wrong?

— Reply to this email directly or view it on GitHubhttps://github.com/ValveSoftware/steam-for-linux/issues/596#issuecomment-29793272 .

pwuertz commented 10 years ago

Thanks, the symlink workaround worked! Nevertheless, steam's assessment of the NTFS partition being non-executable is wrong and should be fixed.

suchipi commented 10 years ago

Still having this issue, despite setting my fstab with the correct uid and permission masks. Steam doesn't correctly evaluate execute permissions on the ntfs partition. The only way I can add the data on the partition as a steamlibrary is through a symlink, which works fine, but isn't particularly user-friendly. This issue should probably be re-evaluated.

Edit: Actually, scratch that. I can symlink ~/.steam/Steam/SteamApps to the steamapps folder on my NTFS partition and have it work, but even through a symlink I can't add the partition as a second steam library.

shanesmith commented 10 years ago

As far as I can tell, exec isn't a valid option for ntfs-3g mounts (can't find it in man ntfs-3g), so it seems to me that Steam should first detect the ntfs mount type.

In any case, the symlink trick worked for me also.

kurumushi commented 10 years ago

Here is basically the rundown: The partition has to have permissions to make executables. If I mount my ntfs partition with fmask=133,dmask=022. I can go into directories, but I can not mark files as executable, 'chmod +x file' will not give a file execute permissions. This is what steam is looking for, not directory execute permission, but permission to mark files as executable. This is easily solved by mounting the partition with rwx permissions.

As to the workaround involving symlinking your user folder to the alternate partition, this does work. I don't know if it will cause problems with any games (for example a launcher trying to execute the main game.) But the biggest problem with this workaround is that free space on your /home/ partition is used to calculate available space, not free space on the linked partition. this can cause some games not to install if, like me, your home partition is relatively small.

Unfortunately there is no easy solution. NTFS does not support an execute permission flag natively, as windows uses file extensions to determine executables. I believe there is plans for extended posix permissions in NTFS-3g, no idea if they are or will be implemented.

tumbly commented 9 years ago

I just encountered that bug, here is some details:

Debian GNU/Linux 8 (jessie)
Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u4 (2015-09-19) x86_64     GNU/Linux
Up to date as of today Oct 16

"About Steam" 
Built: Oct 14 2015, at 12:40:46
Steam API: v017
Steam package versions:14444853545

The workaround involving a symlink works like a charm, please add this trick hidden behind a GUI. That would be sweet for usability as many people facing the problem won't ever find this issue on github.

mdalacu commented 6 years ago

Use this post that i have wrote: https://mdalacu.blogspot.ro/2018/01/how-to-mount-ntfs-partition-in-linux.html

kurumushi commented 6 years ago

@mdalacu That doesn't really solve the problem, it just makes every single file on the ntfs partition have 777 permissions. The real issue is a drawback of NTFS, that there is no way to selectively make files and folders have different permisions, it's all or nothing.