U盘的自行挂载须要依赖udev模块,目前操做系统已默认安装。php
udev的工做流程如图所示。html
因此要作的一共分为三步:linux
修改配置文件主要是修改规则文件的所在目录,默认是在/etc/udev/rules.d下。操作系统
udev_root="/dev/" udev_rules="/etc/udev/rules.d/" udev_log="err"
上面的第二行表示udev规则存储的目录,这个目录存储的是以.rules结束的文件。
你的/etc/udev/rules.d下面可能有好几个udev规则文件,这些文件一部分是udev包安装的,另一部分则是多是别的硬件或者软件包生成的。好比在Fedora Core 5系统上,sane-backends包就会安装60-libsane.rules文件,另外initscripts包会安装60-net.rules文件。这些规则文件的文件名一般是两个数字开头,它表示系统应用该规则的顺序。code
好比,在/etc/udev/rules.d/目录下新建文件11-usb-mount.rules,而后写入如下规则htm
ACTION!="add",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+="/sbin/mount-usb.sh %k" LABEL="farsight" ACTION!="remove",GOTO="farsight" SUBSYSTEM!="block",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+="/sbin/umount-usb.sh %k" LABEL="farsight"
RUN+属性指定了当添加设备或移除设备时,udev会去调的脚本。%k就是相似sdd1,sda3这样的名字。blog
好比设备添加脚本 /sbin/mount-usb.ship
#!/bin/sh mkdir -p /mnt/$1 mount -t vfat /dev/$1 /mnt/$1 sync
设备移除脚本/sbin/umount-usb.shrem
#!/bin/sh umount /dev/$1 sync
脚本中的处理逻辑,设备的挂载路径等,均可以自定义。get
参考: