You are not logged in.

#1 2014-04-18 18:48:55

daneel971
Member
Registered: 2008-03-28
Posts: 197

[SOLVED] mounting via udev fails, it works by hand

I have two luks-encrypted hard drives. When I plug in a pendrive, a udev rule triggers a script that, in turn, decrypt and mount the two drives.
The script first checks if the drives are already decrypted, and if not it decrypts them; then it checks if the drives are already mounted, and if not it mounts them.
The "already mounted check" is done by grepping /proc/self/mounts.

The strange part is: when the script is run via udev, it gets a "false positive" when grepping /proc/self/mounts: it sees the the two drives as already mounted but they aren't. When the script is run in a terminal, it works.
This strange behavior is recent, because it used to work - I don't remember when it first failed.


I managed to log the entire output of the script to a file in /tmp.
This is /proc/self/mounts as seen when the script is called by the udev rule:

rootfs / rootfs rw 0 0
/dev/sda1 / ext4 rw,relatime,data=ordered 0 0
dev /dev devtmpfs rw,nosuid,relatime,size=4086244k,nr_inodes=1021561,mode=755 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
debugfs /sys/kernel/debug debugfs rw,relatime,mode=755 0 0
tmpfs /var/tmp tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/sda6 /home ext4 rw,relatime,data=ordered 0 0
/dev/sda7 /warehouse ext4 rw,relatime,data=ordered 0 0
tmpfs /run/user/500 tmpfs rw,nosuid,nodev,relatime,size=818036k,mode=700,uid=500,gid=100 0 0
gvfsd-fuse /run/user/500/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=500,group_id=100 0 0
/dev/mapper/SEA750ENC01 /multimedia-01 ext4 rw,relatime,data=ordered 0 0
/dev/mapper/SEA750ENC02 /multimedia-02 ext4 rw,relatime,data=ordered 0 0
truecrypt /tmp/.truecrypt_aux_mnt1 fuse.truecrypt rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
/dev/mapper/truecrypt1 /warehouse/pendrive ext4 rw,relatime,data=ordered 0 0
truecrypt /tmp/.truecrypt_aux_mnt2 fuse.truecrypt rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
/dev/mapper/truecrypt2 /warehouse/mail ext4 rw,relatime,data=ordered 0 0

Scrolling to the bottom, the relevant lines are:
/dev/mapper/SEA750ENC01 /multimedia-01 ext4 rw,relatime,data=ordered 0 0
/dev/mapper/SEA750ENC02 /multimedia-02 ext4 rw,relatime,data=ordered 0 0

This is /proc/self/mounts when the script is run in terminal: the two drives aren't not there (and that's right: they really aren't mounted).

rootfs / rootfs rw 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
dev /dev devtmpfs rw,nosuid,relatime,size=4086244k,nr_inodes=1021561,mode=755 0 0
run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0
/dev/sda1 / ext4 rw,relatime,data=ordered 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime,mode=755 0 0
tmpfs /var/tmp tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/sda6 /home ext4 rw,relatime,data=ordered 0 0
/dev/sda7 /warehouse ext4 rw,relatime,data=ordered 0 0
tmpfs /run/user/500 tmpfs rw,nosuid,nodev,relatime,size=818036k,mode=700,uid=500,gid=100 0 0
gvfsd-fuse /run/user/500/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=500,group_id=100 0 0
truecrypt /tmp/.truecrypt_aux_mnt1 fuse.truecrypt rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
/dev/mapper/truecrypt1 /warehouse/pendrive ext4 rw,relatime,data=ordered 0 0
truecrypt /tmp/.truecrypt_aux_mnt2 fuse.truecrypt rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
/dev/mapper/truecrypt2 /warehouse/mail ext4 rw,relatime,data=ordered 0 0

Does someone have a clue?

Last edited by daneel971 (2014-04-20 07:18:13)

Offline

#2 2014-04-20 07:17:49

daneel971
Member
Registered: 2008-03-28
Posts: 197

Re: [SOLVED] mounting via udev fails, it works by hand

Found reasons and solutions here:
https://bbs.archlinux.org/viewtopic.php?pid=1398290

Offline

Board footer

Powered by FluxBB