ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.18k stars 173 forks source link

Detect if a user is attempting to use Proton on a NTFS drive (Non-EXT4) #8274

Open ruineka opened 2 years ago

ruineka commented 2 years ago

I've been helping new users use Proton and I pretty regularly find people wasting their time and datacaps to only find out the hard way that they are not able to play games using a NTFS formatted drive. I think it would be wise for Steam to detect what drive a user is attempting to launch a game with using SteamPlay saying (Launching a game on a non EXT4 drive is almost guaranteed to fail, Try anyway?). As far as I know their is no indication anywhere within steam telling the user not to use NTFS formatted drives with SteamPlay and when a game fails to launch the user gets frustrated.

smcv commented 2 years ago

Proton on NTFS drives can be made to work, but it's less robust than on Unixish filesystems like ext4, xfs or btrfs, and it needs specific mount options. More information here: https://github.com/ValveSoftware/steam-runtime/issues/434#issuecomment-885605450

insanemal commented 2 years ago

@ruineka It doesn't have to be ext4. Most posix complaint filesystems are fine. I use XFS on all of my devices without issue.

Your "Non ext4" statement is patently false

ruineka commented 2 years ago

@ruineka It doesn't have to be ext4. Most posix complaint filesystems are fine. I use XFS on all of my devices without issue.

Your "Non ext4" statement is patently false

I've never used anything other than EXT4, Fat, and NTFS. I don't know anything about other filesystems. The NTFS not working properly with Proton without tinkering still is an issue though and many new users try Linux, download steam and run games from a NTFS drive and the result is clicking play..it shows "running" only to show play again.

ruineka commented 2 years ago

Oh wow, judging by this Valve already made a prompt addressing this issue https://www.reddit.com/r/linux_gaming/comments/rwggd8/im_getting_an_error_called_new_steam_library_must/?utm_medium=android_app&utm_source=share

Magi-KS commented 2 years ago

side note, when used with the NTFS kernel module in latest linux(5.15), it freezes my system and i have to use chkdsk /F on it if I want to mount it again in linux.

Mitsunee commented 2 years ago

During my years on linux so far I've had three instances of steam automatically installing Proton and Runtime Soldier on my old NTFS HDD that I keep my games on. I have always had my EXT4 drive set as the default install location and that was ignored every time. Not sure how this is still a thing that can happen given that it's always been known that steam's runtimes do not work properly on NTFS.

Critified commented 1 year ago

Good evening,

Many users i guess like myself tried to use huge pre-existing Steamlibrary drive to save data and disk storage. I had over 4TB of games on a explicit Steamlibrary drive which I tried to use under linux, not only it does not start games, it actualy physicaly broke the rest of the drive, it went permanently read only as far as root folder, with no possibility to delete anything at all and full format was required. It got the data that shouldnt be touched by steam write protected.

Personally I thought some sort of rights management issue was causing this, so I tried to format it to only existing permission-less file system both Ms and Unixes sort of 'support' which is exfat but that got me into even more trouble.

I would suggest that steam should upon detecting ntfs/fat type partition at the very least make a very very very clear warning to user that using it may make all existing data on the partition unreadable, as this partition type has limitations. Long term suggestion would be to fix it and make sure people can use NTFS drives with no user input required. Theres going to be many many people that do not want to redownload hundreds of gigs of games. This will only lead to more frustration. Was I only a bit less patient or experienced I would have wiped pinguin already.

Mitsunee commented 1 year ago

Good evening,

Many users i guess like myself tried to use huge pre-existing Steamlibrary drive to save data and disk storage. I had over 4TB of games on a explicit Steamlibrary drive which I tried to use under linux, not only it does not start games, it actualy physicaly broke the rest of the drive, it went permanently read only as far as root folder, with no possibility to delete anything at all and full format was required. It got the data that shouldnt be touched by steam write protected.

Personally I thought some sort of rights management issue was causing this, so I tried to format it to only existing permission-less file system both Ms and Unixes sort of 'support' which is exfat but that got me into even more trouble.

[...]

@Critified First of all, are you sure the drive is mounted correctly? NTFS drives appearing as readonly is a very common figuration issue with the NTFS drivers on linux. For reference my HDD is mounted with the options ntfs auto,nofail,noatime,rw,user,exec 0 0 in my fstab file.

I also don't exactly understand how you went from "write protected" to "unreadable". I'd also like to note that SSDs in particular are supposed to go into read-only mode if they detect the end of their lifespan approaching to make sure the user can recover their important files before the flash storage dies.


As for the actual topic of this issue: Libraries on NTFS mostly work fine, you'd expect as much for windows games on a windows filesystem at the very least. What is causing problems is when steam installs proton and WINE prefixes to an NTFS drive as described in my comment above. One trick I have found is setting up a symlink between your drives like this:

ln -s $HOME/.steam/steam/steamapps/compatdata /path/to/your/drive/steam/steamapps/compatdata

This makes sure steam returns to your non-NTFS drive (in this case my EXT4 system SSD) to install wine prefixes there. As for proton you would have to uninstall and manually reinstall it and the other steam runtimes to your non-NTFS drive.

TL;DR: Steam does seemingly no attempt to detect the filesystem of a location and should automatically fall back to a non-NTFS drive when installing runtimes and compatdata. It also still ignores the default library when automatically installing runtimes as a dependency for running a game from another drive.

Critified commented 1 year ago

