How can I install and run Steam games on external drive? Because I tried to format the drive in ExFAT, NTFS and btrfs (the same of my machine) but with a filesystem I can install the game but it doesn’t start at all, and with another I can’t add the drive as other location on steam
I found Steam wouldn’t accept my drive unless I gave it the ‘exec’ option in fstab.
I’ve got the bulk of my Steam, Lutris and Heroic game collection on an external USB 2,5" HDD formated as BTRFS with the following options:
nosuid,nodev,nofail,x-gvfs-show,relatime,compress=zstd
It works great and means I can take my Steam library anywhere. I just have to make sure I click “Mount volume” on the disk’s desktop icon before starting Steam, Lutris or Heroic.
I highly recommend ext4 for the game partition. Steam can be picky and it used to not allow anything other than ext4. Also, how is your external drive connected (ie… USB2, USB3)? Is it an SSD?
Which distro? What does
lsblk
in the terminal say?I’m on Arch (btw) and the output of
lsbk
saysloop0 7:0 0 55,7M 1 loop /var/lib/snapd/snap/core18/2790 /var/lib/snapd/snap/core18/2790 loop1 7:1 0 43,2M 1 loop /var/lib/snapd/snap/custom-screen-resolution/27 /var/lib/snapd/snap/custom-screen-resolution/27 loop2 7:2 0 40,8M 1 loop /var/lib/snapd/snap/snapd/19993 /var/lib/snapd/snap/snapd/19993 sda 8:0 0 447,1G 0 disk └─sda1 8:1 0 447,1G 0 part /run/media/joseph/6446da44-5c96-4a5b-95a7-809b5bbccf79 nvme0n1 259:0 0 953,9G 0 disk ├─nvme0n1p1 259:1 0 260M 0 part ├─nvme0n1p2 259:2 0 16M 0 part ├─nvme0n1p3 259:3 0 852,6G 0 part ├─nvme0n1p4 259:4 0 1000M 0 part ├─nvme0n1p5 259:5 0 512M 0 part /boot/efi ├─nvme0n1p6 259:6 0 8G 0 part [SWAP] └─nvme0n1p7 259:7 0 91,5G 0 part /var/cache /var/log /home /var/lib/snapd/snap /
N.B.
sda1
is the external drive.I’m not in reach of a pc to test, but I think the problem is that the partition is mounted temporary. Try making a new mountpoint and adding it to fstab (with noauto iirc, so that your system does not hang when you start with the drive unplugged).
Where can I find the steps for doing this?
Create a dir in a place you like
mkdir
(If it is in a dir where you have no write access, you need tosudo
ordoas
)Unmount the automounted
/dev/sda1
umount /dev/sda1
Then mount sda1 to the newly created dir
mount /dev/sda1
Then you can use genfstab to create a fstab entry. (You maybe need to
sudo pacman -S arch-install-scripts)
genfstab /
This will write a fstab file to stdout (the terminal). Look for the line with , copy it and sudo open the /etc/fstab file with your prefered editor. Add the line at tge bottom and add the flags
rw,user,noauto
to the entry.This way you have to manually mount sda1 every time you boot with
mount /dev/sda1
You can add that to your
.bashrc
or equivalent. (If you don’t plan to remove the disk, you can skip the noauto and the drive will be loaded automatically, but if it is unplugged your system won’t boot normally). Maybe there is a better way, but this way works for me good enough.
Mhhh as btrfs it should work. The only thing I noticed is the you have to stop steam connect your drive and restart steam for it to work properly
My iscsi drive needs a bit to connect so I start steam 30 seconds later after login.
Make sure to use Steam settings to add a Steam Library on the external drive.
Make sure the file system is ext4 and make sure the drive is mounted when you go to add the library on the external drive. A lot of games won’t launch on Linux if the file system isn’t ext4
I use btrfs and have never run into FS issues with Steam. Hopefully the format isn’t actually a problem for anybody else either.
Format it as ext4, set auto flag on fstab and after restart you can select it as secondary library on Steam.
Not sure about the part if you need to select it from Steam again after you reconnect it though.