终于找到组织了!大家帮我看看这个问题,关于U盘的自动mount的。

CodeProject-Jerry 2009-01-02 05:34:51
我一直都没找到Linux区, 害我每次去C++区提问。 终于找到组织了。
-----------------------完美的分割线---------------------------------------
Fedora 10,当U盘插入时系统能够自动mount

我已经在 /etc/udev/rules.d/ 下建立了自己的规则。
然后,当U盘插入的时候,会调用我的程序。 在我的程序中,得到了下列环境变量。

UDEV_LOG=3
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
DEVICE=/proc/bus/usb/002/005
PRODUCT=1043/8006/100
TYPE=0/0/0
INTERFACE=8/6/80
MODALIAS=usb:v1043p8006d0100dc00dsc00dp00ic08isc06ip50
SEQNUM=1377
UDEVD_EVENT=1

问题1:
通过这些环境变量,我怎么得知 我的U盘是自动挂接到了哪里? 也就是路径 /media/XXXXX/ 如何得到呢?

问题2:
我能不能根据这些环境变量,自己mount这个设备到一个自己定义的地方?如果Fedora已经 mount了, 我再次mount会不会出错?
...全文
234 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CodeProject-Jerry 2009-01-03
  • 打赏
  • 举报
回复
/sys/block/sdb 和 /devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0 以及 /proc/bus/usb/002/005 都是什么关系 ?


实在搞不懂
CodeProject-Jerry 2009-01-03
  • 打赏
  • 举报
回复
cceczjxy 2009-01-03
  • 打赏
  • 举报
回复
在/sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0目录下有个链接文件block,链接到/sys/block/sdb

你可以根据/sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0/下的block,来确定u盘设备在/dev/目录下的相应文件名 sdb
并且能根据/sys/block/sdb目录下的一下文件,来得到u盘的相应信息,比如分区情况,文件系统类型, 大小,状态等,

既然知道了/dev/sdb这样的设备路径,那就自己挂载就是了
一个设备可以被多次挂载,但一个挂载点只能允许挂载一个设备.
mount /dev/sdb /media/name1
mount /dev/sdb /media/name2
这样是允许的
mount /dev/sda /media/name1
mount /dev/sdb /media/name1

这样是不允许的。

如果想判断设备是否被挂载,那就检查一下/proc/mounts文件,如果设备被挂载,会在该文件内有相应一条数据的。
caremsi 2009-01-03
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
只在RedHat下mount /dev/sda1 /mnt/usb过,Fedora就不知道了,百度试下.这种应该有的.
CodeProject-Jerry 2009-01-02
  • 打赏
  • 举报
回复
Fedora10 一般都是加载到了 /media/目录

但是 应该怎么根据上面的环境变量找到它对应的是哪个呢?
wlabing 2009-01-02
  • 打赏
  • 举报
回复
mount挂载的设备一般都是在/dev/mnt目录下,对于挂载没有更深入的研究,也没发言权,呵呵

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