If you truly never disconnect it, then you could have it mounted at boot along with your system partitions (/, /home, ...). This is done in
Assuming the partition you want to mount automatically is
/dev/sdb1, run the following in order to get the partition's UUID:
# blkid /dev/sdb1 -s UUID -o value
Then, given the
<UUID> string you just got, and
/mnt/usb as your target mount point, append the following line to
UUID=<UUID> /mnt/usb ext4 defaults 0 2
or, for NTFS instead of
UUID=<UUID> /mnt/usb ntfs-3g rw,uid=1000,gid=1000,dmask=027,fmask=137 0 2
1000 are your user's UID and GID ; otherwise the device will be mounted with
root ownership. The other options should be adjusted according to your needs.
Note that for
ntfs-3g, you might have to install the
ntfs-3g package, depending on your distribution.
Edit : if you think the device may not always be connected at boot time, I would suggest using the
nofail option (which basically tells the system "don't make a fuss is it doesn't work"). This means that, in the above line,
For NTFS, adding these options (starting from
rw should do it.
I've also added
x-systemd.device-timeout which a systemd parameter telling the boot sequence to wait 10s before giving up on the device. If you don't specify this option, the default waiting time is 90s. Setting it to zero will make the system wait forever (your booting sequence will hang).
As for your other point: disconnecting the disk when the PC is on isn't a big deal, since
fstab is a boot sequence thing. However, disconnecting a mounted device has its risks, since I/O operations are postponed through the use of caches, and your data may not have been synced on disk by the time you pull the plug. If you call
umount (or use your graphical interface to un-mount) before disconnecting, then you're good. Calling
sync instead is probably good enough, but more hazardous.