Well let me go step by step then sir, First when I added existing library to penguin steam, it downloaded few redistributable things all went fine. I started Two point hospital and it did run no problem, I didnt think twice about it. After a restart or two i noticed steam is downloading some things to games, looked like about 50-600 mb per game which I didn't think twice about either, I was under impression steam might be adding linux binaries and linux packages to games that require it. However then it went south fast, steam started redownloading the same few games over and over again displaying no error or issue to me which I though was odd. At this point I got curious, and realized that even logged in as root I could no longer add or remove anything from ANYWHERE on the drive, which i previously could because i copied stuff in and out of it with no problem.

[root@lumos Toshiba]# mkdir ./testdir mkdir: cannot create directory ‘./testdir’: Read-only file system

It was running default fstab settings that nobara/fedora linux uses for a ntfs hard drive (its not ssd). I thought some permissions did break so tried chmoding it but no luck, access denied. I thought this way because generaly with fstab, either it works or it doesnt, if you can write to drive, copy, move files etc normaly then it generally stays this way until you misconfigure somthing later down the road.

After a full format which fixed the issue, tried exfat which ended up formated as well as it broke too. Then ntfs again just to double check. This time I tried the fstab suggested by a blog author described as 'most compatible settings' for ntfs steam library but it broke again, I apologize but can't paste the settings back to you as I am running btrfs now. (I remember seeing ntfs-3g, rw, user, etc list was quite long).

insanemal commented 1 year ago

Did you remember to disable fast shutdown in windows? (Or fast boot up, I can't remember what stupid name it has anymore)

I'm betting you didn't, which would explain mangling both NTFS and exfat file systems.

Also, I don't understand why you're getting snooty this ticket is a dumpster fire. You're missing details, you have a poorly remembered, and even more poorly described situation that has issues that don't match standard behaviour, yet have no logs or other useful sources of information that might allow us to make sense of your ramblings.

You're trying to do something that is on the edge of what is supportable, with next to no factual information, just rough outlines, all the while acting like it's everybody else's fault we can't figure out what you actually did.

Sounds like a great way to get help.

Oh and you're trying to request a feature that isn't required by anybody else. (And probably isn't required by you but you can't properly explain wtf you did so nobody can be sure)

I'm betting you mounted the NTFS volume as your damn home folder too.

Stop being a jackass.

On Mon, 22 May 2023, 11:15 pm Critified, @.***> wrote:

Well let me go step by step then sir, First when I added existing library to penguin steam, it downloaded few redistributable things all went fine. I started Two point hospital and it did run no problem, I didnt think twice about it. After a restart or two i noticed steam is downloading some things to games, looked like about 50-600 mb per game which I didn't think twice about either, I was under impression steam might be adding linux binaries and linux packages to games that require it. However then it went south fast, steam started redownloading the same few games over and over again displaying no error or issue to me which I though was odd. At this point I got curious, and realized that even logged in as root I could no longer add or remove anything from ANYWHERE on the drive, which i previously could because i copied stuff in and out of it with no problem.

@.*** Toshiba]# mkdir ./testdir mkdir: cannot create directory ‘./testdir’: Read-only file system

It was running default fstab settings that nobara/fedora linux uses for a ntfs hard drive (its not ssd). I thought some permissions did break so tried chmoding it but no luck, access denied. I thought this way because generaly with fstab, either it works or it doesnt, if you can write to drive, copy, move files etc normaly then it generally stays this way until you misconfigure somthing later down the road.

After a full format which fixed the issue, tried exfat which ended up formated as well as it broke too. Then ntfs again just to double check. This time I tried the fstab suggested by a blog author described as 'most compatible settings' for ntfs steam library but it broke again, I apologize but can't paste the settings back to you as I am running btrfs now. (I remember seeing ntfs-3g, rw, user, etc list was quite long).

— Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/8274#issuecomment-1557203824, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABUQFU7MKTE5AVFUWEUOULXHNRG3ANCNFSM5JAZAWUQ . You are receiving this because you commented.Message ID: @.***>

Mitsunee commented 1 year ago

*sigh* and here I thought the constant fighting and unprofessional nonsense would be over after I unsubscribed from all the tickets on microsoft products. Makes me question my intention to get involved with open source more. /unsubscribe

insanemal commented 1 year ago

What are you talking about?

Also, since when is steam open source?

On Tue, May 23, 2023 at 7:19 AM Mitsunee @.***> wrote:

sigh and here I thought the constant fighting and unprofessional nonsense would be over after I unsubscribed from all the tickets on microsoft products. Makes me question my intention to get involved with open source more. /unsubscribe

— Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/8274#issuecomment-1558025099, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABUQFTHL6JBNNZ2J2ISFZTXHPJ7TANCNFSM5JAZAWUQ . You are receiving this because you commented.Message ID: @.***>

insanemal commented 1 year ago

Also on the suggestion to "just detect NTFS and put it somewhere else" which I mean sounds great, but where else can you put things?

If the user has done something odd like mounted up an NTFS drive as their home folder none of the standard locations for dot folders are usable. So where else does a non-root user have, by default, sufficient permissions to create files/folders that isn't /tmp? (which should have noexec, so also useless)

It can't be a one size fits all message or it's not really that much more useful than no message. But for it to be actually useful it would need to work out the users config and then figure out if that even allows for a working config. Which will end up with a lot of very fragile logic that only covers a few "sensible" configs. Not to mention all the fun things Microsoft do that plays very fast and loose with on disk consistency. (I'm looking at you fast shutdown). Should Steam be advising people about how to adjust Windows settings as well? (I mean it's too late by that point, the damage is potentially done)

How hard should Valve work at trying to make a very dangerous (to your data) config "Just Work" when doing so makes not losing user data their responsibility?