linux udev自动挂载卸载,UDEV实现自动挂载

1、开启/etc/rc.d/init.d/udev 服务

/etc/rc.d/rc.conf 文件cfg_services 中增加udev。

2、自动挂载U盘或SD卡

1)在/etc下创建udev目录

2)在/etc/udev下穿件目录rules.d和文件udev.conf

3)在udev.conf中添加如下内容

# udev.conf

# The initial syslog(3) priority: "err", "info", "debug" or its

# numerical equivalent. For runtime debugging, the daemons internal

# state can be changed with: "udevcontrol log_priority=".

udev_log="err"

4)在rules.d下创建规则文件

如实现U盘自动挂载

vim /etc/udev/rules.d/11-add-usb.rules

添加如下内容:

ACTION!="add",GOTO="farsight"

KERNEL=="sd[a-z][0-9]",RUN+="/home/mountusb.sh %k"

KERNEL=="sd[a-z]",RUN+="/home/mountusb.sh %k"

LABEL="farsight"

这个文件中ACTION后是说明是什么事件,KERNEL后是说明是什么设备比如sda1,mmcblk0p1等,RUN这个设备插入后去执行哪个程序%k是传入这个程序的参数,这里%k=KERNEL的值也就是sda1等

在/home/下创建mountusb.sh文件添加如下内容:

#!/bin/sh

mount  -t vfat /dev/$1 /mnt/usb

sync

修改文件权限为其添加可执行的权限。

这样就实现了U盘的自动挂载,下面附上U盘的卸载规则文件和sd卡的文件

Usb卸载

vim etc/udev/rules.d/11-add-remove.rules

ACTION !="remove",GOTO="farsight"

SUBSYSTEM!="block",GOTO="farsight"

KERNEL=="sd[a-z][0-9]",RUN+="/home/umount-usb.sh"

LABEL="farsight"

umount-usb.sh

#!/bin/sh

sync

umount /mnt/usb

SD卡挂载

ACTION!='add',GOTO='farsight'

KERNEL=='mmcblk[0-9]p[0-9]',RUN+='/sbin/mount-sd.sh %k'

LABEL='farsight'

mount-sd.sh

#!/bin/sh

/bin/mount -t vfat /dev/$1 /mnt/sd

sync

SD卡卸载

ACTION !='remove',GOTO='farsight'

SUBSYSTEM!='block',GOTO='farsight'

KERNEL=='mmcblk[0-9]p[0-9]',RUN+='/home/umount-sd.sh'

LABEL='farsight'

umount-sd.sh

#!/bin/sh

sync

umount /mnt/sd

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
udev是一个Linux内核的设备管理器,可以监控设备的插拔事件,并根据自定义规则执行相应操作。在使用udev自动挂载U盘时,可以通过以下步骤实现: 1. 创建一个udev规则文件: 在终端中运行命令 `sudo nano /etc/udev/rules.d/10-usb-mount.rules`,创建一个名为“10-usb-mount.rules”的文件,并在其中添加以下内容: ``` ACTION=="add", KERNEL=="sd*", SUBSYSTEMS=="usb", RUN+="/usr/bin/mount /dev/%k /mnt/usb" ACTION=="remove", KERNEL=="sd*", SUBSYSTEMS=="usb", RUN+="/usr/bin/umount /mnt/usb" ``` 这个规则文件的意思是,当一个USB设备插入系统时,如果它的内核名称是“sd*”(通常U盘的名称为“sda”、“sdb”等),同时它的子系统是“usb”,那么udev将会自动执行挂载命令“/usr/bin/mount /dev/%k /mnt/usb”来将设备挂载到“/mnt/usb”目录下。当USB设备被拔出时,udev自动执行卸载命令“/usr/bin/umount /mnt/usb”。 2. 重新加载udev规则 在终端中运行命令 `sudo udevadm control --reload-rules`,重新加载udev规则。 3. 插入U盘 现在,你可以插入一个U盘,udev将会自动识别它并将其挂载到“/mnt/usb”目录下。你可以在这个目录中访问U盘的内容,就像在文件系统中访问一般的目录一样。 需要注意的是,在使用udev自动挂载U盘时,你需要确保挂载目录(在这个例子中是“/mnt/usb”)已经存在,并且具有可写权限。如果目录不存在,你可以通过运行命令 `sudo mkdir /mnt/usb` 来创建它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值