Ubuntu – Trying to create UDEV rule to mount removable drive exfat partition


So I am trying to create a udev rule to automatically mount a drives exfat partition to /media/offsite. My goal is to automatically mount a drive to /media/offsite and then kick off a .sh script to copy files around. I have been reading many guides and have learned a lot, but I am still getting stuck. Many of the guides are very outdated and apply to USB drives where as I have a docked drive.

Just to see if a rule would trigger, I created this rule in /etc/udev/rules.d/80-external-disk.rules:

ACTION=="add", ENV{DEVTYPE}=="partition", ENV{ID_FS_UUID}=="5359-818E", RUN+="/bin/mount -t exfat -U $env{ID_FS_UUID}"

I reloaded rules, rebooted server, few other things, and it appeared the rule wasn't firing.

udevadm test $(udevadm info -q path -n /dev/sdb) 2>&1 | grep /etc/udev/rules.d

That only produces the following;

parse_file: reading '/etc/udev/rules.d/70-persistent-cd.rules' as rules file
parse_file: reading '/etc/udev/rules.d/70-persistent-net.rules' as rules file
parse_file: reading '/etc/udev/rules.d/80-external-disk.rules' as rules file

My thought is that the UUID belongs to the partition and not the drive. With the partition being an exfat, can UDEV even see that UUID?

Best Answer

  • mount is not allowed in the late releases of udev. Better to go with udisks if you are using Gnome/Unity or any other alternative for other DE.

    man udev


    Note that running programs that access the network or mount/unmount filesystems is not allowed inside of udev rules, due to the default sandbox that is enforced on systemd-udevd.service.