Fstab automount and permissions confusion

Hi all,

I’ve been cruising along on EOS on both of my laptops for a few months now. As a credit to this community, this is the first time I’ve felt completely unable to find a solution to what I’m trying to accomplish (though it seems like it should be a simple matter)

I recently installed a fresh WD Blue 1TB M.2 NVME drive into one of my laptops for the purpose of media and Steam library storage for both the EOS and Windows installs on the machine. I’m using the drive as a single partition. From what I’ve gathered for cross-platform compatibility, exFAT or NTFS are the best options for formatting and I have tried both in all of the following scenarios. I’ve had no problem figuring out how to partition the drive, and I’ve been getting my feet wet with fstab and successfully have it formatted and mounting at boot to where I want it to be, but that’s where my luck and rudimentary Linux knowledge has seemingly run out.

Upon getting it mounted the first time, I immediately tried to get Steam on Linux set to use a folder there instead of where it had been, and got the “New Steam library folder must be on a filesystem mounted with execute permissions” error. The solutions I’ve found for this are all suggesting adding “exec” to the fstab options, but unless I’m doing something wrong that doesn’t seem to have an effect.

Additionally, as far as day-to-day storage usage is concerned, I’m in a permissions snafu. Seemingly I can only write to the drive as root and I can’t figure out a way to use it as a user. Most tutorials I’ve seen for adding a hard drive to Linux mention to either use chown on the folder the drive is mounted to, or the “user” option in fstab, but neither seem to work. The fstab edit has no apparent effect, and attempting to “sudo chown” the target mount folder seems to have a weird result. With the drive unmounted, it works as expected and I can see the permissions readout change in my terminal. Upon mounting it either manually or at boot however, the permissions appear to revert back to root only. With the drive mounted, running sudo chown on it spits back “Operation not permitted”.

I feel like I’m chasing my tail troubleshooting this, any suggestions?

Current fstab entry for the drive looks like this:
UUID=E37E-EF91 /mnt/storage exfat rw,user,exec,dev,suid,auto,async,noatime 0 0

Best to show the full fstab entries.

cat /etc/fstab | eos-sendlog

Edit: [Tutorial] How to Permanently Mount External/Internal Drives in Linux

Did you try changing the owner and permissions of the /mnt/storage folder before mounting to that folder? Move rw and exec to the end of the options to ensure those take effect at the end?

I’ve had this issue before and I dont remember what the specific change was that fixed it for me.

Example of my working fstab entries:

UUID=826abf9e-d9e2-4edf-a7f1-3364afdd470c   /mnt/btrextra       btrfs     space_cache=v2,autodefrag,compress-force=zstd:1,rw,exec,noatime                                                                     0 0
UUID=3da18f53-2a49-4a6b-9022-3f1cd67f2d54   /mnt/steam            btrfs     subvol=/@steam,ssd,nodatacow,space_cache_v2,rw,exec,noatime                   0 0

Both those mnt folders are owned by my user and have full rwx permissions on them.

Full current fstab (The line of the drive in question has changed as I’ve been tinkering more to no avail)

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=5523-67B3                            /boot/efi      vfat    umask=0077 0 2
UUID=1550562f-1a61-46be-af96-f90452ee72ca swap           swap    defaults,noatime 0 0
UUID=7d292092-51cb-4bd6-bdd6-d3172c0e140b /              ext4    defaults,noatime 0 1
UUID=b23c1f06-43f8-4464-ba88-d9eaa6b46a8c /home          ext4    defaults,noatime 0 2
UUID=E62F-59A4 /mnt/data exfat user,noatime,rw,exec 0 2

I somehow hadn’t found that tutorial in my searches, but it still is giving me the same result. I can only work with the drive as root.

That’s what’s confusing me the most, I have indeed tried to set the permissions before mounting. I even started over with the step by step tutorial ricklinux linked above, and when checking permissions before mounting it is indeed owned by my user and has full rwx. Upon mounting however, the permissions change back to being owned by root and the user only has r-x. So I do seem to have execute privileges now, but I still don’t have any write privileges to put data on it in the first place.

You have to mount it first before changing permissions. :thinking:

Edit: So you add the uuid to fstab with what ever you are naming it mine is /data

sudo mkdir /data
sudo mount /data
sudo chown -R ricklinux:ricklinux /data
1 Like

Would this work, with the drive mounted:

sudo chown -R user:user /mnt/data

