Вот такое udev правило:
KERNEL!="sd[b-z][0-9]", GOTO="auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="relatime", ENV{fs_type_option}=""
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},quiet,flush,noatime,utf8,gid=storage,umask=002"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{fs_type_option}="-t ntfs-3g "
ACTION=="add", ENV{my_debug_buffer}="/bin/mount $env{fs_type_option}-o $env{mount_options} /dev/%k /media/%E{dir_name}"
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount $env{fs_type_option}-o $env{mount_options} /dev/%k /media/%E{dir_name}"
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
LABEL="auto_mount_end"
Директория в /media/ создаётся, но монтирование не производится:
$ mount|grep sdb1|wc -l
0
Из udevadm monitor:
my_debug_buffer=/bin/mount -o relatime,quiet,flush,noatime,utf8,gid=storage,umask=002 /dev/sdb1 /media/SYSRESC
Если выполнить команду из my_debug_buffer, то монтируется как надо.