请教udev rules的写法

sh/bash/dash/ksh/zsh等Shell脚本
回复
daniel.supremacy
帖子: 133
注册时间: 2008-12-12 15:35

请教udev rules的写法

#1

帖子 daniel.supremacy » 2010-08-21 16:14

想自动加载/卸载u盘,怎么写?自己写了一个,不成功。

代码: 全选

ACTION=="add", KERNEL=="sd[c-g]1", ATTRS{product}=="Flash Disk", RUN+="/bin/mkdir /media/usb-storage-%k", RUN+="/bin/mount -o iocharset=uft8 /dev/%k /media/usb-storage-%k"
ACTION=="remove", KERNEL=="sd[c-g]1", RUN+="/bin/umount -l /media/usb-storage-%k", RUN+="/bin/rmdir /media/usb-storage-%k"
附件是udevinfo -a -p /dev/sdc1的信息
附件
udev.txt
udevinfo
(4.57 KiB) 已下载 74 次
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请教udev rules的写法

#2

帖子 eexpress » 2010-08-21 20:19

你的限制太多了吧。带那1干嘛。只使用removable简单多了。
● cat bin/udev-rules/01-pmount.rules
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="sd?[1-9]", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="sd[b-z]", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="mmcblk*", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
● 鸣学
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 请教udev rules的写法

#4

帖子 tusooa » 2010-08-22 20:54

代码: 全选

想自动加载/卸载u盘

代码: 全选

/dev/sdb1 /media/usb auto noauto,user 0 0

代码: 全选

] ls -ld //
daniel.supremacy
帖子: 133
注册时间: 2008-12-12 15:35

Re: 请教udev rules的写法

#5

帖子 daniel.supremacy » 2010-08-26 11:24

eexpress 写了:你的限制太多了吧。带那1干嘛。只使用removable简单多了。
● cat bin/udev-rules/01-pmount.rules
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="sd?[1-9]", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="sd[b-z]", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
SUBSYSTEM=="block", ACTION=="add", ATTRS{removable}=="1", KERNEL=="mmcblk*", RUN+="/home/exp/bin/udev-rules/u-pmount.bash %k"
这个跟1没有关系,因为还是能够识别的,目的是不想同时挂载太多的u盘。

代码: 全选

ACTION=="add", KERNEL=="sd[c-g]1", ATTRS{product}=="Flash Disk", RUN+="/bin/mkdir /media/usb-storage-%k"

ACTION=="remove", KERNEL=="sd[c-g]1", RUN+="/bin/rmdir /media/usb-storage-%k"
完全能够实现。
似乎说明RUN+=不能超过一个,但wiki(http://wiki.archlinux.org/index.php/Udev)上例子一行是可使用多于一个RUN+=的,不明白,可能是udev的版本不同?我的udevd --version 为124。

另外,自建了一个shell scipt,里面放了mkdir, mount等命令,令RUN+="/usr/local/bin/usb-auto-mount.sh"似乎也不行。
其实没什么大不了,用pmount & pumount也能解决了。只是这个问题挺奇怪的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 请教udev rules的写法

#6

帖子 eexpress » 2010-08-26 11:26

removable 属性似乎好些。你也试试。
支持折腾。反正我上面的,以前一直正常的。
● 鸣学
回复