本文为大家介绍udev自动挂载u盘(u盘手动挂载),下面和小编一起看看详细内容吧。
关于u盘的自动挂载,相信很多用户对它的操作不是很熟悉,所以很久没能提上日程。届时小编将为大家分享u盘自动挂载的详细操作教程,即使不会操作的人也可以轻松实现u盘自动挂载。
这里简单说一下udev的工作原理:
udev 依赖于sysfs。当一个新的设备被添加到系统中时,内核会产生一个热插拔事件并搜索/proc/sys/kernel/hotplug 来找出管理该设备连接的用户空间程序。如果udev 已经启动,内核会通知udev 在sysfs 中检测这个新设备的信息,并创建一个设备节点。比如/dev/vcs中,7:0存放在/sys/class/tty/vcs/dev中,就是/dev/vcs的主次设备号。
而udev也会根据/etc/udev/rules.d中的规则文件实现一些相应的功能。
下面介绍一下如何实现设备节点的自动创建和u盘或sd卡的自动挂载:
1.udev的移植
因为文件系统默认不支持udev,所以我们移植一个udev。
1、下载udev源码udev-080.tar.bz2,并解压
网址:http://www.us.kernel.org/pub/linux/utils/kernel/hotplug
2.交叉编译。
修改makefile,具体修改如下:
cross=arm-softfloat-linux-gnu-
保存并退出。
执行命令:make编译,然后执行arm-softfloat-linux-gnu-strip udev udevd udevstart udevinfo udevtest。并将这些文件复制到rootfs/bin目录下
3.添加udev支持
以下三个方法功能相同
(1) 并修改etc/init.d/rcs脚本,然后添加如下命令:
/bin/mount -t sysfs sysfs /sys
(先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
(2)如果linuxrc是二进制文件计算机基础教程
rm /linuxrc
vi /linuxrc
添加以下内容
/bin/mount -t sysfs sysfs /sys
(先创建这个目录)
/bin/mount -t tmpfs tmpfs /dev
/bin/udevd --daemon
/bin/udevstart
执行/sbin/初始化
(3)修改/etc/fstab为
#device mount-point type options dump fsck 命令
proc /proc proc 默认值0 0
tmpfs /tmp tmpfs 默认值0 0
sysfs /sys sysfs 默认值0 0
tmpfs /dev tmpfs 默认值0 0
修改/etc/init.d/rcs,添加如下内容
/bin/udevd --daemon
/bin/udevstart
有了上面的写法,重启系统后,我们的文件系统就具备了自动创建节点的功能。
2.自动挂载u盘或sd卡电脑基础知识
1.在/etc下创建udev目录
2.在/etc/udev下创建目录rules.d和文件udev.conf
3.在udev.conf中添加如下内容
#udev.conf
# 初始syslog(3) 优先级:err、info、debug 或其
# 数值等价物。对于运行时调试,守护进程内部
# 状态可以改变:udevcontrol log_priority=。
udev_log=错误
4.在rules.d下创建规则文件
比如实现u盘的自动挂载
vim 11-添加-usb.rules
添加以下内容
行动!=添加, goto=远见
kernel==sd[a-z][0-9], run+=/sbin/mount-usb.sh %k
label=远见
在这个文件中,action之后是事件的描述,kernel之后是sda1,mmcblk0p1等设备的描述,插入run设备后执行哪个程序%k是传入这个程序的参数, 其中%k=kernel value 即sda1 等等http://www.woaidiannao.com.
在/sbin/下创建mount-usb.sh文件,添加如下内容computer
#! /bin/sh
/bin/mount -t vfat /dev/$1 /tmp
同步
修改文件权限,增加可执行权限。
这样就实现了u盘的自动挂载,下面附上u盘的卸载规则文件和sd卡的文件
u盘卸载
11-添加-删除.rules
行动!=移除,goto=远见
子系统!=block , goto=远见
kernel==sd[a-z][0-9], run+=/sbin/umount-usb.sh
label=远见
卸载-usb.sh
#! /bin/sh
同步
卸载/tmp/
sd卡座
行动!=添加, goto=远见
内核==mmcblk[0-9]p[0-9], run+=/sbin/mount-sd.sh %k
label=远见
挂载-sd.sh
#! /bin/sh
/bin/mount -t vfat /dev/$1 /tmp
同步
sd卡卸载
行动!=移除,goto=远见
子系统!=block , goto=远见
kernel==mmcblk[0-9]p[0-9], run+=/sbin/umount-sd.sh
label=远见
卸载-sd.sh
#! /bin/sh
同步
卸载/tmp/
u盘自动挂载的技巧就到这里了。以上步骤是直接利用udev的工作原理实现u盘的自动挂载。如果有用户想让u盘自动挂载,那么以上的方法步骤供大家参考,希望本文能对大家有所帮助。
好了,udev自动挂载u盘(u盘手动挂载)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。