How To Setup External Drives With Steam Flatpak

Since this topic doesn't relate to Zorin OS directly in any way that I can think of, I decided to post this in the lounge, even if its probably not the best place for it. I just had to go through all this, to set this up for a family member.

With Windows, all you have to do is plug in your formatted external drive, go in Steam, and tell it to use the external drive for your games library. But on Linux, its a lot harder. First and formost, when you buy a hard drive, it never comes preformatted for Linux.

The first thing your going to want to do after plugging in your new external drive, is go into your DISKS utility, and format the DISK to use GPT. Once done, create a EXT4 partition using available space. Once done, click on the > symbol to mount the drive.

For security reasons, the drive is automatically permissioned to ROOT only, this is a problem, the permissions need to be changed. Hold CTRL ALT F2 to open terminal. Sudo -i then enter your password. Now type nautilus and this will open Nautilus with root privileges.

Right click on your external drive and go to properties. Now go to permissions. Change everything that says Read Only, to Create And Delete files. Go to the extra permissions for enclosed files, and do the same there.

After your done with that, you might notice a couple of folders already on the drive called Lost In Found, and Trash, which are only viewable, if you have hidden files turned off by holding CTRL H. If you set your permissions correctly, you will see these files under the NON-ROOT version of Nautilus.

Make sure to delete those folders, as Steam has extreme oddities about it, in the fact it only wants to create a Steam library on the drive, if there are no other files and folders on the drive. If anything is already on the drive, Steam acts like a toddler who wants it, its way right now.

By default, Flatpak apps have no direct communication with ROOT portions of your Linux OS, supposedly this is for security reasons, I say its a big giant unnecessary PITA. Supposedly the next step can be done by terminal, but I never could get it to work.

Easiest way is to install the app called FLATSEAL. The goal, is to make Steam Flatpak see the /mnt root directory. There is a section in there to add directories, and if you scroll down, you'll find it. Just click on the + symbol, and simply type in /mnt.

If you've done everything correctly, you should be able to go into Steam now, go to settings, then to downloads, then to steam library. You should be able to add a library on your external drive by clicking on the + symbol. Navigate to the /mnt directory, choose that, and you should be able to go from there.

Yes, I know this whole ordeal is extremely convoluted and freaking annoying. But this is what you get when you combined the oddities of Linux, with the oddities of Flatpak. All in the name of security, but reality is, your general user who is nearly computer illiterate, is going to have a brain freeze.

Hope this helps...

1 Like

Moved to Tutorials.

2 Likes

Why all this if you can download the .deb package on the steam site ?

1 Like

Because, while a DEB package shouldn't be put online with missing dependencies, it had oodles of them. Steam was missing so many libraries and other files, much of which couldn't be found in Synaptic. The result is, the DEB version couldn't launch any game. So I returned to Flatpak, which can actually launch games.

2 Likes

That is a very good example of Flatpak use case.
While I prefer deb installer as a principal, I could see Flatpak has an edge in such scenario.

2 Likes

I installed Steam from terminal (apt = .deb) and there were no missing dependencies and Steam has run perfectly fine ever since.

1 Like

I also performed:

sudo apt install steam

And had absolutely no issue. I didn't even have to add a repository.

1 Like

Same here haha.

Those of us that installed through apt through terminal seem to have had less problems but... this brings us back to the O.P. and this:

Having options variety can help.

I get a weird issue today with steam, i installed via command prompt and via the .deb package and it refuses to install packages that got downloaded.

From the terminal i get this:

michel@michel-predator-g9-793:~$ steam
Running Steam on zorin 16 64-bit
STEAM_RUNTIME is enabled automatically
Steam runtime environment up-to-date!
Steam client's requirements are satisfied
WARNING: Using default/fallback debugger launch
/home/michel/.steam/debian-installation/ubuntu12_32/steam -nominidumps -nobreakpad
[2021-09-18 14:53:03] Startup - updater built Sep 13 2021 22:00:59
SteamUpdateUI: An X Error occurred
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 44
xerror_handler: X failed, continuing
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2021-09-18 14:53:03] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2021-09-18 14:53:03] Using the following download hosts for Public, Realm steamglobal
[2021-09-18 14:53:03] 1. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2021-09-18 14:53:03] Checking for update on startup
[2021-09-18 14:53:03] Checking for available updates...
[2021-09-18 14:53:03] Downloading manifest: http://media.steampowered.com/client/steam_client_ubuntu12
[2021-09-18 14:53:03] Download skipped: /client/steam_client_ubuntu12 version 1631572918, installed version 1631572918, existing pending version 0
[2021-09-18 14:53:03] Nothing to do
[2021-09-18 14:53:03] Verifying installation...
[2021-09-18 14:53:03] Performing checksum verification of executable files
[2021-09-18 14:53:04] Verification complete

To fix this, reinstall your nvidia driver. I can confirm it works on the driver from the nvidia site.

  1. In terminal write, sudo telinit 3
  2. Hit ctrl+alt+f1 and enter your username and password.
  3. Assuming your nvidia driver is in the home directory. In terminal write, sudo bash NVIDIA-Linux-x86_64-470.63.01.run
  4. Follow the installer, it says it detected your nvidia driver and it will get uninstalled if you proceed. Hit everything on ok/yes and reboot.
  5. Start steam and it's working.

Congratulations, welcome to my world!

See, its not so easy is it?

Walk a mile in my shoes, and you see why I went with Flatpak.

But I am too tired to stay up any longer, I must get some sleep. Goodnight :night_with_stars:

2 Likes

It is, i forgot to add you need to reinstall your nvidia driver haha