当前位置: 技术问答>linux和unix
终于找到组织了!大家帮我看看这个问题,关于U盘的自动mount的。
来源: 互联网 发布时间:2016-05-14
本文导语: 我一直都没找到Linux区, 害我每次去C++区提问。 终于找到组织了。 -----------------------完美的分割线--------------------------------------- Fedora 10,当U盘插入时系统能够自动mount 我已经在 /etc/udev/rules.d/ 下建立了自己的...
我一直都没找到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会不会出错?
-----------------------完美的分割线---------------------------------------
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会不会出错?
|
在/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文件,如果设备被挂载,会在该文件内有相应一条数据的。
你可以根据/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文件,如果设备被挂载,会在该文件内有相应一条数据的。