LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 657|回复: 2

请教关于UDEV的使用问题

[复制链接]
发表于 2009-9-18 11:36:38 | 显示全部楼层 |阅读模式
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-9-18 11:44:24 | 显示全部楼层
  1. 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是机器里那块硬盘吧,当然多个硬盘的话自己调整开始的字母咯...
  1. KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usb%m", GROUP="users", OPTIONS="last_rule"
  2. ACTION=="add", KERNEL=="sd[b-z][0-9]", SYMLINK+="usb%n", GROUP="users", NAME="%k"
  3. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /media/usb-%n"
  4. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/ln -s /media/usb-%n /home/hunt/usb-%n"
  5. 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"
  6. 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"
  7. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/usr/bin/unlink /home/hunt/usb-%n"
  8. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /media/usb-%n"
  9. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rmdir /media/usb-%n", OPTIONS="last_rule"
复制代码

这份是我正常使用的,挂在/media/usb-%n,做了个链接到自己家目录里...其实也在wiki那文章里下面的那部分...稍微修改下...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-18 12:41:55 | 显示全部楼层
谢谢huntxu,我按你的指点再自己学学
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表