1 Like

Running

sudo chown -R calea:calea /mnt/data

While the folder is mounted results in the error

chown: changing ownership of '/mnt/data/': operation not permitted

That is the name you have?

Edit: I’m not sure the fstab is correct?

Try mounting it to /media/calea/data

in your fstab

Forum name is subbed for my actual user name, but otherwise yes that is the folder name I’m now using, triple checked. I changed the name from my original post after I started over with the tutorial you linked.

fstab could totally be incorrect

What does this show?

 lsblk -l

Edit: My fstab is this.

UUID=333cc16f-8f62-4d34-a83b-449de831b9b1 /data              ext4    defaults,noatime 0 0

‘lsblk -l’ Output:

NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
nvme0n1    259:0    0 931.5G  0 disk 
nvme1n1    259:2    0 238.5G  0 disk 
nvme1n1p1  259:3    0   150M  0 part 
nvme1n1p2  259:4    0   128M  0 part 
nvme1n1p3  259:5    0  78.7G  0 part 
nvme1n1p4  259:6    0   990M  0 part 
nvme1n1p5  259:7    0  13.6G  0 part 
nvme1n1p6  259:8    0   1.3G  0 part 
nvme1n1p7  259:9    0   512M  0 part /boot/efi
nvme1n1p8  259:10   0     8G  0 part [SWAP]
nvme1n1p9  259:11   0    60G  0 part /
nvme1n1p10 259:12   0  75.1G  0 part /home
nvme0n1p1  259:13   0 931.5G  0 part /mnt/data

Sorry that wasn’t what i was looking for.

lsblk -fm

Edit: I’m not the expert here. :wink:

All good! Here you go:

NAME         FSTYPE    FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS   SIZE OWNER GROUP MODE
nvme0n1                                                                                                  931.5G root  disk  brw-rw----
└─nvme0n1p1  exfat     1.0               E62F-59A4                             931.5G     0% /mnt/data   931.5G root  disk  brw-rw----
nvme1n1                                                                                                  238.5G root  disk  brw-rw----
├─nvme1n1p1  vfat      FAT32 ESP         1C9B-F1BB                                                         150M root  disk  brw-rw----
├─nvme1n1p2                                                                                                128M root  disk  brw-rw----
├─nvme1n1p3  BitLocker 2                                                                                  78.7G root  disk  brw-rw----
├─nvme1n1p4  ntfs            WINRETOOLS  883012AF3012A3EA                                                  990M root  disk  brw-rw----
├─nvme1n1p5  ntfs            Image       0CDC12FCDC12E02E                                                 13.6G root  disk  brw-rw----
├─nvme1n1p6  ntfs            DELLSUPPORT 9E3CD03B3CD00FDF                                                  1.3G root  disk  brw-rw----
├─nvme1n1p7  vfat      FAT32 LINUX BOOT  5523-67B3                             510.7M     0% /boot/efi     512M root  disk  brw-rw----
├─nvme1n1p8  swap      1                 1550562f-1a61-46be-af96-f90452ee72ca                [SWAP]          8G root  disk  brw-rw----
├─nvme1n1p9  ext4      1.0   Root        7d292092-51cb-4bd6-bdd6-d3172c0e140b   34.3G    36% /              60G root  disk  brw-rw----
└─nvme1n1p10 ext4      1.0   Home        b23c1f06-43f8-4464-ba88-d9eaa6b46a8c   41.5G    38% /home        75.1G root  disk  brw-rw----

Okay uuid is correct but i’m not sure about all the other entries?

The clutter on nvme1n1 is the result of me removing the preinstalled Windows 11 but keeping its recovery partitions, installing Windows 10 with a recovery partition, and then installing EOS alongside that. It’s definitely a mess but everything on it works as expected. nvme0n1 is the new disk and is the only thing causing me issues.

In my brief testing, formatting a drive as vfat and mounting it, then changing the ownership to your user of the mountpoint, unmounting and remounting results in a drive the user can write to. Maybe it is a limitation of exfat?

I came across this:
Try adding uid=M,gid=N to the options where M is your user ID and N your group id (you can find these by running the command id in a terminal).

Do you have fuse-exfat

Edit: You may need this package installed?

I didn’t have the option for vfat in gparted, but I went back thru the forum tutorial using NTFS instead and it works as expected. Seems it might indeed be something involving exfat that was causing the problem!