You are not logged in.

#1 2013-05-12 10:16:29

JohnDVD
Member
Registered: 2011-11-29
Posts: 39

udev mount fails

Hi Archers, my currently occurred problem is, that my external usb-drive does not get mounted via udev rule, and it is only mountable manually by command which refers to /etc/fstab.
(sudo mount /mnt/disk)

/etc/udev/rules.d/11-mnt-auto-mount.rules

# KERNEL=="sr[0-9]", GOTO="mnt_cd_dvd"
KERNEL!="sd[a-z][0-9]", GOTO="mnt_auto_mount_end"

# Global mount options
ACTION=="add", ENV{mount_options}="relatime,noexec"
# Filesystem-specific mount options
ACTION=="add", IMPORT{program}="/sbin/blkid -o udev -p %N"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs-3g", ENV{mount_options}="$env{mount_options},utf8,uid=1000,gid=100,umask=002,fmask=133,dmask=002"

# selfmade exceptions
# get ATTRS{serial} by:  udevadm info -a -n /dev/sdd | grep serial
#       4tb
ATTRS{serial}=="504C323332314C4147335248524A", ENV{mount_dir_number}="", GOTO="mnt_mybook"
#       2tb
ATTRS{serial}=="5743415A4130383931303733", ENV{mount_dir_number}="2", GOTO="mnt_mybook"
#       1tb
ATTRS{serial}=="57442D574341534A30373931373935", ENV{mount_dir_number}="3", GOTO="mnt_mybook"
ATTRS{serial}=="09212B50E0F219A3", ENV{mount_dir_number}="2", GOTO="mnt_kingston_datatraveler"
ATTRS{serial}=="AA010216131916344754", ENV{mount_dir_number}="", GOTO="mnt_sandisk_extreme"
GOTO="mnt_auto_mount_end"

# Mount under /mnt and create the symbolic link in /mnt
ACTION=="add", RUN+="/bin/mkdir -p /mnt/%k", RUN+="/bin/mount -o $env{mount_options} /dev/%k /mnt/%k"

# Clean up after removal
ACTION=="remove", RUN+="/bin/rm -f /media/usbhd-%k", RUN+="/bin/umount -l /mnt/%k", RUN+="/bin/rmdir /mnt/%k"
GOTO="mnt_auto_mount_end"

LABEL="mnt_mybook"
SYMLINK="mybook$env{mount_dir_number}", GROUP="storage"
ACTION=="add", RUN+="/bin/mkdir /mnt/disk$env{mount_dir_number}"
ACTION=="add", RUN+="/bin/mount -o rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 /dev/%k /mnt/disk$env{mount_dir_number}"
ACTION=="remove", RUN+="/bin/umount -l /mnt/disk$env{mount_dir_number}"
ACTION=="remove", RUN+="/bin/rmdir /mnt/disk$env{mount_dir_number}"

GOTO="mnt_auto_mount_end"

LABEL="mnt_kingston_datatraveler"
SYMLINK="usbstick$env{mount_dir_number}", GROUP="storage"
ACTION=="add", RUN+="/bin/mkdir -p /mnt/usbstick$env{mount_dir_number}", RUN+="/bin/mount /mnt/usbstick$env{mount_dir_number}"
ACTION=="remove", RUN+="/bin/umount -l /mnt/usbstick$env{mount_dir_number}", RUN+="/bin/rmdir /mnt/usbstick$env{mount_dir_number}"
GOTO="mnt_auto_mount_end"

LABEL="mnt_sandisk_extreme"
SYMLINK="usbstick$env{mount_dir_number}", GROUP="storage"
ACTION=="add", RUN+="/bin/mkdir -p /mnt/usbstick$env{mount_dir_number}", RUN+="/bin/mount /mnt/usbstick$env{mount_dir_number}"
ACTION=="remove", RUN+="/bin/umount -l /mnt/usbstick$env{mount_dir_number}", RUN+="/bin/rmdir /mnt/usbstick$env{mount_dir_number}"
GOTO="mnt_auto_mount_end"

# Exit
LABEL="mnt_auto_mount_end"

My /etc/fstab looks like:

#
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
# /dev/sdc6
UUID=46554740-f8b3-493f-af76-f9903c358856       /               ext4            rw,noatime,nodiratime,data=ordered,discard      0 1

# /dev/sdc5
UUID=322d0093-c25c-4520-a3f0-411315234073       /boot           ext2            rw,noatime,nodiratime,discard   0 2

/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part4  /var/cache/pacman       ext4    rw,noatime      0 2
/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part5  /home   ext4    defaults        0 2

