If you’re running Steam on a GNU/Linux distribution, and you try to set a new library location on an SD card, you’ve probably run into this dreaded error message: “New Steam library folder must be on a filesystem mounted with execute permissions”. This happened to me with a FAT32 SD card, but as far as I know it could happen to SD cards formatted in other ways as well. Regardless, this quick guide will show you how to fix this error (by editing your fstab) so that you can put all your Steam games on an SD card and preserve your hard drive space. This should also work for you if you’ve had problems writing files to your SD card for similar issues with execution permissions. In any case, try these steps before listening to the people online who say you can’t set a Steam library on a FAT32 SD card.
First, gather all your SD card info
Before you edit your fstab, you first need to know some information about your SD card. Namely, you need to know its device name, its UUID, and its filesystem type.
Device Name: To find your SD card’s device name, type sudo fdisk -l in a terminal. Now all of your connected disks will be shown, including your hard disk. Find the device which has the same amount of storage as your SD card (it is likely near or at the bottom), and note its device name. Also note that your disk might be called /dev/sda or /dev/mmcblk1, but the partition on your device will be called /dev/sda1 or /dev/mmcblk1p1. You want the device name of your partition, not just the disk, so make sure you note the longer device name that ends with a number.
UUID: To find your SD card’s UUID, type sudo blkid in a terminal. Find your device name that you got from last step (either /dev/sda1, or /dev/mmcblk1p1, or something), and note the corresponding UUID (not the PARTUUID, but the UUID).
Filesystem Type: While still on the output of sudo blkid, note the “TYPE” after your UUID. If your SD card is formatted as FAT32, it is vfat.
Now you have all the information you need, and are almost ready to edit your fstab, but first need to make a folder on your home directory.
Make a new folder on your home directory
This part is easy. Just open a terminal, type cd to make sure you’re in your home directory, then type sudo mkdir SD. This will make a new folder called “SD” in your home directory, and this is where we’ll mount your SD card. Now you’re ready to edit your fstab.
Editing your fstab
To edit your fstab, type sudo nano /etc/fstab into a terminal. This will come up with all of your mounted disks, including your root directory, your boot, and others. All the way at the bottom, type:
# SD
UUID=”insert your UUID here” /home/”your username”/SD vfat (or your other filesystem type) defaults,auto,exec,fmask=0077,dmask=0022,rw.uid=1000,gid=1000 0 1
Hit tab for each place I put a few spaces, and your fstab will be nicely lined up. Remember, you need to insert your own UUID, your own directory path, and your own filesystem type, but then you can copy exactly the rest of what I put there.
Now just hit CTRL+o to write out your changes, and you should be good to go. Now, reboot your computer, and your SD card should be mounted in /home/”your username”/SD, at which point you are ready to write whatever you want to it! Steam shouldn’t give you any more problems setting a library there now.
I hope this solved your problem! If not, drop a comment and we’ll see if we can figure it out.
Oh, boy,
Wondering if you are still maintaining this and willing to lend a poor old man a hand making this work.
Hi Ron,
Sorry for my late reply. Unfortunately I do not currently use a Linux distribution myself, so I probably cannot be much help if this process didn’t work. However, if you just have certain questions about the process itself it’s possible I can help! What issues are you having?