+ -
当前位置:首页 → 问答吧 → 请教关于UDEV的使用问题

请教关于UDEV的使用问题

时间:2009-09-18

来源:互联网

wiki上的没看太明白。按wiki上的例子做了个rule,但是不能像预期的那样按fstab里面的配置把我的USB移动硬盘挂在指定位置;如果不用rule文件,则是开机不能自动挂载已经插在机器上的USB移动硬盘,必须手动mount -all。

现在我想让系统自动挂载移动硬盘到我指定位置该怎么做?

当前环境:
引用:
[root@host:/etc]# uname -a
Linux host 2.6.30-ARCH #1 SMP PREEMPT Mon Aug 17 18:04:53 CEST 2009 i686 Genuine Intel(R) CPU T2500 @ 2.00GHz GenuineIntel GNU/Linux

[root@host:/etc]# cat rc.conf | grep AUTOLOAD
# MOD_AUTOLOAD: Allow autoloading of modules at boot and when needed
MOD_AUTOLOAD="yes"

[root@host:/etc]# cat udev/rules.d/autousb.rules
KERNEL=="sd[a-z]", NAME="%k", SYMLINK+="usb%m", GROUP="users", OPTIONS="last_rule"
ACTION=="add", KERNEL=="sd[a-z][0-9]", SYMLINK+="usb%n", GROUP="users", NAME="%k"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /mnt/usb%n"
ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/initcpio/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /mnt/usb%n", OPTIONS="last_rule"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /mnt/usb%n", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/umount -l /mnt/usb%n"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rmdir /mnt/usb%n", OPTIONS="last_rule"

[root@host:/etc]# cat fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0

#/dev/cdrom /media/cd auto ro,user,noauto,unhide 0 0
#/dev/dvd /media/dvd auto ro,user,noauto,unhide 0 0
#/dev/fd0 /media/fl auto user,noauto 0 0

/dev/sda2 / ext3 defaults 0 1
/dev/sda3 /home/abc ext3 defaults 0 0
/dev/disk/by-id/usb-ST950032_5AS_000000000033-0:0-part1 /home/abc/f5 ext3 defaults 0 0

[root@host:/etc]#

作者: 糊涂   发布时间: 2009-09-18

代码:
RUN+="/bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /mnt/usb%n"
想挂到什么地方要改这句里的/mnt/usb%n啊,或者做ln -sf /mnt/usb%n到你要的地方...
还有一般是sd[b-z][0-9]吧,sda是机器里那块硬盘吧,当然多个硬盘的话自己调整开始的字母咯...
代码:
KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usb%m", GROUP="users", OPTIONS="last_rule"
ACTION=="add", KERNEL=="sd[b-z][0-9]", SYMLINK+="usb%n", GROUP="users", NAME="%k"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /media/usb-%n"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/ln -s /media/usb-%n /home/hunt/usb-%n"
ACTION=="add", KERNEL=="sd[b-z][0-9]", PROGRAM=="/lib/initcpio/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,noauto,sync,dirsync,noexec,nodev,noatime,dmask=022,fmask=111,uid=1000,gid=1000 /dev/%k /media/usb-%n", OPTIONS="last_rule"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime,uid=1000,gid=1000 /dev/%k /media/usb-%n", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/usr/bin/unlink /home/hunt/usb-%n"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /media/usb-%n"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rmdir /media/usb-%n", OPTIONS="last_rule"
这份是我正常使用的,挂在/media/usb-%n,做了个链接到自己家目录里...其实也在wiki那文章里下面的那部分...稍微修改下...

作者: huntxu   发布时间: 2009-09-18

谢谢huntxu,我按你的指点再自己学学

作者: 糊涂   发布时间: 2009-09-18