/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part3  /mnt/data       ext4    defaults,users,noexec 0 2
/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part2 /mnt/wineprefiix ext4    defaults,users,noexec 0 2
/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part6 /mnt/tempswap    ext4    defaults,users,noexec 0 2
/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part7 /mnt/vm  ext4    defaults,users,noexec 0 2

/dev/disk/by-id/ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T2051374-part1  /mnt/backup ext4 defaults,users,exec 0 2

/dev/disk/by-id/usb-WD_My_Book_1140_504C323332314C4147335248524A-0:0-part1 /mnt/disk ntfs-3g noatime,nodiratime,uid=1000,gid=users,umask=0022,fmask=133,dmask=002,auto,users 0 0
/dev/disk/by-id/ata-WDC_WD20EARS-00MVWB0_WD-WCAZA0891073-part1  /mnt/disk2 ntfs-3g noatime,noexec,uid=1000,gid=users,umask=0022,fmask=113,dmask=002,noauto,users 0 0
/dev/disk/by-id/ata-WDC_WD10EACS-00ZJB0_WD-WCASJ0791795-part1 /mnt/disk3 ntfs-3g noatime,noexec,uid=1000,gid=users,umask=0022,fmask=113,dmask=002,noauto,users 0 0

# data traveller
/dev/disk/by-id/usb-Kingston_DataTraveler_II+_09212B50E0F219A3-0:0-part1        /mnt/usbstick2  vfat    noatime,defaults,noexec,noauto,uid=1000,gid=users,umask=0022,fmask=133,dmask=002,users 0 0
# sandisk extreme
/dev/disk/by-id/usb-SanDisk_Extreme_AA010216131916344754-0:0-part1      /mnt/usbstick   ntfs-3g         noatime,defaults,noexec,noauto,uid=1000,gid=users,umask=0022,fmask=133,dmask=002,users      0 0

I tried to add additional mount and umount commands in that udev rule, without positive result.

plug in
ls -lh /mnt/ ; ls -lh /mnt/

ls: Zugriff auf /mnt/disk nicht möglich: Der Socket ist nicht verbunden
insgesamt 44K
d?????????  ? ?     ?        ?             ? disk
drwxr-xr-x  3 root  root  4,0K 24. Mär 13:48 tempswap
drwxr-xr-x  3 root  root  4,0K 11. Mai 17:02 vm

umount /mnt/disk ; mount /mnt/disk

[...]
drwxrwxr-x  1 johnd users  4096  5. Mai 22:17 disk

Does anyone has an idea why automount does not do what it should (and did before switched to systemd)??

Thanks
JD

Offline

#2 2013-05-12 10:21:35

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: udev mount fails

Wow... that's long. smile

My advice would be to stop abusing udev, it's not meant to be used for stuff like that. Use a udisks-based solution, there are many to choose from.

Offline

#3 2013-05-12 10:41:14

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: udev mount fails

JohnDVD wrote:

ACTION=="add", RUN+="/bin/mkdir /mnt/disk$env{mount_dir_number}"
ACTION=="add", RUN+="/bin/mount -o rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 /dev/%k /mnt/disk$env{mount_dir_number}"

I would use instead e.g.:

RUN+="/root/bin/mymount %k $env{mount_dir_number}"

And that will make debugging your mymount script a lot easier wink

Don't forget to chmod 700 mymount.

Offline

#4 2013-05-12 10:47:18

JohnDVD
Member
Registered: 2011-11-29
Posts: 39

Re: udev mount fails

Thanks, but i don't have mymount.
tomks suggestion solved my problem, i changed the udev rule like this:

[...]
LABEL="mnt_mybook"
SYMLINK="mybook$env{mount_dir_number}", GROUP="storage"
ACTION=="add", RUN+="/bin/mkdir /mnt/disk$env{mount_dir_number}"
#ACTION=="add", RUN+="/bin/mount -o rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 /dev/%k /mnt/disk$env{mount_dir_number}"
ACTION=="add", RUN+="/usr/bin/udisksctl mount -b /dev/mybook"
ACTION=="remove", RUN+="/bin/umount -l /mnt/disk$env{mount_dir_number}"
ACTION=="remove", RUN+="/bin/rmdir /mnt/disk$env{mount_dir_number}"

GOTO="mnt_auto_mount_end"
[...]

This also uses the settings from /etc/fstab.

Offline

#5 2013-05-12 10:53:12

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: udev mount fails

ROFL.... not what I meant at all, but I guess you're happy. smile

My point is that you don't need specific udev rules for this stuff, you just install and run some udisks-based app e.g. udiskie.

Offline

#6 2013-05-12 11:38:27

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: udev mount fails

JohnDVD wrote:

don't have mymount

I meant that you would *create* it, containing those 2 commands: mkdir and mount.

Offline

Board footer

Powered by FluxBB