2

I'm new to Linux and the Raspberry pi. I'm having trouble mounting my USB 1TB HDD automatically using fstab. It mounts no problem when using something like this in the terminal:

sudo mount /dev/sda1 /mnt/1TB-PiDrive

I've copied the UUID number of the drive and used it in the fstab file:

UUID=c6c93d58-8648-4e33-9178-ca6c1d4043e3 /mnt/1TB-PiDrive auto nofail,uid=1000,gid=1000,noatime 0 0 

but it doesn't automount after boot. Please see the attached screenshots to see my fstab file and drive information. Would the pi store any errors from this file anywhere? Where would I find them?

Any help would be appreciated Thanks Cameron

Fstab File blkid and lsblk info

1
  • 1
    Please don't post pictures of text. Instead paste the text direct into the question.
    – Ingo
    Jun 8, 2020 at 18:34

2 Answers 2

4

One step you may have overlooked was consulting man fstab - in other words, the system manual for creating & maintaining /etc/fstab. Even though it's a bit dated now (Feb 2015 in my bullseye OS), and has at least one error (re behaviour of nofail), it does mostly reflect the software on your system. At least man fstab does a reasonable job of showing the syntax. In addition, the system manual man mount covers additional details on the options for constructing a correct fstab entry. You should read them both.

One of the problems I saw in your fstab entry was that the third field (fs_vfstype) is incorrect. You have put the term auto in the third field, but auto is not a proper entry for the type of file system.

Your question reveals that you correctly identified the type of file system used on /dev/sda1 as ext4 using the commands sudo blkid and sudo lsblk .... THEREFORE: The value ext4 should be used for the fs_vfstype field.

Also note that you could have simplified this by simply using the following command:lsblk --fs. No sudo is required, and the output is in easy-to-read tree format with headings - as shown below: (Note: I've substituted output from my system.)

$ lsblk --fs
NAME        FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINT  
sda
└─sda1      ext4   1.0   PASSPORT2TB 86645948-d127-4991-888c-a466b7722f05    1.5T    10% /mnt/Passport2TB
mmcblk0
├─mmcblk0p1 vfat   FAT32 boot   19E2-67CF                             200.9M    20% /boot
└─mmcblk0p2 ext4   1.0   rootfs 97ca6ca8-5cb1-413f-84d0-569efd4e2c0f   25.8G     7% / 

Your entries in the fourth field (fs_mntops) were as follows:

nofail,uid=1000,gid=1000,noatime

My recommendation for your 4th field (fs_mntops) entries is as follows:

rw,user,nofail

rw: allow read and write on the mounted filesystem
user: allow a user to mount the filesystem - which would include user pi (typically the same as uid=1000,gid=1000, but not necessarily)
nofail: don't stop the boot process if this filesystem cannot be mounted. Note that man fstab says do not report errors, but actually (last I checked) it halts the boot process on failure.

You do not need the noatime option as that is typically used only on devices such as SD cards which have a "wearout mechanism".

Finally, the two 0 (zero) values at the end of your /etc/fstab entry are the fifth and sixth fields. They are fine as is, but 0 is the default for both so they aren't actually needed in your case.

If you'll try this entry in /etc/fstab, I hope it will work. If not, let us know & we'll fix that:

UUID=c6c93d58-8648-4e33-9178-ca6c1d4043e3 /mnt/1TB-PiDrive ext4 rw,user,nofail 0 0

Testing your /etc/fstab entries:

You can test/experiment with various options in your /etc/fstab entry without having to reboot:

  1. unmount the drive (if it's mounted):
sudo umount /mnt/1TB-PiDrive
  1. make a change to your /etc/fstab entry; e.g.:

FROM:

UUID=c6c93d58-8648-4e33-9178-ca6c1d4043e3 /mnt/1TB-PiDrive ext4 rw,user,nofail 0 0  

TO:

UUID=c6c93d58-8648-4e33-9178-ca6c1d4043e3 /mnt/1TB-PiDrive ext4 rw,user,nofail
  1. have mount re-read /etc/fstab to verify this works (it still mounts):
sudo mount -av

This will attempt to mount all (-a) drives in /etc/fstab and give a verbose (-v) report. For example, on one of my systems:

$ sudo umount /mnt/Passport2TB
$ sudo mount -av
/proc                    : already mounted
/boot                    : already mounted
/                        : ignored
/mnt/sdpi/boot           : already mounted
/mnt/sdpi/root           : already mounted
/mnt/Passport2TB         : successfully mounted
$
3
  • See, this explains the problem in great detail, should be the accepted answer, as the accepted answer does not explain anything at all Jun 8, 2020 at 2:34
  • Thank you so much! That explains it nicely, I wish I knew I could test fstab first without having to reboot. At one point I changed something in there that bricked the whole machine, I had to set up an Ubuntu VM to remove the command I just added. Jun 9, 2020 at 7:54
  • 1
    Now you know :)
    – Seamus
    Jun 9, 2020 at 8:00
1

I'm using a very similar line in /etc/fstab, you can try something similar:

UUID=76634fc7-bf80-470e-9cf7-727e8e13581c /mnt/slave_hdd/  ext4 defaults,errors=remount-ro 0 0

Alternatively, reading logs in /var/log/ may help you.

2
  • It worked! Your line of code did the trick, maybe it was the extra / at the end of your mount folder? I did check /var/log/ and it said this: [^[[0;1;31m TIME ^[[0m] Timed out waiting for device ^[[0;1;39m/dev/sda1^[[0m. [^[[0;1;33mDEPEND^[[0m] Dependency failed for ^[[0;1;39m/1TB-PiDrive^[[0m. [^[[0;1;33mDEPEND^[[0m] Dependency failed for ^[[0;1;39mLocal File Systems^[[0m. It would be interesting to know what I actually did wrong haha. This was driving me insane :) Jun 7, 2020 at 17:56
  • 1
    the reason this works and yours didn't ... you don't have defaults in the flags, which expands to rw, suid, dev, exec, auto, nouser, and async - the important missing flag for auto mounting is, you guessed it ... auto Jun 8, 2020 at 2:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.