多次热插拔后,虚拟机能识别U盘,系统不能识别U盘
我在虚拟机是VM 7.1.4 build-385536,安装的系统是CentOS 6.2,
Kernel 2.6.32-32-220
GNOME 2.28.2。
从网上百度了一下,能自动挂载U盘了。
做法:注意是 root 权限
1. /etc/udev/rules.d 新建一个01-usb-rules (注意 前面数字越低,优先级越高;用的-, 不是下划线;后面的rules别写错)
2.文件里面添加一下内容,
KERNEL=="sd[a-z]", NAME="%k", SYMLINK+="usb%n", GROUP="users", OPTIONS="last_rule"
#ACTION=="add", KERNEL=="sd[a-z][0-9]", SYMLINK+="usb%n", GROUP="users", NAME="%k"
#自动挂载U盘
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /mnt/usb%k"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount -t vfat /dev/%k /mnt/usb%k"
#自动挂载SD卡
ACTION=="add", KERNEL=="mmcblk[0-9][a-z][0-9]", RUN+="/bin/mkdir -p /mnt/mmc%n"
ACTION=="add", KERNEL=="mmcblk[0-9][a-z][0-9]", RUN+="/bin/mount -t vfat /dev/%k /mnt/mmc%n"
#ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o
rw,noauto,sync,dirsync,noexec,nodev,noatime,dmask=000,fmask=111 /dev/%k /mnt/usb%k", 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%k", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/umount -l /mnt/usb%k"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rmdir /mnt/usb%k", OPTIONS="last_rule"
重启后,它会自动加载U盘到设备的路径,也会自动插拔!
问题
1.这样做好像不稳定,比如说系统突然掉电了,重启时发现有时自动挂载不了,有时用了它本身的规则挂载到media。有时得重新再插拔一次,它又能自动挂载了。这问题是什么引起的呢?
2.如果我自己不写规则,去哪个文件改它的规则呢?我只需要挂我指定目录就OK了,命名也是我自己定。
3.如何判断一个USB设备是储存设备,
4.如何判断USB接口是否有设备连接着,是否挂载?(后来两个问题百度的时候,一直找不到好的答案,一般说是访问那个/proc/scsi/usb-storage文件,但是它一直都存在,我的想法,是不是可以判断这个文件夹下文件的个数)。
原来的需求大概是,usb接口有储存设备,就挂载到某个路径,然后写数据。没有U盘之类的设备,就停止写,当检测到有就挂载,继续写数据。
麻烦各位大哥帮帮忙, 谢谢!!!